From 3b8cb6f268fc8614c8167bcac42e44275d97793e Mon Sep 17 00:00:00 2001 From: Abhishek Gupta Date: Wed, 7 Jun 2023 11:33:41 +0530 Subject: [PATCH 1/3] Changes in agent api group team and privilegs in both create and update agent api --- API/Agents.php | 94 +++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 85 insertions(+), 9 deletions(-) diff --git a/API/Agents.php b/API/Agents.php index 7da9c62..4ca9d59 100644 --- a/API/Agents.php +++ b/API/Agents.php @@ -109,11 +109,30 @@ public function createAgentRecord(Request $request,EntityManagerInterface $entit $fullname = trim(implode(' ', [$params['firstName'], $params['lastName']])); $supportRole = $entityManager->getRepository(SupportRole::class)->findOneByCode($params['role']); + + if ($supportRole->getId() == 4 ){ + return new JsonResponse([ + 'success' => false, + 'message' => 'Invalid agent role.', + ],404); + } + + if (!empty($params['isActive'])) { + if ($params['isActive'] == '1' || $params['isActive'] == 'true') { + $params['isActive'] = true; + } elseif ($params['isActive'] == '0') { + $params['isActive'] = false; + } else { + $params['isActive'] = false; + } + } else { + $params['isActive'] = false; + } $user = $userService->createUserInstance($request->request->get('email'), $fullname, $supportRole, [ 'contact' => $params['contactNumber'], 'source' => 'website', - 'active' => !empty($params['isActive']) ? true : false, + 'active' => $params['isActive'], 'image' => $uploadedFiles ? $uploadedFiles : null , 'signature' => $params['signature'], 'designation' =>$params['designation'] @@ -135,7 +154,14 @@ public function createAgentRecord(Request $request,EntityManagerInterface $entit if (!empty($params['userSubGroup'])) { $supportTeamRepository = $entityManager->getRepository(SupportTeam::class); - foreach ($params['userSubGroup'] as $supportTeamId) { + if (is_array($params['userSubGroup'])) { + $convertTeamIntoString = implode(' ', $params['userSubGroup']); + $userSubGroupIds = explode(',', $convertTeamIntoString); + } else { + $userSubGroupIds = explode(',', $params['userSubGroup']); + } + + foreach ($userSubGroupIds as $supportTeamId) { $supportTeam = $supportTeamRepository->findOneById($supportTeamId); if (!empty($supportTeam)) { @@ -148,7 +174,14 @@ public function createAgentRecord(Request $request,EntityManagerInterface $entit if (!empty($params['groups'])) { $supportGroupRepository = $entityManager->getRepository(SupportGroup::class); - foreach ($params['groups'] as $supportGroupId) { + if (is_array($params['groups'])){ + $convertGroupIntoString = implode(' ', $params['groups']); + $groupIds = explode(',', $convertGroupIntoString); + } else { + $groupIds = explode(',', $params['groups']); + } + + foreach ($groupIds as $supportGroupId) { $supportGroup = $supportGroupRepository->findOneById($supportGroupId); if (!empty($supportGroup)) { @@ -161,7 +194,14 @@ public function createAgentRecord(Request $request,EntityManagerInterface $entit if (!empty($params['agentPrivilege'])) { $supportPrivilegeRepository = $entityManager->getRepository(SupportPrivilege::class); - foreach($params['agentPrivilege'] as $supportPrivilegeId) { + if (is_array($params['agentPrivilege'])) { + $convertStrings = implode(' ', $params['agentPrivilege']); + $priviligesId = explode(',', $convertStrings); + } else { + $priviligesId = explode(',', $params['agentPrivilege']); + } + + foreach($priviligesId as $supportPrivilegeId) { $supportPrivilege = $supportPrivilegeRepository->findOneById($supportPrivilegeId); if (!empty($supportPrivilege)) { @@ -269,13 +309,32 @@ public function updateAgentRecord(Request $request, $agentId, UVDeskService $uvd $userInstance->setProfileImagePath(null); } - + if (!empty($params['isActive'])) { + if ($params['isActive'] == '1' || $params['isActive'] == 'true') { + $params['isActive'] = true; + } elseif ($params['isActive'] == '0') { + $params['isActive'] = false; + } else { + $params['isActive'] = false; + } + } else { + $params['isActive'] = false; + } + $userInstance->setSignature($params['signature']); - $userInstance->setIsActive(isset($params['isActive']) ? $params['isActive'] : 0); + $userInstance->setIsActive($params['isActive']); //Team support to agent if(isset($params['userSubGroup'])){ - foreach ($params['userSubGroup'] as $userSubGroup) { + + if (is_array($params['userSubGroup'])) { + $convertTeamIntoString = implode(' ', $params['userSubGroup']); + $userSubGroupIds = explode(',', $convertTeamIntoString); + } else { + $userSubGroupIds = explode(',', $params['userSubGroup']); + } + + foreach ($userSubGroupIds as $userSubGroup) { if($userSubGrp = $uvdeskService->getEntityManagerResult( SupportTeam::class, 'findOneBy', [ @@ -298,7 +357,15 @@ public function updateAgentRecord(Request $request, $agentId, UVDeskService $uvd //Group support if(isset($params['groups'])){ - foreach ($params['groups'] as $userGroup) { + + if (is_array($params['groups'])){ + $convertGroupIntoString = implode(' ', $params['groups']); + $groupIds = explode(',', $convertGroupIntoString); + } else { + $groupIds = explode(',', $params['groups']); + } + + foreach ($groupIds as $userGroup) { if($userGrp = $uvdeskService->getEntityManagerResult( SupportGroup::class, 'findOneBy', [ @@ -322,7 +389,15 @@ public function updateAgentRecord(Request $request, $agentId, UVDeskService $uvd //Privilegs support if(isset($params['agentPrivilege'])){ - foreach ($params['agentPrivilege'] as $supportPrivilege) { + + if (is_array($params['agentPrivilege'])) { + $convertStrings = implode(' ', $params['agentPrivilege']); + $priviligesId = explode(',', $convertStrings); + } else { + $priviligesId = explode(',', $params['agentPrivilege']); + } + + foreach ($priviligesId as $supportPrivilege) { if($supportPlg = $uvdeskService->getEntityManagerResult( SupportPrivilege::class, 'findOneBy', [ @@ -336,6 +411,7 @@ public function updateAgentRecord(Request $request, $agentId, UVDeskService $uvd }elseif($oldSupportedPrivilege && ($key = array_search($supportPlg, $oldSupportedPrivilege)) !== false) unset($oldSupportedPrivilege[$key]); } + foreach ($oldSupportedPrivilege as $removeGroup) { $userInstance->removeSupportPrivilege($removeGroup); $em->persist($userInstance); From 33eb1e8f1d86dabc3c796d71d4ffc54b2688cb96 Mon Sep 17 00:00:00 2001 From: Abhishek Gupta Date: Wed, 7 Jun 2023 17:32:23 +0530 Subject: [PATCH 2/3] Some changes in agent create and update apis --- API/Agents.php | 32 +++++--------------------------- 1 file changed, 5 insertions(+), 27 deletions(-) diff --git a/API/Agents.php b/API/Agents.php index 4ca9d59..24a318f 100644 --- a/API/Agents.php +++ b/API/Agents.php @@ -85,8 +85,7 @@ public function loadAgentDetails($id, Request $request) public function createAgentRecord(Request $request,EntityManagerInterface $entityManager, UserService $userService) { - $params = $request->request->all(); - $agentRecord = new User(); + $params = $request->request->all()? : json_decode($request->getContent(),true); $user = $entityManager->getRepository(User::class)->findOneByEmail($params['email']); $agentInstance = !empty($user) ? $user->getAgentInstance() : null; @@ -129,7 +128,7 @@ public function createAgentRecord(Request $request,EntityManagerInterface $entit $params['isActive'] = false; } - $user = $userService->createUserInstance($request->request->get('email'), $fullname, $supportRole, [ + $user = $userService->createUserInstance($params['email'], $fullname, $supportRole, [ 'contact' => $params['contactNumber'], 'source' => 'website', 'active' => $params['isActive'], @@ -153,14 +152,7 @@ public function createAgentRecord(Request $request,EntityManagerInterface $entit // Map support team if (!empty($params['userSubGroup'])) { $supportTeamRepository = $entityManager->getRepository(SupportTeam::class); - - if (is_array($params['userSubGroup'])) { - $convertTeamIntoString = implode(' ', $params['userSubGroup']); - $userSubGroupIds = explode(',', $convertTeamIntoString); - } else { - $userSubGroupIds = explode(',', $params['userSubGroup']); - } - + $userSubGroupIds = is_array($params['userSubGroup']) ? $params['userSubGroup'] : explode(',', $params['userSubGroup']); foreach ($userSubGroupIds as $supportTeamId) { $supportTeam = $supportTeamRepository->findOneById($supportTeamId); @@ -173,14 +165,7 @@ public function createAgentRecord(Request $request,EntityManagerInterface $entit // Map support group if (!empty($params['groups'])) { $supportGroupRepository = $entityManager->getRepository(SupportGroup::class); - - if (is_array($params['groups'])){ - $convertGroupIntoString = implode(' ', $params['groups']); - $groupIds = explode(',', $convertGroupIntoString); - } else { - $groupIds = explode(',', $params['groups']); - } - + $groupIds = is_array($params['groups']) ? $params['groups'] : explode(',', $params['groups']); foreach ($groupIds as $supportGroupId) { $supportGroup = $supportGroupRepository->findOneById($supportGroupId); @@ -193,14 +178,7 @@ public function createAgentRecord(Request $request,EntityManagerInterface $entit // Map support privileges if (!empty($params['agentPrivilege'])) { $supportPrivilegeRepository = $entityManager->getRepository(SupportPrivilege::class); - - if (is_array($params['agentPrivilege'])) { - $convertStrings = implode(' ', $params['agentPrivilege']); - $priviligesId = explode(',', $convertStrings); - } else { - $priviligesId = explode(',', $params['agentPrivilege']); - } - + $priviligesId = is_array($params['agentPrivilege']) ? $params['agentPrivilege'] : explode(',', $params['agentPrivilege']); foreach($priviligesId as $supportPrivilegeId) { $supportPrivilege = $supportPrivilegeRepository->findOneById($supportPrivilegeId); From f8271b29e77be6c3a5f07af9e2820b18062598ee Mon Sep 17 00:00:00 2001 From: Abhishek Gupta Date: Fri, 9 Jun 2023 13:20:33 +0530 Subject: [PATCH 3/3] Changes in update agent api in privileges and groups permission --- API/Agents.php | 23 ++++------------------- 1 file changed, 4 insertions(+), 19 deletions(-) diff --git a/API/Agents.php b/API/Agents.php index 24a318f..5ac7a24 100644 --- a/API/Agents.php +++ b/API/Agents.php @@ -305,13 +305,8 @@ public function updateAgentRecord(Request $request, $agentId, UVDeskService $uvd //Team support to agent if(isset($params['userSubGroup'])){ - if (is_array($params['userSubGroup'])) { - $convertTeamIntoString = implode(' ', $params['userSubGroup']); - $userSubGroupIds = explode(',', $convertTeamIntoString); - } else { - $userSubGroupIds = explode(',', $params['userSubGroup']); - } - + $userSubGroupIds = is_array($params['userSubGroup']) ? $params['userSubGroup'] : explode(',', $params['userSubGroup']); + foreach ($userSubGroupIds as $userSubGroup) { if($userSubGrp = $uvdeskService->getEntityManagerResult( SupportTeam::class, @@ -336,12 +331,7 @@ public function updateAgentRecord(Request $request, $agentId, UVDeskService $uvd //Group support if(isset($params['groups'])){ - if (is_array($params['groups'])){ - $convertGroupIntoString = implode(' ', $params['groups']); - $groupIds = explode(',', $convertGroupIntoString); - } else { - $groupIds = explode(',', $params['groups']); - } + $groupIds = is_array($params['groups']) ? $params['groups'] : explode(',', $params['groups']); foreach ($groupIds as $userGroup) { if($userGrp = $uvdeskService->getEntityManagerResult( @@ -368,12 +358,7 @@ public function updateAgentRecord(Request $request, $agentId, UVDeskService $uvd //Privilegs support if(isset($params['agentPrivilege'])){ - if (is_array($params['agentPrivilege'])) { - $convertStrings = implode(' ', $params['agentPrivilege']); - $priviligesId = explode(',', $convertStrings); - } else { - $priviligesId = explode(',', $params['agentPrivilege']); - } + $priviligesId = is_array($params['agentPrivilege']) ? $params['agentPrivilege'] : explode(',', $params['agentPrivilege']); foreach ($priviligesId as $supportPrivilege) { if($supportPlg = $uvdeskService->getEntityManagerResult(