{ "version": 3, "sources": ["apps/vendor-center-client/src/app/core/contact.api.service.ts"], "sourcesContent": ["import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { SessionService } from '@galaxy/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { PartnerContact } from '../features/contact/partner-contact/interface';\n\ninterface AjaxContact {\n vendor_contact_emails: string[];\n partner_in_tier_that_can_be_contacted: boolean;\n partner_id: string;\n}\n\n@Injectable()\nexport class ContactApiService {\n constructor(\n private http: HttpClient,\n private sessionService: SessionService,\n @Inject('DeveloperCentralAPIHost') private domainUrl: string,\n ) {}\n\n getContact(partnerId: string): Observable {\n const route = `/ajax/contact/get`;\n return this.http\n .get(route, {\n withCredentials: true,\n params: new HttpParams().set('partner_id', partnerId),\n })\n .pipe(\n map((data: AjaxContact[]) => {\n // note: i made the return data an array so we can support getting multiple partners for the table\n return this.extractPartnerContactData(data[0]);\n }),\n );\n }\n\n getContacts(partnerIds: string[]): Observable {\n const route = `/ajax/contact/getmulti`;\n let params = new HttpParams();\n partnerIds.forEach((id) => {\n params = params.append('partner_ids', id);\n });\n return this.http\n .get(route, {\n withCredentials: true,\n params: params,\n })\n .pipe(\n map((data: AjaxContact[]) => {\n const contacts = [];\n data.forEach((contact) => contacts.push(this.extractPartnerContactData(contact)));\n return contacts;\n }),\n );\n }\n\n extractPartnerContactData(data: AjaxContact): PartnerContact {\n return {\n recipientEmails: data.vendor_contact_emails,\n canContact: data.partner_in_tier_that_can_be_contacted,\n partnerId: data.partner_id,\n };\n }\n\n messageContact(\n appId: string,\n partnerId: string,\n partnerName: string,\n appName: string,\n firstName: string,\n lastName: string,\n email: string,\n recipients: string[],\n message?: string,\n ): Observable {\n const route = `/ajax/contact/interest`;\n let params = new HttpParams();\n recipients.forEach((e) => {\n params = params.append('recipient_emails', e);\n });\n params = params.set('partner_id', partnerId);\n params = params.set('partner_name', partnerName);\n\n params = params.set('message', message);\n params = params.set('app_name', appName);\n params = params.set('app_id', appId);\n\n params = params.set('first_name', firstName);\n params = params.set('last_name', lastName);\n params = params.set('email', email);\n return this.http.post(\n route,\n {},\n {\n params: params,\n withCredentials: true,\n },\n );\n }\n}\n"], "mappings": "gJAcA,IAAaA,GAAiB,IAAA,CAAxB,IAAOA,EAAP,MAAOA,CAAiB,CAC5BC,YACUC,EACAC,EACmCC,EAAiB,CAFpD,KAAAF,KAAAA,EACA,KAAAC,eAAAA,EACmC,KAAAC,UAAAA,CAC1C,CAEHC,WAAWC,EAAiB,CAE1B,OAAO,KAAKJ,KACTK,IAFW,oBAEe,CACzBC,gBAAiB,GACjBC,OAAQ,IAAIC,EAAU,EAAGC,IAAI,aAAcL,CAAS,EACrD,EACAM,KACCC,EAAKC,GAEI,KAAKC,0BAA0BD,EAAK,CAAC,CAAC,CAC9C,CAAC,CAER,CAEAE,YAAYC,EAAoB,CAC9B,IAAMC,EAAQ,yBACVT,EAAS,IAAIC,EACjBO,OAAAA,EAAWE,QAASC,GAAM,CACxBX,EAASA,EAAOY,OAAO,cAAeD,CAAE,CAC1C,CAAC,EACM,KAAKlB,KACTK,IAAmBW,EAAO,CACzBV,gBAAiB,GACjBC,OAAQA,EACT,EACAG,KACCC,EAAKC,GAAuB,CAC1B,IAAMQ,EAAW,CAAA,EACjBR,OAAAA,EAAKK,QAASI,GAAYD,EAASE,KAAK,KAAKT,0BAA0BQ,CAAO,CAAC,CAAC,EACzED,CACT,CAAC,CAAC,CAER,CAEAP,0BAA0BD,EAAiB,CACzC,MAAO,CACLW,gBAAiBX,EAAKY,sBACtBC,WAAYb,EAAKc,sCACjBtB,UAAWQ,EAAKe,WAEpB,CAEAC,eACEC,EACAzB,EACA0B,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAAgB,CAEhB,IAAMpB,EAAQ,yBACVT,EAAS,IAAIC,EACjB2B,OAAAA,EAAWlB,QAASoB,GAAK,CACvB9B,EAASA,EAAOY,OAAO,mBAAoBkB,CAAC,CAC9C,CAAC,EACD9B,EAASA,EAAOE,IAAI,aAAcL,CAAS,EAC3CG,EAASA,EAAOE,IAAI,eAAgBqB,CAAW,EAE/CvB,EAASA,EAAOE,IAAI,UAAW2B,CAAO,EACtC7B,EAASA,EAAOE,IAAI,WAAYsB,CAAO,EACvCxB,EAASA,EAAOE,IAAI,SAAUoB,CAAK,EAEnCtB,EAASA,EAAOE,IAAI,aAAcuB,CAAS,EAC3CzB,EAASA,EAAOE,IAAI,YAAawB,CAAQ,EACzC1B,EAASA,EAAOE,IAAI,QAASyB,CAAK,EAC3B,KAAKlC,KAAKsC,KACftB,EACA,CAAA,EACA,CACET,OAAQA,EACRD,gBAAiB,GAClB,CAEL,yCApFWR,GAAiByC,EAAAC,CAAA,EAAAD,EAAAE,CAAA,EAAAF,EAIlB,yBAAyB,CAAA,CAAA,wBAJxBzC,EAAiB4C,QAAjB5C,EAAiB6C,SAAA,CAAA,EAAxB,IAAO7C,EAAP8C,SAAO9C,CAAiB,GAAA", "names": ["ContactApiService", "constructor", "http", "sessionService", "domainUrl", "getContact", "partnerId", "get", "withCredentials", "params", "HttpParams", "set", "pipe", "map", "data", "extractPartnerContactData", "getContacts", "partnerIds", "route", "forEach", "id", "append", "contacts", "contact", "push", "recipientEmails", "vendor_contact_emails", "canContact", "partner_in_tier_that_can_be_contacted", "partner_id", "messageContact", "appId", "partnerName", "appName", "firstName", "lastName", "email", "recipients", "message", "e", "post", "\u0275\u0275inject", "HttpClient", "SessionService", "factory", "\u0275fac", "_ContactApiService"] }