import { Injectable } from '@angular/core'; import { environment } from '../../../../environments/environment'; import { HttpClient } from '@angular/common/http'; import { UserService } from '../common/user.service'; import { BasicDetail } from '../../models/preparer/basic-detail'; import { map, Observable } from 'rxjs'; import { PreparerFilter } from '../../models/preparer/preparer-filter'; @Injectable({ providedIn: 'root' }) export class ClientService { private apiUrl = environment.apiUrl; private apiDb = environment.apiDb; constructor(private http: HttpClient, private userService: UserService) { } getPreparers(filter: PreparerFilter): Observable { return this.http.get(`${this.apiUrl}/${this.apiDb}/GetPreparers/${this.userService.getUserSpid()}/ACTIVE?P_NAME=${filter.name}&P_LOOKUPCODE=${filter.lookupCode}&P_CITY=${filter.city}&P_STATE=${filter.state}`).pipe( map(response => this.mapToClients(response))); } private mapToClients(data: any[]): BasicDetail[] { return data.map(basicDetails => ({ clientid: basicDetails.CLIENTID, spid: basicDetails.SPID, name: basicDetails.PREPARERNAME, lookupCode: basicDetails.LOOKUPCODE, address1: basicDetails.ADDRESS1, address2: basicDetails.ADDRESS2, city: basicDetails.CITY, state: basicDetails.STATE, country: basicDetails.COUNTRY, carnetIssuingRegion: basicDetails.ISSUINGREGION, revenueLocation: basicDetails.REVENUELOCATION, zip: basicDetails.ZIP, // createdBy: basicDetails.CREATEDBY || null, // dateCreated: basicDetails.DATECREATED || null, // lastUpdatedBy: basicDetails.LASTUPDATEDBY || null, // lastUpdatedDate: basicDetails.LASTUPDATEDDATE || null, // isInactive: basicDetails.INACTIVEFLAG === 'Y' || false, // inactivatedDate: basicDetails.INACTIVEDATE || null })); } }