// SPDX-License-Identifier: AGPL-3.0-or-later namespace OCA\UPschooling\Controller; use OCA\UPschooling\AppInfo\Application; use OCA\UPschooling\Service\NoteService; use OCP\AppFramework\Controller; use OCP\AppFramework\Http\DataResponse; use OCP\IRequest; class NoteController extends Controller { private NoteService $service; private ?string $userId; use Errors; public function __construct(IRequest $request, NoteService $service, ?string $userId) { parent::__construct(Application::APP_ID, $request); $this->service = $service; $this->userId = $userId; } /** * @NoAdminRequired */ public function index(): DataResponse { return new DataResponse($this->service->findAll($this->userId)); } /** * @NoAdminRequired */ public function show(int $id): DataResponse { return $this->handleNotFound(function () use ($id) { return $this->service->find($id, $this->userId); }); } /** * @NoAdminRequired */ public function create(string $title, string $content): DataResponse { return new DataResponse($this->service->create($title, $content, $this->userId)); } /** * @NoAdminRequired */ public function update(int $id, string $title, string $content): DataResponse { return $this->handleNotFound(function () use ($id, $title, $content) { return $this->service->update($id, $title, $content, $this->userId); }); } /** * @NoAdminRequired */ public function destroy(int $id): DataResponse { return $this->handleNotFound(function () use ($id) { return $this->service->delete($id, $this->userId); }); } }