userIdentity->identifier(); $profile = $this->userService->fetchProfile($userId); return new JsonResponse($profile, JsonResponse::HTTP_OK); } /** * Update user profile fields * Only editable fields can be updated. Provider-managed fields are automatically filtered out. * * @param array $profile Key-value pairs of profile fields to update * * @example request body: * { * "name_given": "John", * "name_family": "Doe", * "phone": "+1234567890" * } * * @return JsonResponse Updated profile data */ #[AuthenticatedRoute('/user/profile', name: 'user.profile.update', methods: ['PUT', 'PATCH'])] public function update(array $profile = []): JsonResponse { $userId = $this->userIdentity->identifier(); // storeProfile automatically filters out provider-managed fields $this->userService->storeProfile($userId, $profile); // Return updated profile $updatedProfile = $this->userService->fetchProfile($userId); return new JsonResponse($updatedProfile, JsonResponse::HTTP_OK); } }