Add creation of rider api user when rider is created. #625

This commit is contained in:
Korina Cordero 2021-10-06 03:52:37 +00:00
parent 697fa20071
commit c6654bd3c6

View file

@ -25,6 +25,9 @@ use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
use Catalyst\MenuBundle\Annotation\Menu;
use Catalyst\APIBundle\Entity\User as APIUser;
use Catalyst\APIBundle\Entity\Role as APIRole;
use DateTime;
class RiderController extends Controller
@ -283,6 +286,9 @@ class RiderController extends Controller
$em->persist($obj);
$em->flush();
// create rider's api user
$this->createRiderAPIUser($obj, $em);
// return successful response
return $this->json([
'success' => 'Changes have been saved!'
@ -507,6 +513,43 @@ class RiderController extends Controller
}
}
protected function createRiderAPIUser($obj, EntityManagerInterface $em)
{
// get api role for rider
$role_id = 'ROLE_RIDER';
$role = $em->getRepository(APIRole::class)->find($role_id);
if ($role == null)
{
return;
}
// Secret and API keys are generated in constructor
$api_user = new APIUser();
// set enabled to true
$api_user->setEnabled(true);
// set name to rider's last name + first name
$rider_name = $obj->getFirstName() . ' ' . $obj->getLastName();
$api_user->setName($rider_name);
// set rider to api_user
$api_user->setRider($obj);
// set meta
$meta = ['rider_id' => $obj->getID()];
$api_user->setMetaData($meta);
// set role
$api_user->addRole($role);
// set rider's api user
$obj->setAPIUser($api_user);
$em->persist($api_user);
$em->flush();
}
public function popupInfo(EntityManagerInterface $em, $id)
{
$rider = $em->getRepository(Rider::class)->find($id);