diff --git a/src/Controller/APIController.php b/src/Controller/APIController.php index 08adc5a7..86830b7f 100644 --- a/src/Controller/APIController.php +++ b/src/Controller/APIController.php @@ -218,12 +218,29 @@ class APIController extends Controller ->setPhoneNumber($phone_number); $em->flush(); - // TODO: send sms to number + // TODO: send sms with validation code to number // response return $res->getReturnResponse(); } + // TODO: find session customer by phone number + protected function findNumberSession($number) + { + $em = $this->getDoctrine()->getManager(); + $query = $em->getRepository(MobileSession::class)->createQueryBuilder('s') + ->where('s.phone_number = :number') + ->andWhere('s.customer is not null') + ->andWhere('s.confirm_flag = 1') + ->setParameter('number', $number) + ->getQuery(); + + // we just need one + $res = $query->getOneOrNullResult(); + + return $res; + } + public function validateCode(Request $req) { // check parameters @@ -250,6 +267,16 @@ class APIController extends Controller $date = new DateTime(); $this->session->setDateConfirmed($date) ->setConfirmed(); + + + // TODO: check if we have the number registered before and merge + $dupe_sess = $this->findNumberSession($this->session->getPhoneNumber()); + if ($dupe_sess != null) + { + $dupe_cust = $dupe_sess->getCustomer(); + $this->session->setCustomer($dupe_cust); + } + $em->flush(); // response