validateNavElementCreate($request))) { $response->header->status = RequestStatusCode::R_400; $this->createInvalidCreateResponse($request, $response, $val); return; } $navElement = $this->createNavElementFromRequest($request); $this->createModel($request->header->account, $navElement, NavElementMapper::class, 'nav_element', $request->getOrigin()); $this->createStandardCreateResponse($request, $response, $navElement); } /** * Validate navigation element create request * * @param RequestAbstract $request Request * * @return array * * @since 1.0.0 */ private function validateNavElementCreate(RequestAbstract $request) : array { $val = []; if (($val['name'] = !$request->hasKey('name'))) { return $val; } return []; } /** * Method to create navigation element from request. * * @param RequestAbstract $request Request * * @return NavElement * * @since 1.0.0 */ private function createNavElementFromRequest(RequestAbstract $request) : NavElement { $navElement = new NavElement(); $navElement->id = (int) $request->getData('id'); $navElement->pid = \sha1(\str_replace('/', '', $request->getDataString('pid') ?? '')); $navElement->pidRaw = $request->getDataString('pid') ?? ''; $navElement->name = $request->getDataString('name') ?? ''; $navElement->type = NavigationType::tryFromValue($request->getDataInt('type')) ?? NavigationType::SIDE; $navElement->subtype = LinkType::tryFromValue($request->getDataInt('subtype')) ?? LinkType::LINK; $navElement->icon = $request->getDataString('icon'); $navElement->uri = $request->getDataString('uri'); $navElement->target = $request->getDataString('target') ?? 'self'; $navElement->action = $request->getDataString('action'); $navElement->app = $request->getDataInt('app') ?? 2; $navElement->from = empty($from = $request->getDataString('from') ?? '') ? '0' : $from; $navElement->order = $request->getDataInt('order') ?? 1; $navElement->parent = $request->getDataInt('parent') ?? 0; $navElement->permissionPerm = $request->getDataInt('permission'); $navElement->permissionCategory = $request->getDataInt('category'); $navElement->permissionElement = $request->getDataInt('element'); $navElement->status = LinkStatus::tryFromValue($request->getDataInt('status')) ?? LinkStatus::ACTIVE; return $navElement; } }