import { HttpClient } from '@angular/common/http'; import { Injectable } from '@angular/core'; import { UserService } from '../common/user.service'; import { environment } from '../../../../environments/environment'; import { HolderDetail, HolderDetailFormType } from '../../models/holder/holder-detail'; import { filter, map, Observable, of, tap } from 'rxjs'; @Injectable({ providedIn: 'root' }) export class HolderDetailService { private apiUrl = environment.apiUrl; private apiDb = environment.apiDb; constructor(private http: HttpClient, private userService: UserService) { } getHolderDetailByHolderId(id: number): Observable { return this.http.get(`${this.apiUrl}/${this.apiDb}/GetHolderRecord/${this.userService.getUserSpid()}/${id}`).pipe( tap(response => console.log('Raw response got is :', response)), // filter(response => response.length > 0), map(response => this.mapToBasicDetail(response))); } private mapToBasicDetail(basicDetails: any): HolderDetail { return { HOLDERID: basicDetails.HOLDERID, SPID: basicDetails.SPID, LOCATIONID: basicDetails.LOCATIONID, HOLDERNO: basicDetails.HOLDERNO, HOLDERTYPE: basicDetails.HOLDERTYPE, USCIBMEMBERFLAG: basicDetails.USCIBMEMBERFLAG, GOVAGENCYFLAG: basicDetails.GOVAGENCYFLAG, HOLDERNAME: basicDetails.HOLDERNAME, NAMEQUALIFIER: basicDetails.NAMEQUALIFIER || null, ADDLNAME: basicDetails.ADDLNAME || null, ADDRESS1: basicDetails.ADDRESS1, ADDRESS2: basicDetails.ADDRESS2 || null, CITY: basicDetails.CITY, STATE: basicDetails.STATE, ZIP: basicDetails.ZIP, COUNTRY: basicDetails.COUNTRY, DATECREATED: basicDetails.DATECREATED, CREATEDBY: basicDetails.CREATEDBY, INACTIVEFLAG: basicDetails.INACTIVEFLAG, INACTIVEDATE: basicDetails.INACTIVEDATE || null, LASTUPDATEDBY: basicDetails.LASTUPDATEDBY || null, LASTUPDATEDDATE: basicDetails.LASTUPDATEDDATE || null }; } createHolderDetail(data: HolderDetailFormType): Observable { const holderDetail = { P_SPID: this.userService.getUserSpid(), P_CLIENTLOCATIONID: this.userService.getUserLocationid(), P_HOLDERNO: data.HolderNumber, P_HOLDERTYPE: data.holderType, P_USCIBMEMBERFLAG: data.USCIBMember, P_GOVAGENCYFLAG: data.govAgency, P_HOLDERNAME: data.holderName, P_NAMEQUALIFIER: null, P_ADDLNAME: data.DBAName, P_ADDRESS1: data.address1, P_ADDRESS2: data.address2, P_CITY: data.city, P_STATE: data.state, P_ZIP: data.zip, P_COUNTRY: data.country, P_USERID: this.userService.getUser() }; console.log("body : ",holderDetail); return this.http.post(`${this.apiUrl}/${this.apiDb}/CreateHolderData`, holderDetail); } updateHolderDetails(id: number, data: HolderDetailFormType): Observable { const holderDetail = { P_HOLDERID: id, P_SPID: this.userService.getUserSpid(), P_LOCATIONID: this.userService.getUserLocationid(), P_HOLDERNO: data.HolderNumber, P_HOLDERTYPE: data.holderType, P_USCIBMEMBERFLAG: data.USCIBMember, P_GOVAGENCYFLAG: data.govAgency, P_HOLDERNAME: data.holderName, P_NAMEQUALIFIER: null, P_ADDLNAME: data.DBAName, P_ADDRESS1: data.address1, P_ADDRESS2: data.address2, P_CITY: data.city, P_STATE: data.state, P_ZIP: data.zip, P_COUNTRY: data.country, P_USERID: this.userService.getUser() }; return this.http.put(`${this.apiUrl}/${this.apiDb}/UpdateHolder`, holderDetail); } }