allowedFilters(['name', 'host']) ->allowedSorts(['id', 'name', 'host']) ->paginate($request->query('per_page') ?? 10); return $this->fractal->collection($databases) ->transformWith($this->getTransformer(DatabaseHostTransformer::class)) ->toArray(); } /** * View database host * * Return a single database host. */ public function view(GetDatabaseHostRequest $request, DatabaseHost $databaseHost): array { return $this->fractal->item($databaseHost) ->transformWith($this->getTransformer(DatabaseHostTransformer::class)) ->toArray(); } /** * Create database host * * Store a new database host on the Panel and return an HTTP/201 response code with the * new database host attached. * * @throws \Throwable */ public function store(StoreDatabaseHostRequest $request): JsonResponse { $databaseHost = $this->creationService->handle($request->validated()); return $this->fractal->item($databaseHost) ->transformWith($this->getTransformer(DatabaseHostTransformer::class)) ->addMeta([ 'resource' => route('api.application.databases.view', [ 'database_host' => $databaseHost->id, ]), ]) ->respond(201); } /** * Update database host * * Update a database host on the Panel and return the updated record to the user. * * @throws \Throwable */ public function update(UpdateDatabaseHostRequest $request, DatabaseHost $databaseHost): array { $databaseHost = $this->updateService->handle($databaseHost->id, $request->validated()); return $this->fractal->item($databaseHost) ->transformWith($this->getTransformer(DatabaseHostTransformer::class)) ->toArray(); } /** * Delete database host * * Delete a database host from the Panel. * * @throws \Exception */ public function delete(DeleteDatabaseHostRequest $request, DatabaseHost $databaseHost): Response { $databaseHost->delete(); return $this->returnNoContent(); } }