PartKeepr\AuthBundle\Action\PutUserAction::__invoke PHP Method

__invoke() public method

Create a new item.
public __invoke ( Request $request, string | integer $id ) : mixed
$request Symfony\Component\HttpFoundation\Request
$id string | integer
return mixed
    public function __invoke(Request $request, $id)
    {
        /**
         * @var ResourceInterface
         */
        list($resourceType, $format) = $this->extractAttributes($request);
        /**
         * @var User
         */
        $data = $this->getItem($this->dataProvider, $resourceType, $id);
        $context = $resourceType->getDenormalizationContext();
        $context['object_to_populate'] = $data;
        if ($data->isProtected()) {
            throw new UserProtectedException();
        }
        $data = $this->serializer->deserialize($request->getContent(), $resourceType->getEntityClass(), $format, $context);
        if ($data->isActive()) {
            if ($this->userService->checkUserLimit()) {
                throw new UserLimitReachedException();
            }
        }
        $this->userService->syncData($data);
        $data->setNewPassword('');
        $data->setPassword('');
        $data->setLegacy(false);
        return $data;
    }