notes()->with('user')->orderBy('created_at', 'desc')->get(); // Transformiere die Daten in camelCase $notesArray = $notes->map(function ($note) { return ApiDataTransformer::snakeToCamel($note->toArray()); }); return response()->json($notesArray); } /** * Store a newly created resource in storage. */ public function store(Request $request) { $validatedData = $request->validate([ 'userId' => 'required|integer|exists:users,id', 'text' => 'required|string', 'noteableId' => 'required|integer', 'noteableType' => 'required|string', 'createdAt' => 'sometimes|date|nullable' ]); // Convert camelCase to snake_case $snakeCaseData = ApiDataTransformer::camelToSnake($validatedData); $model = app("App\\Models\\" . $snakeCaseData['noteable_type'])::findOrFail($snakeCaseData['noteable_id']); // Create a new Note instance $note = new Note($snakeCaseData); // Set the created_at field if it is provided if (isset($snakeCaseData['created_at'])) { $note->created_at = $snakeCaseData['created_at']; } $model->notes()->save($note); return response()->json($this->single($note->id), 201); } public static function single($id) { $note = Note::with('user')->findOrFail($id); return ApiDataTransformer::snakeToCamel($note->toArray()); } /** * Update the specified resource in storage. */ public function update(Request $request, Note $note) { // } /** * Remove the specified resource from storage. */ public function delete(int $id) { DB::beginTransaction(); try { $note = note::findOrFail($id); $note->delete(); DB::commit(); return response()->json([ 'message' => 'Notiz gelöscht' ], 200); } catch (\Exception $e) { DB::rollBack(); return response()->json([ 'message' => 'Notiz konnte nicht gelöscht werden', 'error' => $e->getMessage() ], 500); } } }