user = $user; $this->service = $service; } /** * @return mixed * @throws Forbidden * @throws NotFound * @throws Error * @throws BadRequest */ public function getActionRead(Request $request) { $params = $request->getRouteParams(); $scope = $params['scope'] ?? null; $name = $params['name'] ?? null; if (!$scope || !$name) { throw new BadRequest(); } return $this->service->getForFrontend($scope, $name); } /** * @return mixed * @throws Forbidden * @throws BadRequest * @throws NotFound * @throws Error */ public function putActionUpdate(Request $request) { $params = $request->getRouteParams(); $data = json_decode($request->getBodyContents() ?? 'null'); if (is_object($data)) { $data = get_object_vars($data); } if (!$this->user->isAdmin()) { throw new Forbidden(); } $scope = $params['scope'] ?? null; $name = $params['name'] ?? null; $setId = $params['setId'] ?? null; if (!$scope || !$name) { throw new BadRequest(); } return $this->service->update($scope, $name, $setId, $data); } /** * @return mixed * @throws Forbidden * @throws BadRequest * @throws NotFound * @throws Error */ public function postActionResetToDefault(Request $request) { $data = $request->getParsedBody(); if (!$this->user->isAdmin()) { throw new Forbidden(); } if (empty($data->scope) || empty($data->name)) { throw new BadRequest(); } return $this->service->resetToDefault($data->scope, $data->name, $data->setId ?? null); } /** * @return mixed * @throws BadRequest * @throws Forbidden * @throws NotFound * @throws Error */ public function getActionGetOriginal(Request $request) { if (!$this->user->isAdmin()) { throw new Forbidden(); } $scope = $request->getQueryParam('scope'); $name = $request->getQueryParam('name'); $setId = $request->getQueryParam('setId'); if (!$scope || !$name) { throw new BadRequest("No `scope` or `name` parameter."); } return $this->service->getOriginal($scope, $name, $setId); } }