service = $service; } public function postActionProcess(Request $request): StdClass { $params = $this->fetchRawParamsFromRequest($request); $result = $this->service->process($params); return (object) [ 'id' => $result->getAttachmentId(), ]; } private function fetchRawParamsFromRequest(Request $request): Params { $data = $request->getParsedBody(); $entityType = $data->entityType ?? null; if (!$entityType) { throw new BadRequest("No entityType."); } $params['entityType'] = $entityType; $where = $data->where ?? null; $searchParams = $data->searchParams ?? null; $ids = $data->ids ?? null; if (!is_null($where) || !is_null($searchParams)) { if (!is_null($where)) { $params['where'] = json_decode(json_encode($where), true); } if (!is_null($searchParams)) { $params['searchParams'] = json_decode(json_encode($searchParams), true); } } else if (!is_null($ids)) { $params['ids'] = $ids; } if (isset($data->attributeList)) { $params['attributeList'] = $data->attributeList; } if (isset($data->fieldList)) { $params['fieldList'] = $data->fieldList; } if (isset($data->format)) { $params['format'] = $data->format; } return Params::fromRaw($params); } }