{ "version": 3, "sources": ["src/app/profile-module/profile-data.service.ts"], "sourcesContent": ["import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { tap } from 'rxjs/operators';\r\nimport { environment } from 'src/environments/environment';\r\nimport { BaseDataService } from '../main/service/base-data.service';\r\nimport { CacheService } from '../main/service/cache.service';\r\nimport { MelissaVerifiedAddress, MfaCommunicationChannels, Profile, ProfileAddress, ProfileEmail, ProfilePhone } from './profile.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProfileDataService extends BaseDataService {\r\n constructor(httpClient: HttpClient, cache: CacheService) {\r\n super(httpClient, cache);\r\n }\r\n\r\n // Profile edit page\r\n\r\n getProfile(refresh?: boolean): Observable {\r\n return this.getData('Profile', 'api/profile?api=2', null, refresh);\r\n }\r\n\r\n getMfaCommunicationChannels(): Observable {\r\n const url = `${environment.apiEndpoint}api/profile/mfa-channels?api=2`;\r\n return this.httpClient.get(url);\r\n }\r\n\r\n setPreferredAddress(clientAddressId: number, brwrAddressId: number): Observable {\r\n const url = `${environment.apiEndpoint}api/profile/preferred-address?api=2`;\r\n return this.httpClient.post(url, { clientAddressId, brwrAddressId });\r\n }\r\n\r\n setPreferredPhone(clientPhoneId: number, brwrPhoneId: number): Observable {\r\n const url = `${environment.apiEndpoint}api/profile/preferred-phone?api=2`;\r\n return this.httpClient.post(url, { clientPhoneId, brwrPhoneId });\r\n }\r\n\r\n setPreferredEmail(clientEmailId: number, brwrEmailId: number): Observable {\r\n const url = `${environment.apiEndpoint}api/profile/preferred-email?api=2`;\r\n return this.httpClient.post(url, { clientEmailId, brwrEmailId });\r\n }\r\n\r\n setAllowTextMessages(clientPhoneId: number, brwrPhoneId: number, allowTextMessages: boolean): Observable {\r\n const url = `${environment.apiEndpoint}api/profile/allow-text-messages?api=2`;\r\n return this.httpClient.post(url, { clientPhoneId, brwrPhoneId, allowTextMessages });\r\n }\r\n\r\n deleteAddress(clientAddressId: number, brwrAddressId: number, reason: string): Observable {\r\n const url = `${environment.apiEndpoint}api/profile-address?clientAddressId=${clientAddressId || ''}&brwrAddressId=${brwrAddressId || ''}&reason=${reason || ''}&api=2`;\r\n return this.httpClient.delete(url);\r\n }\r\n\r\n deletePhone(clientPhoneId: number, brwrPhoneId: number, reason: string): Observable {\r\n const url = `${environment.apiEndpoint}api/profile-phone?clientPhoneId=${clientPhoneId || ''}&brwrPhoneId=${brwrPhoneId || ''}&reason=${reason || ''}&api=2`;\r\n return this.httpClient.delete(url);\r\n }\r\n\r\n deleteEmail(clientEmailId: number, brwrEmailId: number, reason: string): Observable {\r\n const url = `${environment.apiEndpoint}api/profile-email?clientEmailId=${clientEmailId || ''}&brwrEmailId=${brwrEmailId || ''}&reason=${reason || ''}&api=2`;\r\n return this.httpClient.delete(url);\r\n }\r\n\r\n savePhone(brwrPhoneId: number, phoneNumber: string, brwrPhoneTypeId: number, preferred: boolean): Observable {\r\n const url = `${environment.apiEndpoint}api/profile-phone?api=2`;\r\n return this.httpClient.post(url, { brwrPhoneId, phoneNumber, brwrPhoneTypeId, preferred });\r\n }\r\n\r\n // profile email\r\n saveLoginEmail(emailAddress: string): Observable {\r\n const url = `${environment.apiEndpoint}api/login-email?api=2`;\r\n return this.httpClient.post(url, { emailAddress });\r\n }\r\n\r\n saveEmail(emailAddress: string, brwrEmailTypeId: number, preferred: boolean): Observable {\r\n const url = `${environment.apiEndpoint}api/profile-email?api=2`;\r\n return this.httpClient.post(url, { emailAddress, brwrEmailTypeId, preferred });\r\n }\r\n\r\n getEmailStatus(clientEmailId: number, brwrEmailId: number): Observable {\r\n const url = `${environment.apiEndpoint}api/profile-email-status?clientEmailId=${clientEmailId || ''}&brwrEmailId=${brwrEmailId || ''}&api=2`;\r\n return this.httpClient.get(url);\r\n }\r\n\r\n verifyEmailCode(emailAddress: string, code: string): Observable {\r\n const url = `${environment.apiEndpoint}api/profile-email-verify-code?api=2`;\r\n return this.httpClient.post(url, { emailAddress, code });\r\n }\r\n\r\n changeLoginEmail(emailAddress: string): Observable {\r\n const url = `${environment.apiEndpoint}api/login-email?api=2`;\r\n return this.httpClient.put(url, { emailAddress })\r\n .pipe(tap(res => this.updateLoginCache(emailAddress)));\r\n }\r\n\r\n // profile address\r\n saveAddress(addressLine1: string, addressLine2: string, city: string, state: string, zip: string, preferred: boolean) {\r\n const url = `${environment.apiEndpoint}api/profile-address?api=2`;\r\n return this.httpClient.post(url, { addressLine1, addressLine2, city, state, zip, preferred });\r\n }\r\n\r\n verifyAddress(addressLine1: string, addressLine2: string, city: string, state: string, zip: string) {\r\n const url = `${environment.apiEndpoint}api/verify-address?api=2`;\r\n return this.httpClient.post(url, { addressLine1, addressLine2, city, state, zip });\r\n }\r\n\r\n activateAddress(melissaVerifiedAddressId: number, preferred: boolean) {\r\n const url = `${environment.apiEndpoint}api/activate-address?api=2`;\r\n return this.httpClient.post(url, { melissaVerifiedAddressId, preferred });\r\n }\r\n\r\n // security\r\n setMfaStatus(isMfaEnabled: boolean): Observable {\r\n const url = `${environment.apiEndpoint}api/profile/mfa-opt-in?api=2`;\r\n return this.httpClient.put(url, { isMfaEnabled });\r\n }\r\n\r\n sendVerificationCode(channelType: string, channelId: string): Observable {\r\n const url = `${environment.apiEndpoint}api/profile/send-mfa-code?api=2`;\r\n return this.httpClient.post(url, { channelType, channelId });\r\n }\r\n\r\n verifyCode(channelType: string, channelId: string, code: string): Observable {\r\n const url = `${environment.apiEndpoint}api/profile/verify-mfa-code?api=2`;\r\n return this.httpClient.post(url, { channelType, channelId, code });\r\n }\r\n\r\n private updateLoginCache(emailAddress: string) {\r\n const prefs = this.cache.get('UserPreferences');\r\n prefs.displayName = emailAddress;\r\n this.cache.set('UserPreferences', prefs);\r\n\r\n const userData = this.cache.get(this.cache.items.userLinkedAccountsData);\r\n userData.emailAddress = emailAddress;\r\n this.cache.set(this.cache.items.userLinkedAccountsData, userData);\r\n\r\n const profile = this.cache.get('Profile');\r\n (profile.profileEmails as ProfileEmail[]).forEach(x => x.isLogin = false);\r\n const profileEmail = (profile.profileEmails as ProfileEmail[]).find(x => x.emailAddress.toLowerCase() === emailAddress.toLowerCase());\r\n if (profileEmail) {\r\n profileEmail.isLogin = true;\r\n } else {\r\n (profile.profileEmails as ProfileEmail[]).push({ emailAddress: emailAddress, isLogin: true, brwrEmailTypeId: 0 });\r\n }\r\n this.cache.set('Profile', profile);\r\n }\r\n}\r\n"], "mappings": "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", "names": ["ProfileDataService", "BaseDataService", "constructor", "httpClient", "cache", "getProfile", "refresh", "getData", "getMfaCommunicationChannels", "url", "environment", "apiEndpoint", "get", "setPreferredAddress", "clientAddressId", "brwrAddressId", "post", "setPreferredPhone", "clientPhoneId", "brwrPhoneId", "setPreferredEmail", "clientEmailId", "brwrEmailId", "setAllowTextMessages", "allowTextMessages", "deleteAddress", "reason", "delete", "deletePhone", "deleteEmail", "savePhone", "phoneNumber", "brwrPhoneTypeId", "preferred", "saveLoginEmail", "emailAddress", "saveEmail", "brwrEmailTypeId", "getEmailStatus", "verifyEmailCode", "code", "changeLoginEmail", "put", "pipe", "tap", "res", "updateLoginCache", "saveAddress", "addressLine1", "addressLine2", "city", "state", "zip", "verifyAddress", "activateAddress", "melissaVerifiedAddressId", "setMfaStatus", "isMfaEnabled", "sendVerificationCode", "channelType", "channelId", "verifyCode", "prefs", "displayName", "set", "userData", "items", "userLinkedAccountsData", "profile", "profileEmails", "forEach", "x", "isLogin", "profileEmail", "find", "toLowerCase", "push", "\u0275\u0275inject", "HttpClient", "CacheService", "factory", "\u0275fac", "providedIn", "_ProfileDataService"] }