acl->check('Import'); } public function postActionUploadFile(Request $request): StdClass { $contents = $request->getBodyContents(); $attachmentId = $this->getService('Import')->uploadFile($contents); return (object) ['attachmentId' => $attachmentId]; } public function postActionRevert(Request $request): bool { $data = $request->getParsedBody(); $this->getService('Import')->revert($data->id); return true; } public function postActionRemoveDuplicates(Request $request): bool { $data = $request->getParsedBody(); if (empty($data->id)) { throw new BadRequest(); } $this->getService('Import')->removeDuplicates($data->id); return true; } public function postActionCreate(Request $request, Response $response): StdClass { $data = $request->getParsedBody(); if (!isset($data->delimiter)) { throw new BadRequest(); } if (!isset($data->textQualifier)) { throw new BadRequest(); } if (!isset($data->dateFormat)) { throw new BadRequest(); } if (!isset($data->timeFormat)) { throw new BadRequest(); } if (!isset($data->personNameFormat)) { throw new BadRequest(); } if (!isset($data->decimalMark)) { throw new BadRequest(); } if (!isset($data->defaultValues)) { throw new BadRequest(); } if (!isset($data->action)) { throw new BadRequest(); } if (!isset($data->attachmentId)) { throw new BadRequest(); } if (!isset($data->entityType)) { throw new BadRequest(); } if (!isset($data->attributeList)) { throw new BadRequest(); } $timezone = 'UTC'; if (isset($data->timezone)) { $timezone = $data->timezone; } $importParams = [ 'headerRow' => !empty($data->headerRow), 'delimiter' => $data->delimiter, 'textQualifier' => $data->textQualifier, 'dateFormat' => $data->dateFormat, 'timeFormat' => $data->timeFormat, 'timezone' => $timezone, 'personNameFormat' => $data->personNameFormat, 'decimalMark' => $data->decimalMark, 'currency' => $data->currency, 'defaultValues' => $data->defaultValues, 'action' => $data->action, 'skipDuplicateChecking' => !empty($data->skipDuplicateChecking), 'idleMode' => !empty($data->idleMode), 'silentMode' => !empty($data->silentMode), 'manualMode' => !empty($data->manualMode), 'defaultFieldList' => $data->defaultFieldList ?? [], ]; if (property_exists($data, 'updateBy')) { $importParams['updateBy'] = $data->updateBy; } $attachmentId = $data->attachmentId; if (!$this->acl->check($data->entityType, 'edit')) { throw new Forbidden(); } return $this->getService('Import')->import( $data->entityType, $data->attributeList, $attachmentId, $importParams ); } public function postActionUnmarkAsDuplicate(Request $request): bool { $data = $request->getParsedBody(); if (empty($data->id) || empty($data->entityType) || empty($data->entityId)) { throw new BadRequest(); } $this->getService('Import')->unmarkAsDuplicate($data->id, $data->entityType, $data->entityId); return true; } public function beforePatch(): void { throw new BadRequest(); } public function beforeUpdate(): void { throw new BadRequest(); } public function beforeCreateLink(): void { throw new BadRequest(); } public function beforeRemoveLink(): void { throw new BadRequest(); } }