public function __invoke(Request $request)
{
/**
* @var ResourceInterface
*/
list($resourceType, $format) = $this->extractAttributes($request);
if ($this->userService->checkUserLimit() === true) {
throw new UserLimitReachedException();
}
/**
* @var User
*/
$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;
}