validateWikiDocCreate($request))) { $response->set($request->getUri()->__toString(), new FormValidation($val)); return; } $doc = $this->createWikiDocFromRequest($request); $this->createModel($request->getHeader()->getAccount(), $doc, WikiDocMapper::class, 'doc'); $this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Wiki', 'Wiki successfully created.', $doc); } /** * Method to create a wiki entry from request. * * @param RequestAbstract $request Request * * @return WikiDoc * * @since 1.0.0 */ public function createWikiDocFromRequest(RequestAbstract $request) : WikiDoc { $doc = new WikiDoc(); $doc->setName((string) $request->getData('title')); $doc->setDoc(Markdown::parse((string) ($request->getData('plain') ?? ''))); $doc->setDocRaw((string) ($request->getData('plain') ?? '')); $doc->setCategory((int) ($request->getData('category') ?? 1)); $doc->setLanguage((string) ($request->getData('language') ?? $request->getHeader()->getL11n()->getLanguage())); $doc->setStatus((int) ($request->getData('status') ?? WikiStatus::INACTIVE)); if ($request->getData('tags') !== null) { $doc->addTag((int) $request->getData('tags')); } return $doc; } /** * Method to validate wiki entry creation from request * * @param RequestAbstract $request Request * * @return array * * @since 1.0.0 */ private function validateWikiDocCreate(RequestAbstract $request) : array { $val = []; if (($val['title'] = empty($request->getData('title'))) || ($val['plain'] = empty($request->getData('plain'))) || ($val['status'] = ( $request->getData('status') !== null && !WikiStatus::isValidValue((int) $request->getData('status')) )) ) { return $val; } return []; } /** * Api method to create a wiki category * * @param RequestAbstract $request Request * @param ResponseAbstract $response Response * @param mixed $data Generic data * * @return void * * @api * * @since 1.0.0 */ public function apiWikiCategoryCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void { if (!empty($val = $this->validateWikiCategoryCreate($request))) { $response->set($request->getUri()->__toString(), new FormValidation($val)); return; } $category = $this->createWikiCategoryFromRequest($request); $this->createModel($request->getHeader()->getAccount(), $category, WikiCategoryMapper::class, 'category'); $this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Category', 'Category successfully created.', $category); } /** * Method to create a wiki category from request. * * @param RequestAbstract $request Request * * @return WikiCategory * * @since 1.0.0 */ public function createWikiCategoryFromRequest(RequestAbstract $request) : WikiCategory { $category = new WikiCategory(); $category->setName((string) $request->getData('title')); if ($request->getData('path') !== null) { $category->setPath((string) $request->getData('path')); } if ($request->getData('parent') !== null) { $category->setParent((int) $request->getData('parent')); } return $category; } /** * Method to validate wiki category creation from request * * @param RequestAbstract $request Request * * @return array * * @since 1.0.0 */ private function validateWikiCategoryCreate(RequestAbstract $request) : array { $val = []; if (($val['title'] = empty($request->getData('title')))) { return $val; } return []; } }