diff --git a/app/Http/Controllers/MediaController.php b/app/Http/Controllers/MediaController.php index ef457b1..e23136a 100644 --- a/app/Http/Controllers/MediaController.php +++ b/app/Http/Controllers/MediaController.php @@ -260,19 +260,40 @@ public function saved() return auth()->user()->savedMedia()->with(['image','category' , 'myNote' , 'tags'])->get(); } - public function storeNote(Request $request, $mediaId) +public function storeNote(Request $request, $mediaId) { - $data = $request->validate([ - 'content' => 'required|string' - ]); - $media = Media::findOrFail($mediaId); + $userId = auth()->id(); - $note = $media->notes()->create([ - 'user_id' => auth()->id(), - 'content' => $data['content'], + $content = $request->input('content'); + + // Check if note already exists for this user + $note = $media->notes()->where('user_id', $userId)->first(); + + if (empty($content)) { + // If content is empty, delete the note if it exists + if ($note) { + $note->delete(); + return response()->json(['message' => 'Note deleted']); + } + return response()->json(['message' => 'No note to delete']); + } + + if ($note) { + // Update existing note + $note->update(['content' => $content]); + } else { + // Create new note + $note = $media->notes()->create([ + 'user_id' => $userId, + 'content' => $content, + ]); + } + + return response()->json([ + 'message' => 'Note saved successfully', + 'note' => $note ]); - - return response()->json(['message' => 'Note added', 'note' => $note]); } + } \ No newline at end of file