import { HttpClient } from '@angular/common/http'; import { inject, Injectable } from '@angular/core'; import { UserService } from '../common/user.service'; import { environment } from '../../../../environments/environment'; import { map, Observable, } from 'rxjs'; import { BasicDetail } from '../../models/holder/basic-detail'; @Injectable({ providedIn: 'root' }) export class BasicDetailService { private apiUrl = environment.apiUrl; private apiDb = environment.apiDb; private http = inject(HttpClient); private userService = inject(UserService); getBasicDetailByHolderId(id: number): Observable { return this.http.get(`${this.apiUrl}/${this.apiDb}/GetHolderRecord/${this.userService.getUserSpid()}/${id}`).pipe( map(response => this.mapToBasicDetail(response))); } private mapToBasicDetail(basicDetails: any): BasicDetail { return { holderid: basicDetails.HOLDERID, spid: basicDetails.SPID, locationid: basicDetails.LOCATIONID, holderNumber: basicDetails.HOLDERNO, holderType: basicDetails.HOLDERTYPE, uscibMember: basicDetails.USCIBMEMBERFLAG === 'Y', govAgency: basicDetails.GOVAGENCYFLAG === 'Y', holderName: basicDetails.HOLDERNAME, //NAMEQUALIFIER: basicDetails.NAMEQUALIFIER || null, dbaName: basicDetails.ADDLNAME || null, address1: basicDetails.ADDRESS1, address2: basicDetails.ADDRESS2 || null, city: basicDetails.CITY, state: basicDetails.STATE, zip: basicDetails.ZIP, country: basicDetails.COUNTRY }; } createBasicDetail(data: BasicDetail): Observable { const basicDetail = { P_SPID: this.userService.getUserSpid(), P_CLIENTLOCATIONID: this.userService.getUserLocationid(), P_HOLDERNO: data.holderNumber, P_HOLDERTYPE: data.holderType, P_USCIBMEMBERFLAG: data.uscibMember ? 'Y' : 'N', P_GOVAGENCYFLAG: data.govAgency ? 'Y' : 'N', 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.post(`${this.apiUrl}/${this.apiDb}/CreateHolderData`, basicDetail); } updateBasicDetails(id: number, data: BasicDetail): Observable { const basicDetail = { 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 ? 'Y' : 'N', P_GOVAGENCYFLAG: data.govAgency ? 'Y' : 'N', 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`, basicDetail); } }