Refactor mapping of curated options from meta.
This commit is contained in:
@@ -66,6 +66,37 @@
|
||||
<h3 id="index">Index</h3>
|
||||
<table class="table table-sm table-bordered index-table">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<h6><b>Properties</b></h6>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<ul class="index-list">
|
||||
<li>
|
||||
<a href="#areaNames">areaNames</a>
|
||||
</li>
|
||||
<li>
|
||||
<span class="modifier">Private</span>
|
||||
<a href="#areaNamesList">areaNamesList</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#areaNamesSubject">areaNamesSubject</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#areaTypes">areaTypes</a>
|
||||
</li>
|
||||
<li>
|
||||
<span class="modifier">Private</span>
|
||||
<a href="#areaTypesList">areaTypesList</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#areaTypesSubject">areaTypesSubject</a>
|
||||
</li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
@@ -110,7 +141,7 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<div class="io-line">Defined in <a href="" data-line="10" class="link-to-prism">src/app/_services/location.service.ts:10</a></div>
|
||||
<div class="io-line">Defined in <a href="" data-line="17" class="link-to-prism">src/app/_services/location.service.ts:17</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -168,15 +199,15 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<code>getAreaNameByLocation(location: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>)</code>
|
||||
<code>getAreaNameByLocation(location: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>, areaNames: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/object" target="_blank">object</a>)</code>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<div class="io-line">Defined in <a href="" data-line="17"
|
||||
class="link-to-prism">src/app/_services/location.service.ts:17</a></div>
|
||||
<div class="io-line">Defined in <a href="" data-line="28"
|
||||
class="link-to-prism">src/app/_services/location.service.ts:28</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -206,6 +237,18 @@
|
||||
</td>
|
||||
|
||||
|
||||
</tr>
|
||||
<tr>
|
||||
<td>areaNames</td>
|
||||
<td>
|
||||
<code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/object" target="_blank" >object</a></code>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
No
|
||||
</td>
|
||||
|
||||
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -213,7 +256,7 @@
|
||||
<div>
|
||||
</div>
|
||||
<div class="io-description">
|
||||
<b>Returns : </b> <code>Observable<any></code>
|
||||
<b>Returns : </b> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
|
||||
|
||||
</div>
|
||||
<div class="io-description">
|
||||
@@ -245,8 +288,8 @@
|
||||
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<div class="io-line">Defined in <a href="" data-line="13"
|
||||
class="link-to-prism">src/app/_services/location.service.ts:13</a></div>
|
||||
<div class="io-line">Defined in <a href="" data-line="21"
|
||||
class="link-to-prism">src/app/_services/location.service.ts:21</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -255,7 +298,7 @@
|
||||
<td class="col-md-4">
|
||||
|
||||
<div class="io-description">
|
||||
<b>Returns : </b> <code>Observable<any></code>
|
||||
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
|
||||
|
||||
</div>
|
||||
</td>
|
||||
@@ -277,15 +320,15 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<code>getAreaTypeByArea(area: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>)</code>
|
||||
<code>getAreaTypeByArea(area: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>, areaTypes: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/object" target="_blank">object</a>)</code>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<div class="io-line">Defined in <a href="" data-line="25"
|
||||
class="link-to-prism">src/app/_services/location.service.ts:25</a></div>
|
||||
<div class="io-line">Defined in <a href="" data-line="47"
|
||||
class="link-to-prism">src/app/_services/location.service.ts:47</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -315,6 +358,18 @@
|
||||
</td>
|
||||
|
||||
|
||||
</tr>
|
||||
<tr>
|
||||
<td>areaTypes</td>
|
||||
<td>
|
||||
<code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/object" target="_blank" >object</a></code>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
No
|
||||
</td>
|
||||
|
||||
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -322,7 +377,7 @@
|
||||
<div>
|
||||
</div>
|
||||
<div class="io-description">
|
||||
<b>Returns : </b> <code>Observable<any></code>
|
||||
<b>Returns : </b> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
|
||||
|
||||
</div>
|
||||
<div class="io-description">
|
||||
@@ -354,8 +409,8 @@
|
||||
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<div class="io-line">Defined in <a href="" data-line="21"
|
||||
class="link-to-prism">src/app/_services/location.service.ts:21</a></div>
|
||||
<div class="io-line">Defined in <a href="" data-line="40"
|
||||
class="link-to-prism">src/app/_services/location.service.ts:40</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -364,7 +419,7 @@
|
||||
<td class="col-md-4">
|
||||
|
||||
<div class="io-description">
|
||||
<b>Returns : </b> <code>Observable<any></code>
|
||||
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
|
||||
|
||||
</div>
|
||||
</td>
|
||||
@@ -372,13 +427,213 @@
|
||||
</tbody>
|
||||
</table>
|
||||
</section>
|
||||
<section>
|
||||
|
||||
<h3 id="inputs">
|
||||
Properties
|
||||
</h3>
|
||||
<table class="table table-sm table-bordered">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<a name="areaNames"></a>
|
||||
<span class="name">
|
||||
<b>
|
||||
areaNames</b>
|
||||
<a href="#areaNames"><span class="icon ion-ios-link"></span></a>
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/object" target="_blank" >object</a></code>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<i>Default value : </i><code>{}</code>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<div class="io-line">Defined in <a href="" data-line="11" class="link-to-prism">src/app/_services/location.service.ts:11</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="table table-sm table-bordered">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<a name="areaNamesList"></a>
|
||||
<span class="name">
|
||||
<b>
|
||||
<span class="modifier">Private</span>
|
||||
areaNamesList</b>
|
||||
<a href="#areaNamesList"><span class="icon ion-ios-link"></span></a>
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<i>Type : </i> <code>BehaviorSubject<object></code>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<i>Default value : </i><code>new BehaviorSubject<object>(this.areaNames)</code>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<div class="io-line">Defined in <a href="" data-line="12" class="link-to-prism">src/app/_services/location.service.ts:12</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="table table-sm table-bordered">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<a name="areaNamesSubject"></a>
|
||||
<span class="name">
|
||||
<b>
|
||||
areaNamesSubject</b>
|
||||
<a href="#areaNamesSubject"><span class="icon ion-ios-link"></span></a>
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<i>Type : </i> <code>Observable<object></code>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<i>Default value : </i><code>this.areaNamesList.asObservable()</code>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<div class="io-line">Defined in <a href="" data-line="13" class="link-to-prism">src/app/_services/location.service.ts:13</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="table table-sm table-bordered">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<a name="areaTypes"></a>
|
||||
<span class="name">
|
||||
<b>
|
||||
areaTypes</b>
|
||||
<a href="#areaTypes"><span class="icon ion-ios-link"></span></a>
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/object" target="_blank" >object</a></code>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<i>Default value : </i><code>{}</code>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<div class="io-line">Defined in <a href="" data-line="15" class="link-to-prism">src/app/_services/location.service.ts:15</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="table table-sm table-bordered">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<a name="areaTypesList"></a>
|
||||
<span class="name">
|
||||
<b>
|
||||
<span class="modifier">Private</span>
|
||||
areaTypesList</b>
|
||||
<a href="#areaTypesList"><span class="icon ion-ios-link"></span></a>
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<i>Type : </i> <code>BehaviorSubject<object></code>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<i>Default value : </i><code>new BehaviorSubject<object>(this.areaTypes)</code>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<div class="io-line">Defined in <a href="" data-line="16" class="link-to-prism">src/app/_services/location.service.ts:16</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="table table-sm table-bordered">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<a name="areaTypesSubject"></a>
|
||||
<span class="name">
|
||||
<b>
|
||||
areaTypesSubject</b>
|
||||
<a href="#areaTypesSubject"><span class="icon ion-ios-link"></span></a>
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<i>Type : </i> <code>Observable<object></code>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<i>Default value : </i><code>this.areaTypesList.asObservable()</code>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<div class="io-line">Defined in <a href="" data-line="17" class="link-to-prism">src/app/_services/location.service.ts:17</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="tab-pane fade tab-source-code" id="c-source">
|
||||
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Injectable } from '@angular/core';
|
||||
import { Observable } from 'rxjs';
|
||||
import { BehaviorSubject, Observable } from 'rxjs';
|
||||
import { environment } from '@src/environments/environment';
|
||||
import { first } from 'rxjs/operators';
|
||||
import { HttpClient } from '@angular/common/http';
|
||||
@@ -387,24 +642,52 @@ import { HttpClient } from '@angular/common/http';
|
||||
providedIn: 'root',
|
||||
})
|
||||
export class LocationService {
|
||||
areaNames: object = {};
|
||||
private areaNamesList: BehaviorSubject<object> = new BehaviorSubject<object>(this.areaNames);
|
||||
areaNamesSubject: Observable<object> = this.areaNamesList.asObservable();
|
||||
|
||||
areaTypes: object = {};
|
||||
private areaTypesList: BehaviorSubject<object> = new BehaviorSubject<object>(this.areaTypes);
|
||||
areaTypesSubject: Observable<object> = this.areaTypesList.asObservable();
|
||||
|
||||
constructor(private httpClient: HttpClient) {}
|
||||
|
||||
getAreaNames(): Observable<any> {
|
||||
return this.httpClient.get(`${environment.cicMetaUrl}/areanames`);
|
||||
getAreaNames(): void {
|
||||
this.httpClient
|
||||
.get(`${environment.cicMetaUrl}/areanames`)
|
||||
.pipe(first())
|
||||
.subscribe((res: object) => this.areaNamesList.next(res));
|
||||
}
|
||||
|
||||
getAreaNameByLocation(location: string): Observable<any> {
|
||||
return this.httpClient.get(`${environment.cicMetaUrl}/areanames/${location.toLowerCase()}`);
|
||||
getAreaNameByLocation(location: string, areaNames: object): string {
|
||||
const keywords = location.toLowerCase().split(' ');
|
||||
for (const keyword of keywords) {
|
||||
const queriedAreaName: string = Object.keys(areaNames).find((key) =>
|
||||
areaNames[key].includes(keyword)
|
||||
);
|
||||
if (queriedAreaName) {
|
||||
return queriedAreaName;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
getAreaTypes(): Observable<any> {
|
||||
return this.httpClient.get(`${environment.cicMetaUrl}/areatypes`).pipe(first());
|
||||
getAreaTypes(): void {
|
||||
this.httpClient
|
||||
.get(`${environment.cicMetaUrl}/areatypes`)
|
||||
.pipe(first())
|
||||
.subscribe((res: object) => this.areaTypesList.next(res));
|
||||
}
|
||||
|
||||
getAreaTypeByArea(area: string): Observable<any> {
|
||||
return this.httpClient
|
||||
.get(`${environment.cicMetaUrl}/areatypes/${area.toLowerCase()}`)
|
||||
.pipe(first());
|
||||
getAreaTypeByArea(area: string, areaTypes: object): string {
|
||||
const keywords = area.toLowerCase().split(' ');
|
||||
for (const keyword of keywords) {
|
||||
const queriedAreaType: string = Object.keys(areaTypes).find((key) =>
|
||||
areaTypes[key].includes(keyword)
|
||||
);
|
||||
if (queriedAreaType) {
|
||||
return queriedAreaType;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</code></pre>
|
||||
|
||||
Reference in New Issue
Block a user