import { Injectable } from '@angular/core'; import { UserService } from '../common/user.service'; import { HttpClient } from '@angular/common/http'; import { environment } from '../../../../environments/environment'; import { map, Observable, of } from 'rxjs'; import { Contact } from '../../models/preparer/contact'; @Injectable({ providedIn: 'root' }) export class ContactService { private apiUrl = environment.apiUrl; private apiDb = environment.apiDb; constructor(private http: HttpClient, private userService: UserService) { } getContactsById(id: number): Observable { return this.http.get(`${this.apiUrl}/${this.apiDb}/GetPreparerContactsByClientid/${this.userService.getUserSpid()}/${id}`).pipe( map(response => this.mapToContacts(response))); } private mapToContacts(data: any[]): Contact[] { return data.map(contact => ({ clientContactId: contact.CLIENTCONTACTID, spid: contact.SPID, clientid: contact.CLIENTID, defaultContact: contact.DEFCONTACTFLAG === 'Y', firstName: contact.FIRSTNAME, lastName: contact.LASTNAME, title: contact.TITLE, phone: contact.PHONENO, mobile: contact.MOBILENO, fax: contact.FAXNO || null, email: contact.EMAILADDRESS, middleInitial: contact.MIDDLEINITIAL || null, createdBy: contact.CREATEDBY || null, dateCreated: contact.DATECREATED || null, lastUpdatedBy: contact.LASTUPDATEDBY || null, lastUpdatedDate: contact.LASTUPDATEDDATE || null, isInactive: contact.INACTIVEFLAG === 'Y' || false, inactivatedDate: contact.INACTIVEDATE || null })); } createContact(clientid: number, data: Contact): Observable { const contact = { P_SPID: this.userService.getUserSpid(), P_CLIENTID: clientid, P_DEFCONTACTFLAG: data.defaultContact ? 'Y' : 'N', P_CONTACTSTABLE: [{ P_FIRSTNAME: data.firstName, P_LASTNAME: data.lastName, P_MIDDLEINITIAL: data.middleInitial, P_TITLE: data.title, P_EMAILADDRESS: data.email, P_MOBILENO: data.mobile, P_PHONENO: data.phone, P_FAXNO: data.fax }], P_USERID: this.userService.getUser() } return this.http.post(`${this.apiUrl}/${this.apiDb}/CreateClientContacts`, contact); } updateContact(spContactId: number, data: Contact): Observable { const contact = { P_SPID: this.userService.getUserSpid(), P_CLIENTCONTACTID: spContactId, P_FIRSTNAME: data.firstName, P_LASTNAME: data.lastName, P_MIDDLEINITIAL: data.middleInitial, P_TITLE: data.title, P_EMAILADDRESS: data.email, P_MOBILENO: data.mobile, P_PHONENO: data.phone, P_FAXNO: data.fax, P_USERID: this.userService.getUser() } return this.http.put(`${this.apiUrl}/${this.apiDb}/UpdateClientContacts`, contact); } // deleteContact(clientContactId: string): Observable { // return this.http.post(`${this.apiUrl}/${this.apiDb}/InactivateSPContact?p_clientcontactid=${clientContactId}`, null); // } }