From b5b7bad5a7705905f68f8203dfe594499fc4dac1 Mon Sep 17 00:00:00 2001 From: Z3RO-O Date: Thu, 6 Mar 2025 10:38:30 +0530 Subject: [PATCH 1/6] feat: migrate /v2/spender_employees to platform --- src/app/core/models/employee-params.model.ts | 13 +- src/app/core/models/spender/employee.model.ts | 14 +-- src/app/core/services/org-user.service.ts | 12 +- src/app/fyle/help/help.page.ts | 16 +-- .../support-dialog/support-dialog.page.html | 4 +- .../approver-dialog.component.html | 6 +- .../approver-dialog.component.ts | 22 ++-- .../fy-userlist-modal.component.html | 10 +- .../fy-userlist-modal.component.ts | 111 ++++++++---------- 9 files changed, 97 insertions(+), 111 deletions(-) diff --git a/src/app/core/models/employee-params.model.ts b/src/app/core/models/employee-params.model.ts index 99b85e510f..b9d5ab3781 100644 --- a/src/app/core/models/employee-params.model.ts +++ b/src/app/core/models/employee-params.model.ts @@ -2,12 +2,13 @@ export interface EmployeeParams { or: string; and: string; select: string; - ou_org_id: string; - ou_roles: string; - ou_status: string; - ou_id: string; + org_id: string; + roles: string; + is_enabled: string; + has_accepted_invite: string; + id: string; order: string; limit: number; - us_email?: string; - us_id: string; + email?: string; + user_id: string; } diff --git a/src/app/core/models/spender/employee.model.ts b/src/app/core/models/spender/employee.model.ts index 2eb25c94bf..991751d70c 100644 --- a/src/app/core/models/spender/employee.model.ts +++ b/src/app/core/models/spender/employee.model.ts @@ -1,10 +1,10 @@ export interface Employee { - ou_id: string; - ou_org_id: string; - ou_roles: string; - ou_status: string; - us_email: string; - us_full_name: string; - us_id: string; + id: string; + roles: string; + is_enabled: boolean; + has_accepted_invite: boolean; + email: string; + full_name: string; + user_id: string; is_selected?: boolean; // used to show checkmarks while selecting employee } diff --git a/src/app/core/services/org-user.service.ts b/src/app/core/services/org-user.service.ts index 59b348ba7e..67e39c4916 100644 --- a/src/app/core/services/org-user.service.ts +++ b/src/app/core/services/org-user.service.ts @@ -9,7 +9,6 @@ import { ExtendedOrgUser } from '../models/extended-org-user.model'; import { OrgUser } from '../models/org-user.model'; import { Employee } from '../models/spender/employee.model'; import { User } from '../models/user.model'; -import { ApiV2Service } from './api-v2.service'; import { ApiService } from './api.service'; import { AuthService } from './auth.service'; import { DataTransformService } from './data-transform.service'; @@ -34,7 +33,6 @@ export class OrgUserService { private authService: AuthService, private dataTransformService: DataTransformService, private trackingService: TrackingService, - private apiV2Service: ApiV2Service, private spenderPlatformV1ApiService: SpenderPlatformV1ApiService ) {} @@ -46,8 +44,8 @@ export class OrgUserService { @Cacheable({ cacheBusterObserver: orgUsersCacheBuster$, }) - getEmployeesByParams(params: Partial) { - return this.apiV2Service.get, {}>('/spender_employees', { params }); + getEmployeesByParams(params: Partial): Observable[]>> { + return this.spenderPlatformV1ApiService.get[]>>('/employees', { params }); } @CacheBuster({ @@ -91,9 +89,9 @@ export class OrgUserService { getEmployeesBySearch(params: Partial): Observable[]> { if (params.or) { - params.and = `(or${params.or},or(ou_status.like.*"ACTIVE",ou_status.like.*"PENDING_DETAILS"))`; + params.and = `(or${params.or},or(is_enabled.eq.true))`; } else { - params.or = '(ou_status.like.*"ACTIVE",ou_status.like.*"PENDING_DETAILS")'; + params.or = '(is_enabled.eq.true)'; } return this.getEmployeesByParams({ ...params, @@ -105,7 +103,7 @@ export class OrgUserService { } excludeByStatus(eous: ExtendedOrgUser[], status: string): ExtendedOrgUser[] { - let eousFiltered = []; + let eousFiltered: ExtendedOrgUser[] = []; if (eous) { eousFiltered = eous.filter((eou) => status.indexOf(eou.ou.status) === -1); } diff --git a/src/app/fyle/help/help.page.ts b/src/app/fyle/help/help.page.ts index 38c0453592..a0cadb191d 100644 --- a/src/app/fyle/help/help.page.ts +++ b/src/app/fyle/help/help.page.ts @@ -8,8 +8,8 @@ import { from } from 'rxjs'; import { TrackingService } from '../../core/services/tracking.service'; import { AuthService } from 'src/app/core/services/auth.service'; import { BrowserHandlerService } from 'src/app/core/services/browser-handler.service'; -import { ApiV2Response } from 'src/app/core/models/v2/api-v2-response.model'; import { Employee } from 'src/app/core/models/spender/employee.model'; +import { PlatformApiResponse } from 'src/app/core/models/platform/platform-api-response.model'; @Component({ selector: 'app-help', @@ -17,7 +17,7 @@ import { Employee } from 'src/app/core/models/spender/employee.model'; styleUrls: ['./help.page.scss'], }) export class HelpPage implements OnInit { - orgAdmins: Partial>>; + orgAdmins: PlatformApiResponse[]>; contactSupportLoading = false; @@ -37,12 +37,12 @@ export class HelpPage implements OnInit { switchMap(() => from(this.authService.getEou())), switchMap((eou) => this.orgUserService.getEmployeesByParams({ - select: 'us_full_name,us_email', - ou_org_id: 'eq.' + eou.ou.org_id, - ou_roles: 'like.%' + 'ADMIN%', - ou_status: 'eq.' + '"ACTIVE"', - ou_id: 'not.eq.' + eou.ou.id, - order: 'us_full_name.asc,ou_id', + select: '(full_name,email)', + roles: 'like.%' + 'ADMIN%', + is_enabled: 'eq.true', + has_accepted_invite: 'eq.true', + id: 'neq.' + eou.ou.id, + order: 'full_name.asc,id.asc', limit: 5, }) ), diff --git a/src/app/fyle/help/support-dialog/support-dialog.page.html b/src/app/fyle/help/support-dialog/support-dialog.page.html index 6aeeb47f1a..cf22f3a432 100644 --- a/src/app/fyle/help/support-dialog/support-dialog.page.html +++ b/src/app/fyle/help/support-dialog/support-dialog.page.html @@ -20,8 +20,8 @@
-
{{ admin.us_full_name }}
- {{ admin.us_email }} +
{{ admin.full_name }}
+ {{ admin.email }}
diff --git a/src/app/shared/components/fy-approver/add-approvers-popover/approver-dialog/approver-dialog.component.html b/src/app/shared/components/fy-approver/add-approvers-popover/approver-dialog/approver-dialog.component.html index 03fd6e2990..a0d7e940f4 100644 --- a/src/app/shared/components/fy-approver/add-approvers-popover/approver-dialog/approver-dialog.component.html +++ b/src/app/shared/components/fy-approver/add-approvers-popover/approver-dialog/approver-dialog.component.html @@ -60,12 +60,12 @@
diff --git a/src/app/shared/components/fy-approver/add-approvers-popover/approver-dialog/approver-dialog.component.ts b/src/app/shared/components/fy-approver/add-approvers-popover/approver-dialog/approver-dialog.component.ts index 0670f6bd9d..5a3acf8b95 100644 --- a/src/app/shared/components/fy-approver/add-approvers-popover/approver-dialog/approver-dialog.component.ts +++ b/src/app/shared/components/fy-approver/add-approvers-popover/approver-dialog/approver-dialog.component.ts @@ -95,10 +95,10 @@ export class ApproverDialogComponent implements AfterViewInit, OnInit { onSelectApprover(approver: Employee, event: { checked: boolean }): void { if (event.checked) { - this.selectedApproversList.push({ name: approver.us_full_name, email: approver.us_email }); + this.selectedApproversList.push({ name: approver.full_name, email: approver.email }); } else { this.selectedApproversList = this.selectedApproversList.filter( - (selectedApprover) => selectedApprover.email !== approver.us_email + (selectedApprover) => selectedApprover.email !== approver.email ); } this.areApproversAdded = this.selectedApproversList.length === 0; @@ -115,11 +115,11 @@ export class ApproverDialogComponent implements AfterViewInit, OnInit { getDefaultUsersList(): Observable[]> { const params: Partial = { - order: 'us_full_name.asc,us_email.asc,ou_id', + order: 'full_name.asc,email.asc,id.asc', }; if (this.approverEmailsList.length > 0) { - params.us_email = `in.(${this.approverEmailsList.join(',')})`; + params.email = `in.(${this.approverEmailsList.join(',')})`; } else { params.limit = 20; } @@ -140,22 +140,22 @@ export class ApproverDialogComponent implements AfterViewInit, OnInit { getSearchedUsersList(searchText?: string): Observable[]> { const params: Partial = { limit: 20, - order: 'us_full_name.asc,us_email.asc,ou_id', + order: 'full_name.asc,email.asc,id.asc', }; if (searchText) { - params.or = `(us_email.ilike.*${searchText}*,us_full_name.ilike.*${searchText}*)`; + params.or = `(email.ilike.*${searchText}*,full_name.ilike.*${searchText}*)`; } return this.orgUserService.getEmployeesBySearch(params).pipe( - map((eouc) => eouc.filter((eou) => this.approverEmailsList.indexOf(eou.us_email) === -1)), + map((eouc) => eouc.filter((eou) => this.approverEmailsList.indexOf(eou.email) === -1)), map((eouc) => eouc .map((eou) => { - eou.is_selected = this.approverEmailsList.indexOf(eou.us_email) > -1; + eou.is_selected = this.approverEmailsList.indexOf(eou.email) > -1; return eou; }) - .filter((employee) => employee.us_email !== this.ownerEmail) + .filter((employee) => employee.email !== this.ownerEmail) ) ); } @@ -166,7 +166,7 @@ export class ApproverDialogComponent implements AfterViewInit, OnInit { } else { return this.getDefaultUsersList().pipe( switchMap((employees) => { - employees = employees.filter((employee) => this.approverEmailsList.indexOf(employee.us_email) === -1); + employees = employees.filter((employee) => this.approverEmailsList.indexOf(employee.email) === -1); return this.getSearchedUsersList(null).pipe( map((searchedEmployees: Partial[]) => { searchedEmployees = this.getSearchedEmployees(searchedEmployees, employees); @@ -180,7 +180,7 @@ export class ApproverDialogComponent implements AfterViewInit, OnInit { getSearchedEmployees(searchedEmployees: Partial[], employees: Partial[]): Partial[] { searchedEmployees = searchedEmployees.filter( - (searchedEmployee) => !employees.find((employee) => employee.us_email === searchedEmployee.us_email) + (searchedEmployee) => !employees.find((employee) => employee.email === searchedEmployee.email) ); return searchedEmployees; } diff --git a/src/app/shared/components/fy-userlist/fy-userlist-modal/fy-userlist-modal.component.html b/src/app/shared/components/fy-userlist/fy-userlist-modal/fy-userlist-modal.component.html index 6943c6f1c1..7dbe594fa9 100644 --- a/src/app/shared/components/fy-userlist/fy-userlist-modal/fy-userlist-modal.component.html +++ b/src/app/shared/components/fy-userlist/fy-userlist-modal/fy-userlist-modal.component.html @@ -73,11 +73,11 @@