/** * Create a new item. * * @param Request $request * * @return mixed * * @throws NotFoundHttpException * @throws RuntimeException * @throws UserLimitReachedException */ public function __invoke(Request $request) { /** * @var $resourceType ResourceInterface */ list($resourceType, $format) = $this->extractAttributes($request); if ($this->userService->checkUserLimit() === true) { throw new UserLimitReachedException(); } /** * @var User $data */ $data = $this->serializer->deserialize($request->getContent(), $resourceType->getEntityClass(), $format, $resourceType->getDenormalizationContext()); $data->setProvider($this->userService->getBuiltinProvider()); $data->setLegacy(false); $this->userService->syncData($data); $data->setNewPassword(""); $data->setPassword(""); return $data; }