updateContact($request, $userConsent); } #[Route('/_ecomail/update_contact', methods: ['POST'])] public function updateContact(Request $request, UserConsent $userConsent): Response { $content = $request->getContent(); if (empty($content)) { return new Response('No content', 400); } $data = json_decode($content, true); if (!isset($data['payload'])) { return new Response('No payload', 400); } if (!isset($data['payload']['status'])) { return new Response('No status', 400); } if (!in_array($data['payload']['status'], ['SUBSCRIBED', 'UNSUBSCRIBED'])) { return new Response('Nothing to do with status '.$data['payload']['status'], 200); } $user = \User::createFromLogin($data['payload']['email']); if (!$user) { return new Response("User {$data['payload']['email']} doesn't exist", 400); } $newsletter = ($data['payload']['status'] == 'SUBSCRIBED' ? 'Y' : 'N'); $result = $userConsent->updateNewsletter($user->id, $newsletter, false); return new Response((string) $result, 200); } }