From edaa514f57aaab3f33ca1050a4821b1ec0abe33b Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Thu, 1 Jul 2021 08:26:36 +0000 Subject: [PATCH] Add index for capi user ID. Add checking if user already registered. #591 --- src/Controller/ResqAPI/CustomerController.php | 18 +++++++++++++++--- src/Entity/MobileUser.php | 5 ++++- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/Controller/ResqAPI/CustomerController.php b/src/Controller/ResqAPI/CustomerController.php index 464cb9a7..0cbdd37d 100644 --- a/src/Controller/ResqAPI/CustomerController.php +++ b/src/Controller/ResqAPI/CustomerController.php @@ -44,6 +44,12 @@ class CustomerController extends APIController // get capi user to link to mobile user $user_id = $this->getUser()->getID(); + + // check if capi user already has a mobile user + $mobile_user = $this->findMobileUser($user_id, $em); + if ($mobile_user != null) + return new APIResponse(false, 'User already registered'); + // retry until we get a unique id while (true) { @@ -82,9 +88,8 @@ class CustomerController extends APIController } // return data - // need to make sure the names returned to app are the same - // so we still use session_id name - // TODO: depending on what data type we return, this might need changes + // TODO: do we need to return the same names as before? + // right now, still usind the old names so we use session_id name $data = [ 'session_id' => $mobile_user->getID() ]; @@ -468,6 +473,13 @@ class CustomerController extends APIController return $res->getReturnResponse(); } + protected function findMobileUser($user_id, $em) + { + $mobile_user = $em->getRepository(MobileUser::class)->findBy(['capi_user_id' => $user_id]); + + return $mobile_user; + } + // TODO: this might not be needed if we use APIController's checkRequiredParameters // or we put this into a service? protected function checkMissingParameters(Request $req, $params = []) diff --git a/src/Entity/MobileUser.php b/src/Entity/MobileUser.php index 127ccb47..0e5e80e0 100644 --- a/src/Entity/MobileUser.php +++ b/src/Entity/MobileUser.php @@ -10,7 +10,10 @@ use DateTime; /** * @ORM\Entity - * @ORM\Table(name="mobile_user") + * @ORM\Table( + * name="mobile_user", + * indexes={@ORM\Index(name="capi_user_idx", columns={"capi_user_id"})} + * ) */ class MobileUser {