Skip to content

Commit

Permalink
Merge branch 'v1.1.2_micro' into HEAD
Browse files Browse the repository at this point in the history
  • Loading branch information
papnoisanjeev committed Dec 18, 2024
2 parents 1bef316 + b8df417 commit a185ba1
Show file tree
Hide file tree
Showing 18 changed files with 682 additions and 398 deletions.
146 changes: 84 additions & 62 deletions API/Agents.php
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ public function loadAgents(Request $request, EntityManagerInterface $entityManag
$collection = $qb->getQuery()->getResult();

return new JsonResponse([
'success' => true,
'success' => true,
'collection' => !empty($collection) ? $collection : [],
]);
}
Expand All @@ -67,13 +67,13 @@ public function loadAgentDetails($id, Request $request)
}

$agentDetails = [
'id' => $user->getId(),
'firstName' => $user->getFirstName(),
'lastName' => $user->getLastName(),
'userEmail' => $user->getUsername(),
'isEnabled' => $user->getIsEnabled(),
'isActive' => $user->getAgentInstance()->getIsActive(),
'isVerified' => $user->getAgentInstance()->getIsVerified(),
'id' => $user->getId(),
'firstName' => $user->getFirstName(),
'lastName' => $user->getLastName(),
'userEmail' => $user->getUsername(),
'isEnabled' => $user->getIsEnabled(),
'isActive' => $user->getAgentInstance()->getIsActive(),
'isVerified' => $user->getAgentInstance()->getIsVerified(),
'contactNumber' => $user->getAgentInstance()->getContactNumber()
];

Expand All @@ -83,9 +83,22 @@ public function loadAgentDetails($id, Request $request)
]);
}

public function createAgentRecord(Request $request, EntityManagerInterface $entityManager, UserService $userService)
public function createAgentRecord(Request $request, ContainerInterface $container, EntityManagerInterface $entityManager, UserService $userService)
{
$params = $request->request->all();
$params = $request->request->all()? : json_decode($request->getContent(),true);

foreach ($params as $key => $value) {
if (!in_array($key, ['email', 'user_form', 'firstName', 'lastName','contactNumber','isActive','signature','designation','role','ticketView','userSubGroup','groups','agentPrivilege'])) {
unset($params[$key]);
}
}

if (empty($params['email']) || empty($params['firstName']) || empty($params['groups']) || empty($params['role'])) {
$json['error'] = $container->get('translator')->trans('required fields: email,firstName,lastName,groups and role.');

return new JsonResponse($json, Response::HTTP_BAD_REQUEST);
}

$agentRecord = new User();
$user = $entityManager->getRepository(User::class)->findOneByEmail($params['email']);
$agentInstance = !empty($user) ? $user->getAgentInstance() : null;
Expand All @@ -97,14 +110,13 @@ public function createAgentRecord(Request $request, EntityManagerInterface $enti
]);
}

$formDetails = $request->request->get('user_form');
$uploadedFiles = $request->files->get('user_form');

// Profile upload validation
$validMimeType = ['image/jpeg', 'image/png', 'image/jpg'];

if (isset( $uploadedFiles)) {
if (!in_array($uploadedFiles->getMimeType(), $validMimeType)){
if (isset($uploadedFiles)) {
if (!in_array($uploadedFiles->getMimeType(), $validMimeType)) {
return new JsonResponse([
'success' => false,
'message' => 'Profile image is not valid, please upload a valid format',
Expand All @@ -115,13 +127,13 @@ public function createAgentRecord(Request $request, EntityManagerInterface $enti
$fullname = trim(implode(' ', [$params['firstName'], $params['lastName']]));
$supportRole = $entityManager->getRepository(SupportRole::class)->findOneByCode($params['role']);

$user = $userService->createUserInstance($request->request->get('email'), $fullname, $supportRole, [
'contact' => $params['contactNumber'],
'source' => 'website',
'active' => !empty($params['isActive']) ? true : false,
'image' => $uploadedFiles ? $uploadedFiles : null ,
'signature' => $params['signature'],
'designation' =>$params['designation']
$user = $userService->createUserInstance($params['email'], $fullname, $supportRole, [
'contact' => $params['contactNumber'],
'source' => 'website',
'active' => !empty($params['isActive']) ? true : false,
'image' => $uploadedFiles ? $uploadedFiles : null ,
'signature' => $params['signature'],
'designation' => $params['designation']
]);

if (!empty($user)) {
Expand Down Expand Up @@ -184,9 +196,21 @@ public function createAgentRecord(Request $request, EntityManagerInterface $enti
]);
}

public function updateAgentRecord($id, Request $request, UVDeskService $uvdeskService, UserPasswordEncoderInterface $passwordEncoder, FileSystem $fileSystem, EventDispatcherInterface $eventDispatcher)
public function updateAgentRecord($id, Request $request, UVDeskService $uvdeskService, ContainerInterface $container, UserPasswordEncoderInterface $passwordEncoder, FileSystem $fileSystem, EventDispatcherInterface $eventDispatcher)
{
$params = $request->request->all();
$params = $request->request->all()? : json_decode($request->getContent(),true);

foreach ($params as $key => $value) {
if (!in_array($key, ['email', 'user_form', 'firstName', 'lastName','contactNumber','isActive','signature','designation','role','ticketView','userSubGroup','groups','agentPrivilege'])) {
unset($params[$key]);
}
}

if (empty($params['email']) || empty($params['firstName']) || empty($params['groups']) || empty($params['role'])) {
$json['error'] = $container->get('translator')->trans('required fields: email,firstName,lastName,groups and role.');
return new JsonResponse($json, Response::HTTP_BAD_REQUEST);
}

$dataFiles = $request->files->get('user_form');
$em = $this->getDoctrine()->getManager();
$user = $em->getRepository(User::class)->find($id);
Expand All @@ -196,17 +220,17 @@ public function updateAgentRecord($id, Request $request, UVDeskService $uvdeskSe
return new JsonResponse([
'success' => false,
'message' => 'Agent not found.',
],404);
], 404);
}

// Agent Profile upload validation
$validMimeType = ['image/jpeg', 'image/png', 'image/jpg'];
if(isset($dataFiles)){
if(!in_array($dataFiles->getMimeType(), $validMimeType)){
if (isset($dataFiles)) {
if (!in_array($dataFiles->getMimeType(), $validMimeType)){
return new JsonResponse([
'success' => false,
'message' => 'Profile image is not valid, please upload a valid format.',
],404);
], 404);
}
}

Expand All @@ -221,14 +245,14 @@ public function updateAgentRecord($id, Request $request, UVDeskService $uvdeskSe
if (
isset($params['password']['first']) && !empty(trim($params['password']['first']))
&& isset($params['password']['second']) && !empty(trim($params['password']['second']))) {
if(trim($params['password']['first']) == trim($params['password']['second'])){
if (trim($params['password']['first']) == trim($params['password']['second'])){
$encodedPassword = $passwordEncoder->encodePassword($user, $params['password']['first']);
$user->setPassword($encodedPassword);
} else {
return new JsonResponse([
'success' => false,
'message' => 'Both password does not match together.',
],404);
], 404);
}
}

Expand All @@ -242,7 +266,7 @@ public function updateAgentRecord($id, Request $request, UVDeskService $uvdeskSe
$oldSupportGroup = ($supportGroupList = $userInstance != null ? $userInstance->getSupportGroups() : null) ? $supportGroupList->toArray() : [];
$oldSupportedPrivilege = ($supportPrivilegeList = $userInstance != null ? $userInstance->getSupportPrivileges() : null)? $supportPrivilegeList->toArray() : [];

if(isset($params['role'])) {
if (isset($params['role'])) {
$role = $em->getRepository(SupportRole::class)->findOneBy(array('code' => $params['role']));
$userInstance->setSupportRole($role);
}
Expand Down Expand Up @@ -271,21 +295,21 @@ public function updateAgentRecord($id, Request $request, UVDeskService $uvdeskSe
$userInstance->setSignature($params['signature']);
$userInstance->setIsActive(isset($params['isActive']) ? $params['isActive'] : 0);

//Team support to agent
if(isset($params['userSubGroup'])){
// Team support to agent
if (isset($params['userSubGroup'])) {
foreach ($params['userSubGroup'] as $userSubGroup) {
if($userSubGrp = $uvdeskService->getEntityManagerResult(
if ($userSubGrp = $uvdeskService->getEntityManagerResult(
SupportTeam::class,
'findOneBy', [
'id' => $userSubGroup
]
)
)
if(!$oldSupportTeam || !in_array($userSubGrp, $oldSupportTeam)){
$userInstance->addSupportTeam($userSubGrp);
))

if (! $oldSupportTeam || !in_array($userSubGrp, $oldSupportTeam)) {
$userInstance->addSupportTeam($userSubGrp);

}elseif($oldSupportTeam && ($key = array_search($userSubGrp, $oldSupportTeam)) !== false)
unset($oldSupportTeam[$key]);
} elseif ($oldSupportTeam && ($key = array_search($userSubGrp, $oldSupportTeam)) !== false)
unset($oldSupportTeam[$key]);
}

foreach ($oldSupportTeam as $removeteam) {
Expand All @@ -294,22 +318,21 @@ public function updateAgentRecord($id, Request $request, UVDeskService $uvdeskSe
}
}

//Group support
if(isset($params['groups'])){
//Group support
if (isset($params['groups'])) {
foreach ($params['groups'] as $userGroup) {
if($userGrp = $uvdeskService->getEntityManagerResult(
if ($userGrp = $uvdeskService->getEntityManagerResult(
SupportGroup::class,
'findOneBy', [
'id' => $userGroup
]
)
)
))

if(!$oldSupportGroup || !in_array($userGrp, $oldSupportGroup)){
$userInstance->addSupportGroup($userGrp);
if (!$oldSupportGroup || !in_array($userGrp, $oldSupportGroup)) {
$userInstance->addSupportGroup($userGrp);

}elseif($oldSupportGroup && ($key = array_search($userGrp, $oldSupportGroup)) !== false)
unset($oldSupportGroup[$key]);
} elseif ($oldSupportGroup && ($key = array_search($userGrp, $oldSupportGroup)) !== false)
unset($oldSupportGroup[$key]);
}

foreach ($oldSupportGroup as $removeGroup) {
Expand All @@ -318,22 +341,23 @@ public function updateAgentRecord($id, Request $request, UVDeskService $uvdeskSe
}
}

//Privilegs support
if(isset($params['agentPrivilege'])){
// Privilege support
if (isset($params['agentPrivilege'])){
foreach ($params['agentPrivilege'] as $supportPrivilege) {
if($supportPlg = $uvdeskService->getEntityManagerResult(
if ($supportPlg = $uvdeskService->getEntityManagerResult(
SupportPrivilege::class,
'findOneBy', [
'id' => $supportPrivilege
]
)
)
if(!$oldSupportedPrivilege || !in_array($supportPlg, $oldSupportedPrivilege)){
$userInstance->addSupportPrivilege($supportPlg);
))

}elseif($oldSupportedPrivilege && ($key = array_search($supportPlg, $oldSupportedPrivilege)) !== false)
unset($oldSupportedPrivilege[$key]);
if (! $oldSupportedPrivilege || !in_array($supportPlg, $oldSupportedPrivilege)){
$userInstance->addSupportPrivilege($supportPlg);

} elseif ($oldSupportedPrivilege && ($key = array_search($supportPlg, $oldSupportedPrivilege)) !== false)
unset($oldSupportedPrivilege[$key]);
}

foreach ($oldSupportedPrivilege as $removeGroup) {
$userInstance->removeSupportPrivilege($removeGroup);
$em->persist($userInstance);
Expand Down Expand Up @@ -363,16 +387,14 @@ public function updateAgentRecord($id, Request $request, UVDeskService $uvdeskSe
return new JsonResponse([
'success' => false,
'message' => 'User with same email is already exist.',
],404);
], 404);
}

}

public function deleteAgentRecord(Request $request, $agentId, EventDispatcherInterface $eventDispatcher, UserService $userService)
{
$entityManager = $this->getDoctrine()->getManager();
if ($agentId) {

$user = $entityManager->createQueryBuilder()
->select('u')
->from(User::class, 'u')
Expand All @@ -387,7 +409,7 @@ public function deleteAgentRecord(Request $request, $agentId, EventDispatcherInt
return new JsonResponse([
'success' => false,
'message' => 'Agent information not found.',
],404);
], 404);
}

if ($user->getAgentInstance()->getSupportRole()->getCode() != "ROLE_SUPER_ADMIN") {
Expand Down Expand Up @@ -417,8 +439,8 @@ public function deleteAgentRecord(Request $request, $agentId, EventDispatcherInt
return new JsonResponse([
'success' => false,
'message' => 'Authorization failed.',
],404);
], 404);
}
}
}
}
}
Loading

0 comments on commit a185ba1

Please sign in to comment.