* * @since 1.0.0 */ private function validateResourceCreate(RequestAbstract $request) : array { $val = []; if (($val['title'] = empty($request->getData('title'))) || ($val['uri'] = empty($request->getData('uri'))) ) { return $val; } return []; } /** * Api method to create resource * * @param RequestAbstract $request Request * @param ResponseAbstract $response Response * @param mixed $data Generic data * * @return void * * @api * * @since 1.0.0 */ public function apiResourceCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void { if (!empty($val = $this->validateResourceCreate($request))) { $response->set('resource_create', new FormValidation($val)); $response->header->status = RequestStatusCode::R_400; return; } $resource = $this->createResourceFromRequest($request); $this->createModel($request->header->account, $resource, ResourceMapper::class, 'resource', $request->getOrigin()); $this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Resource', 'Resource successfully created', $resource); } /** * Method to create news article from request. * * @param RequestAbstract $request Request * * @return Resource * * @since 1.0.0 */ private function createResourceFromRequest(RequestAbstract $request) : Resource { $resource = new Resource(); $resource->owner = new NullAccount($request->header->account); $resource->title = (string) ($request->getData('title') ?? ''); $resource->uri = $request->getData('uri') ?? ''; $resource->owner = new NullAccount($request->header->account); // @todo: check if user is part of organization below AND has free resources to add!!! $resource->organization = new NullAccount( empty($request->getData('organization')) ? $request->header->account : (int) ($request->getData('organization')) ); return $resource; } /** * Api method to create resource * * @param RequestAbstract $request Request * @param ResponseAbstract $response Response * @param mixed $data Generic data * * @return void * * @api * * @since 1.0.0 */ public function apiCheckResources(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void { SystemUtils::runProc( __DIR__ . '/server/bin/OnlineResourceWatcherServerApp', '' ); $this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Resources', 'Resources are getting checked.', null); } }