public function __invoke(Request $request)
{
$user = $this->userService->getUser();
$data = json_decode($request->getContent());
if (property_exists($data, 'preferenceKey') && property_exists($data, 'preferenceValue')) {
$preference = $this->userPreferenceService->setPreference($user, $data->preferenceKey, $data->preferenceValue);
} else {
throw new \Exception('Invalid format');
}
list($resourceType) = $this->extractAttributes($request);
/*
* @var ResourceInterface $resourceType
*/
$serializedData = $this->serializer->normalize($preference, 'json', $resourceType->getNormalizationContext());
return new JsonResponse($serializedData);
}