validateChecklistTemplateCreate($request))) { $response->header->status = RequestStatusCode::R_400; $this->createInvalidCreateResponse($request, $response, $val); return; } $checklist = $this->createChecklistTemplateFromRequest($request); $this->createModel($request->header->account, $checklist, ChecklistTemplateMapper::class, 'checklist_template', $request->getOrigin()); $this->createStandardCreateResponse($request, $response, $checklist); } /** * Validate checklist create request * * @param RequestAbstract $request Request * * @return array * * @since 1.0.0 */ private function validateChecklistTemplateCreate(RequestAbstract $request) : array { $val = []; if (($val['name'] = !$request->hasData('name')) ) { return $val; } return []; } /** * Method to create checklist from request. * * @param RequestAbstract $request Request * * @return ChecklistTemplate * * @since 1.0.0 */ private function createChecklistTemplateFromRequest(RequestAbstract $request) : ChecklistTemplate { $checklist = new ChecklistTemplate(); $checklist->name = (string) $request->getData('name'); $checklist->description = $request->getDataString('description') ?? ''; $checklist->repeat = 0; $checklist->interval = $request->getDataString('interval') ?? ''; $checklist->start = $request->getDataDateTime('start') ?? new \DateTime('now'); $checklist->end = $request->getDataDateTime('end'); return $checklist; } /** * Api method to create an checklist * * @param RequestAbstract $request Request * @param ResponseAbstract $response Response * @param array $data Generic data * * @return void * * @api * * @since 1.0.0 */ public function apiChecklistTemplateTaskCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void { if (!empty($val = $this->validateChecklistTemplateTaskCreate($request))) { $response->header->status = RequestStatusCode::R_400; $this->createInvalidCreateResponse($request, $response, $val); return; } $checklist = $this->createChecklistTemplateTaskFromRequest($request); $this->createModel($request->header->account, $checklist, ChecklistTemplateTaskMapper::class, 'checklist_template_task', $request->getOrigin()); $this->createStandardCreateResponse($request, $response, $checklist); } /** * Validate checklist create request * * @param RequestAbstract $request Request * * @return array * * @since 1.0.0 */ private function validateChecklistTemplateTaskCreate(RequestAbstract $request) : array { $val = []; if (($val['template'] = !$request->hasData('template')) ) { return $val; } return []; } /** * Method to create checklist from request. * * @param RequestAbstract $request Request * * @return ChecklistTemplateTask * * @since 1.0.0 */ private function createChecklistTemplateTaskFromRequest(RequestAbstract $request) : ChecklistTemplateTask { $request->setData('type', TaskType::TEMPLATE, true); $checklistTask = new ChecklistTemplateTask(); $checklistTask->template = (int) $request->getData('template'); $checklistTask->task = $this->app->moduleManager->get('Tasks', 'Api')->createTaskFromRequest($request); return $checklistTask; } }