validateEventCreate($request))) { $response->header->status = RequestStatusCode::R_400; $this->createInvalidCreateResponse($request, $response, $val); return; } $event = $this->createEventFromRequest($request); $this->createModel($request->header->account, $event, EventMapper::class, 'card', $request->getOrigin()); $this->createStandardCreateResponse($request, $response, $event); } /** * Method to create card from request. * * @param RequestAbstract $request Request * * @return Event * * @since 1.0.0 */ public function createEventFromRequest(RequestAbstract $request) : Event { $event = new Event(); $event->name = $request->getDataString('name') ?? ''; $event->descriptionRaw = $request->getDataString('plain') ?? ''; $event->description = Markdown::parse($request->getDataString('plain') ?? ''); $event->start = $request->getDataDateTime('start') ?? $event->start; $event->end = $request->getDataDateTime('end') ?? $event->end; $event->createdBy = new NullAccount($request->header->account); $event->progressType = ProgressType::tryFromValue($request->getDataInt('progresstype')) ?? ProgressType::MANUAL; $event->progress = $request->getDataInt('progress') ?? 0; $event->budgetCosts->value = $request->getDataInt('budgetcosts') ?? 0; $event->actualCosts->value = $request->getDataInt('actualcosts') ?? 0; $event->unit = $request->getDataInt('unit') ?? $this->app->unitId; // @todo implement unit //$event->unit = $this->app->unitId; // @todo implement event directory if (!empty($request->files)) { $uploaded = $this->app->moduleManager->get('Media', 'Api')->uploadFiles( names: [], fileNames: [], files: $request->files, account: $request->header->account, basePath: __DIR__ . '/../../../Modules/Media/Files/Modules/EventManagement', virtualPath: '/Modules/EventManagement', ); foreach ($uploaded as $media) { $event->files[] = $media; } } $mediaFiles = $request->getDataJson('media'); foreach ($mediaFiles as $media) { $event->files[] = new NullMedia($media); } return $event; } /** * Validate card create request * * @param RequestAbstract $request Request * * @return array * * @since 1.0.0 */ private function validateEventCreate(RequestAbstract $request) : array { $val = []; if (($val['name'] = !$request->hasData('name'))) { return $val; } return []; } }