Untitled
unknown
plain_text
2 years ago
1.8 kB
4
Indexable
getLocationFromAddress$(postCode: string, firstLineOfAddress?: string): Observable<AALocation> { return from(this.getLocationFromAddress(postCode, firstLineOfAddress)); } async getLocationFromAddress(postCode: string, firstLineOfAddress?: string): Promise<AALocation> { const geocoder = new google.maps.Geocoder(); postCode = postCode.trim().replace(/\s+/g, ' ').toUpperCase(); return new Promise((resolve, reject) => { const address = firstLineOfAddress ? `${firstLineOfAddress}, ${postCode}` : postCode; geocoder.geocode( { address, componentRestrictions: { country: 'UK' }, }, (results, status) => { if (status === 'OK') { const slicedPostCode = new RegExp(postCode.replace(/\s.*$/, '').slice(0, 4), 'i'); if (slicedPostCode.test(results[0].formatted_address)) { resolve({ latitude: results[0].geometry.location.lat(), longitude: results[0].geometry.location.lng(), }); } else if (firstLineOfAddress) { resolve(this.getLocationFromAddress(postCode)); } else { reject({ error: status }); } } else if (status === 'ZERO_RESULTS' && firstLineOfAddress) { resolve(this.getLocationFromAddress(postCode)); } else { reject({ error: status }); } } ); }); } getPoliciesDetails(): Observable<ICustomerDetails> { return this.http.get<ICustomerDetails>(this.envService.customerPoliciesURL).pipe( map((value: any) => value.customerDetails as ICustomerDetails), catchError(() => of(null)) ); } }
Editor is loading...