cic-staff-client/docs/compodoc/interceptors/MockBackendInterceptor.html

695 lines
39 KiB
HTML
Raw Normal View History

2021-05-10 20:56:20 +02:00
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>CICADA</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="../images/favicon.ico">
<link rel="stylesheet" href="../styles/style.css">
</head>
<body>
<div class="navbar navbar-default navbar-fixed-top visible-xs">
<a href="../" class="navbar-brand">CICADA</a>
<button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
</div>
<div class="xs-menu menu" id="mobile-menu">
<div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div> <compodoc-menu></compodoc-menu>
</div>
<div class="container-fluid main">
<div class="row main">
<div class="hidden-xs menu">
<compodoc-menu mode="normal"></compodoc-menu>
</div>
<!-- START CONTENT -->
<div class="content interceptor">
<div class="content-data">
<ol class="breadcrumb">
<li>Interceptors</li>
<li>MockBackendInterceptor</li>
</ol>
<ul class="nav nav-tabs" role="tablist">
<li class="active">
<a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
</li>
<li >
<a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active in" id="c-info">
<p class="comment">
<h3>File</h3>
</p>
<p class="comment">
<code>src/app/_helpers/mock-backend.ts</code>
</p>
<p class="comment">
<h3>Description</h3>
</p>
<p class="comment">
<p>Intercepts HTTP requests and handles some specified requests internally.
Provides a backend that can handle requests for certain data items.</p>
2021-05-10 20:56:20 +02:00
</p>
<p class="comment">
<h3>Example</h3>
</p>
<div class="io-description">
</div>
2021-05-10 20:56:20 +02:00
<section>
<h3 id="index">Index</h3>
<table class="table table-sm table-bordered index-table">
<tbody>
<tr>
<td class="col-md-4">
<h6><b>Methods</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#intercept">intercept</a>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="methods">
Methods
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="intercept"></a>
<span class="name">
<b>
intercept
</b>
<a href="#intercept"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>intercept(request: HttpRequest<any>, next: <a href="https://angular.io/api/common/http/HttpHandler" target="_blank">HttpHandler</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="268"
class="link-to-prism">src/app/_helpers/mock-backend.ts:268</a></div>
2021-05-10 20:56:20 +02:00
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Intercepts HTTP requests.</p>
</div>
2021-05-10 20:56:20 +02:00
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
<td>Description</td>
2021-05-10 20:56:20 +02:00
</tr>
</thead>
<tbody>
<tr>
<td>request</td>
<td>
<code>HttpRequest&lt;any&gt;</code>
</td>
<td>
No
</td>
<td>
<ul>
<li>An outgoing HTTP request with an optional typed body.</li>
</ul>
</td>
2021-05-10 20:56:20 +02:00
</tr>
<tr>
<td>next</td>
<td>
<code><a href="https://angular.io/api/common/http/HttpHandler" target="_blank" >HttpHandler</a></code>
</td>
<td>
No
</td>
<td>
<ul>
<li>The next HTTP handler or the outgoing request dispatcher.</li>
</ul>
</td>
2021-05-10 20:56:20 +02:00
</tr>
</tbody>
</table>
</div>
<div>
</div>
<div class="io-description">
<b>Returns : </b> <code>Observable&lt;HttpEvent&lt;any&gt;&gt;</code>
</div>
<div class="io-description">
<p>The response from the resolved request.</p>
2021-05-10 20:56:20 +02:00
</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 {HTTP_INTERCEPTORS, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse} from &#x27;@angular/common/http&#x27;;
import {Injectable} from &#x27;@angular/core&#x27;;
// Third party imports
2021-05-10 20:56:20 +02:00
import {Observable, of, throwError} from &#x27;rxjs&#x27;;
import {delay, dematerialize, materialize, mergeMap} from &#x27;rxjs/operators&#x27;;
// Application imports
2021-05-10 20:56:20 +02:00
import {Action, AreaName, AreaType, Category, Token} from &#x27;@app/_models&#x27;;
/** A mock of the curated account types. */
const accountTypes: Array&lt;string&gt; &#x3D; [&#x27;user&#x27;, &#x27;cashier&#x27;, &#x27;vendor&#x27;, &#x27;tokenagent&#x27;, &#x27;group&#x27;];
/** A mock of actions made by the admin staff. */
2021-05-10 20:56:20 +02:00
const actions: Array&lt;Action&gt; &#x3D; [
{ id: 1, user: &#x27;Tom&#x27;, role: &#x27;enroller&#x27;, action: &#x27;Disburse RSV 100&#x27;, approval: false },
{ id: 2, user: &#x27;Christine&#x27;, role: &#x27;admin&#x27;, action: &#x27;Change user phone number&#x27;, approval: true },
{ id: 3, user: &#x27;Will&#x27;, role: &#x27;superadmin&#x27;, action: &#x27;Reclaim RSV 1000&#x27;, approval: true },
{ id: 4, user: &#x27;Vivian&#x27;, role: &#x27;enroller&#x27;, action: &#x27;Complete user profile&#x27;, approval: true },
{ id: 5, user: &#x27;Jack&#x27;, role: &#x27;enroller&#x27;, action: &#x27;Reclaim RSV 200&#x27;, approval: false },
{ id: 6, user: &#x27;Patience&#x27;, role: &#x27;enroller&#x27;, action: &#x27;Change user information&#x27;, approval: false }
];
/** A mock of curated area names. */
const areaNames: Array&lt;AreaName&gt; &#x3D; [
2021-05-10 20:56:20 +02:00
{
name: &#x27;Mukuru Nairobi&#x27;,
locations: [&#x27;kayaba&#x27;, &#x27;kayba&#x27;, &#x27;kambi&#x27;, &#x27;mukuru&#x27;, &#x27;masai&#x27;, &#x27;hazina&#x27;, &#x27;south&#x27;, &#x27;tetra&#x27;, &#x27;tetrapak&#x27;, &#x27;ruben&#x27;, &#x27;rueben&#x27;, &#x27;kingston&#x27;,
&#x27;korokocho&#x27;, &#x27;kingstone&#x27;, &#x27;kamongo&#x27;, &#x27;lungalunga&#x27;, &#x27;sinai&#x27;, &#x27;sigei&#x27;, &#x27;lungu&#x27;, &#x27;lunga lunga&#x27;, &#x27;owino road&#x27;, &#x27;seigei&#x27;]
2021-05-10 20:56:20 +02:00
},
{
name: &#x27;Kinango Kwale&#x27;,
locations: [&#x27;amani&#x27;, &#x27;bofu&#x27;, &#x27;chibuga&#x27;, &#x27;chikomani&#x27;, &#x27;chilongoni&#x27;, &#x27;chigojoni&#x27;, &#x27;chinguluni&#x27;, &#x27;chigato&#x27;, &#x27;chigale&#x27;, &#x27;chikole&#x27;,
&#x27;chilongoni&#x27;, &#x27;chilumani&#x27;, &#x27;chigojoni&#x27;, &#x27;chikomani&#x27;, &#x27;chizini&#x27;, &#x27;chikomeni&#x27;, &#x27;chidzuvini&#x27;, &#x27;chidzivuni&#x27;, &#x27;chikuyu&#x27;, &#x27;chizingo&#x27;,
&#x27;doti&#x27;, &#x27;dzugwe&#x27;, &#x27;dzivani&#x27;, &#x27;dzovuni&#x27;, &#x27;hanje&#x27;, &#x27;kasemeni&#x27;, &#x27;katundani&#x27;, &#x27;kibandaogo&#x27;, &#x27;kibandaongo&#x27;, &#x27;kwale&#x27;, &#x27;kinango&#x27;,
&#x27;kidzuvini&#x27;, &#x27;kalalani&#x27;, &#x27;kafuduni&#x27;, &#x27;kaloleni&#x27;, &#x27;kilibole&#x27;, &#x27;lutsangani&#x27;, &#x27;peku&#x27;, &#x27;gona&#x27;, &#x27;guro&#x27;, &#x27;gandini&#x27;, &#x27;mkanyeni&#x27;, &#x27;myenzeni&#x27;,
&#x27;miyenzeni&#x27;, &#x27;miatsiani&#x27;, &#x27;mienzeni&#x27;, &#x27;mnyenzeni&#x27;, &#x27;minyenzeni&#x27;, &#x27;miyani&#x27;, &#x27;mioleni&#x27;, &#x27;makuluni&#x27;, &#x27;mariakani&#x27;, &#x27;makobeni&#x27;, &#x27;madewani&#x27;,
&#x27;mwangaraba&#x27;, &#x27;mwashanga&#x27;, &#x27;miloeni&#x27;, &#x27;mabesheni&#x27;, &#x27;mazeras&#x27;, &#x27;mazera&#x27;, &#x27;mlola&#x27;, &#x27;muugano&#x27;, &#x27;mulunguni&#x27;, &#x27;mabesheni&#x27;, &#x27;miatsani&#x27;,
&#x27;miatsiani&#x27;, &#x27;mwache&#x27;, &#x27;mwangani&#x27;, &#x27;mwehavikonje&#x27;, &#x27;miguneni&#x27;, &#x27;nzora&#x27;, &#x27;nzovuni&#x27;, &#x27;vikinduni&#x27;, &#x27;vikolani&#x27;, &#x27;vitangani&#x27;, &#x27;viogato&#x27;,
&#x27;vyogato&#x27;, &#x27;vistangani&#x27;, &#x27;yapha&#x27;, &#x27;yava&#x27;, &#x27;yowani&#x27;, &#x27;ziwani&#x27;, &#x27;majengo&#x27;, &#x27;matuga&#x27;, &#x27;vigungani&#x27;, &#x27;vidziweni&#x27;, &#x27;vinyunduni&#x27;, &#x27;ukunda&#x27;,
&#x27;kokotoni&#x27;, &#x27;mikindani&#x27;]
2021-05-10 20:56:20 +02:00
},
{
name: &#x27;Misc Nairobi&#x27;,
locations: [&#x27;nairobi&#x27;, &#x27;west&#x27;, &#x27;lindi&#x27;, &#x27;kibera&#x27;, &#x27;kibira&#x27;, &#x27;kibra&#x27;, &#x27;makina&#x27;, &#x27;soweto&#x27;, &#x27;olympic&#x27;, &#x27;kangemi&#x27;, &#x27;ruiru&#x27;, &#x27;congo&#x27;,
&#x27;kawangware&#x27;, &#x27;kwangware&#x27;, &#x27;donholm&#x27;, &#x27;dagoreti&#x27;, &#x27;dandora&#x27;, &#x27;kabete&#x27;, &#x27;sinai&#x27;, &#x27;donhom&#x27;, &#x27;donholm&#x27;, &#x27;huruma&#x27;, &#x27;kitengela&#x27;,
&#x27;makadara&#x27;, &#x27;,mlolongo&#x27;, &#x27;kenyatta&#x27;, &#x27;mlolongo&#x27;, &#x27;tassia&#x27;, &#x27;tasia&#x27;, &#x27;gatina&#x27;, &#x27;56&#x27;, &#x27;industrial&#x27;, &#x27;kariobangi&#x27;, &#x27;kasarani&#x27;, &#x27;kayole&#x27;,
&#x27;mathare&#x27;, &#x27;pipe&#x27;, &#x27;juja&#x27;, &#x27;uchumi&#x27;, &#x27;jogoo&#x27;, &#x27;umoja&#x27;, &#x27;thika&#x27;, &#x27;kikuyu&#x27;, &#x27;stadium&#x27;, &#x27;buru buru&#x27;, &#x27;ngong&#x27;, &#x27;starehe&#x27;, &#x27;mwiki&#x27;,
&#x27;fuata&#x27;, &#x27;kware&#x27;, &#x27;kabiro&#x27;, &#x27;embakassi&#x27;, &#x27;embakasi&#x27;, &#x27;kmoja&#x27;, &#x27;east&#x27;, &#x27;githurai&#x27;, &#x27;landi&#x27;, &#x27;langata&#x27;, &#x27;limuru&#x27;, &#x27;mathere&#x27;,
&#x27;dagoretti&#x27;, &#x27;kirembe&#x27;, &#x27;muugano&#x27;, &#x27;mwiki&#x27;, &#x27;toi market&#x27;]
2021-05-10 20:56:20 +02:00
},
{
name: &#x27;Misc Mombasa&#x27;,
locations: [&#x27;mombasa&#x27;, &#x27;likoni&#x27;, &#x27;bangla&#x27;, &#x27;bangladesh&#x27;, &#x27;kizingo&#x27;, &#x27;old town&#x27;, &#x27;makupa&#x27;, &#x27;mvita&#x27;, &#x27;ngombeni&#x27;, &#x27;ngómbeni&#x27;, &#x27;ombeni&#x27;,
&#x27;magongo&#x27;, &#x27;miritini&#x27;, &#x27;changamwe&#x27;, &#x27;jomvu&#x27;, &#x27;ohuru&#x27;, &#x27;tudor&#x27;, &#x27;diani&#x27;]
2021-05-10 20:56:20 +02:00
},
{
name: &#x27;Kisauni&#x27;,
locations: [&#x27;bamburi&#x27;, &#x27;kisauni&#x27;, &#x27;mworoni&#x27;, &#x27;nyali&#x27;, &#x27;shanzu&#x27;, &#x27;bombolulu&#x27;, &#x27;mtopanga&#x27;, &#x27;mjambere&#x27;, &#x27;majaoni&#x27;, &#x27;manyani&#x27;, &#x27;magogoni&#x27;,
&#x27;junda&#x27;, &#x27;mwakirunge&#x27;, &#x27;mshomoroni&#x27;]
2021-05-10 20:56:20 +02:00
},
{
name: &#x27;Kilifi&#x27;,
locations: [&#x27;kilfi&#x27;, &#x27;kilifi&#x27;, &#x27;mtwapa&#x27;, &#x27;takaungu&#x27;, &#x27;makongeni&#x27;, &#x27;mnarani&#x27;, &#x27;mnarani&#x27;, &#x27;office&#x27;, &#x27;g.e&#x27;, &#x27;ge&#x27;, &#x27;raibai&#x27;, &#x27;ribe&#x27;]
},
{
name: &#x27;Kakuma&#x27;,
locations: [&#x27;kakuma&#x27;]
},
{
name: &#x27;Kitui&#x27;,
locations: [&#x27;kitui&#x27;, &#x27;mwingi&#x27;]
},
{
name: &#x27;Nyanza&#x27;,
locations: [&#x27;busia&#x27;, &#x27;nyalgunga&#x27;, &#x27;mbita&#x27;, &#x27;siaya&#x27;, &#x27;kisumu&#x27;, &#x27;nyalenda&#x27;, &#x27;hawinga&#x27;, &#x27;rangala&#x27;, &#x27;uyoma&#x27;, &#x27;mumias&#x27;, &#x27;homabay&#x27;, &#x27;homaboy&#x27;,
&#x27;migori&#x27;, &#x27;kusumu&#x27;]
},
{
name: &#x27;Misc Rural Counties&#x27;,
locations: [&#x27;makueni&#x27;, &#x27;meru&#x27;, &#x27;kisii&#x27;, &#x27;bomet&#x27;, &#x27;machakos&#x27;, &#x27;bungoma&#x27;, &#x27;eldoret&#x27;, &#x27;kakamega&#x27;, &#x27;kericho&#x27;, &#x27;kajiado&#x27;, &#x27;nandi&#x27;, &#x27;nyeri&#x27;,
&#x27;wote&#x27;, &#x27;kiambu&#x27;, &#x27;mwea&#x27;, &#x27;nakuru&#x27;, &#x27;narok&#x27;]
},
{
name: &#x27;other&#x27;,
locations: [&#x27;other&#x27;, &#x27;none&#x27;, &#x27;unknown&#x27;]
2021-05-10 20:56:20 +02:00
}
];
/** A mock of curated area types. */
const areaTypes: Array&lt;AreaType&gt; &#x3D; [
{
name: &#x27;urban&#x27;,
area: [&#x27;urban&#x27;, &#x27;nairobi&#x27;, &#x27;mombasa&#x27;]
},
{
name: &#x27;rural&#x27;,
area: [&#x27;rural&#x27;, &#x27;kakuma&#x27;, &#x27;kwale&#x27;, &#x27;kinango&#x27;, &#x27;kitui&#x27;, &#x27;nyanza&#x27;]
},
{
name: &#x27;periurban&#x27;,
area: [&#x27;kilifi&#x27;, &#x27;periurban&#x27;]
},
{
name: &#x27;other&#x27;,
area: [&#x27;other&#x27;]
}
];
/** A mock of the user&#x27;s business categories */
2021-05-10 20:56:20 +02:00
const categories: Array&lt;Category&gt; &#x3D; [
{
name: &#x27;system&#x27;,
products: [&#x27;system&#x27;, &#x27;office main&#x27;, &#x27;office main phone&#x27;]
},
{
name: &#x27;education&#x27;,
products: [&#x27;book&#x27;, &#x27;coach&#x27;, &#x27;teacher&#x27;, &#x27;sch&#x27;, &#x27;school&#x27;, &#x27;pry&#x27;, &#x27;education&#x27;, &#x27;student&#x27;, &#x27;mwalimu&#x27;, &#x27;maalim&#x27;, &#x27;consultant&#x27;, &#x27;consult&#x27;,
&#x27;college&#x27;, &#x27;university&#x27;, &#x27;lecturer&#x27;, &#x27;primary&#x27;, &#x27;secondary&#x27;, &#x27;daycare&#x27;, &#x27;babycare&#x27;, &#x27;baby care&#x27;, &#x27;elim&#x27;, &#x27;eimu&#x27;, &#x27;nursery&#x27;,
&#x27;red cross&#x27;, &#x27;volunteer&#x27;, &#x27;instructor&#x27;, &#x27;journalist&#x27;, &#x27;lesson&#x27;, &#x27;academy&#x27;, &#x27;headmistress&#x27;, &#x27;headteacher&#x27;, &#x27;cyber&#x27;, &#x27;researcher&#x27;,
&#x27;professor&#x27;, &#x27;demo&#x27;, &#x27;expert&#x27;, &#x27;tution&#x27;, &#x27;tuition&#x27;, &#x27;children&#x27;, &#x27;headmaster&#x27;, &#x27;educator&#x27;, &#x27;Marital counsellor&#x27;, &#x27;counsellor&#x27;,
&#x27;trainer&#x27;, &#x27;vijana&#x27;, &#x27;youth&#x27;, &#x27;intern&#x27;, &#x27;redcross&#x27;, &#x27;KRCS&#x27;, &#x27;danish&#x27;, &#x27;science&#x27;, &#x27;data&#x27;, &#x27;facilitator&#x27;, &#x27;vitabu&#x27;, &#x27;kitabu&#x27;]
},
{
name: &#x27;faith&#x27;,
products: [&#x27;pastor&#x27;, &#x27;imam&#x27;, &#x27;madrasa&#x27;, &#x27;religous&#x27;, &#x27;religious&#x27;, &#x27;ustadh&#x27;, &#x27;ustadhi&#x27;, &#x27;Marital counsellor&#x27;, &#x27;counsellor&#x27;, &#x27;church&#x27;,
&#x27;kanisa&#x27;, &#x27;mksiti&#x27;, &#x27;donor&#x27;]
},
{
name: &#x27;government&#x27;,
products: [&#x27;elder&#x27;, &#x27;chief&#x27;, &#x27;police&#x27;, &#x27;government&#x27;, &#x27;country&#x27;, &#x27;county&#x27;, &#x27;soldier&#x27;, &#x27;village admin&#x27;, &#x27;ward&#x27;, &#x27;leader&#x27;, &#x27;kra&#x27;,
&#x27;mailman&#x27;, &#x27;immagration&#x27;, &#x27;immigration&#x27;]
},
{
name: &#x27;environment&#x27;,
products: [&#x27;conservation&#x27;, &#x27;toilet&#x27;, &#x27;choo&#x27;, &#x27;garbage&#x27;, &#x27;fagio&#x27;, &#x27;waste&#x27;, &#x27;tree&#x27;, &#x27;taka&#x27;, &#x27;scrap&#x27;, &#x27;cleaning&#x27;, &#x27;gardener&#x27;, &#x27;rubbish&#x27;,
&#x27;usafi&#x27;, &#x27;mazingira&#x27;, &#x27;miti&#x27;, &#x27;trash&#x27;, &#x27;cleaner&#x27;, &#x27;plastic&#x27;, &#x27;collection&#x27;, &#x27;seedling&#x27;, &#x27;seedlings&#x27;, &#x27;recycling&#x27;]
},
{
name: &#x27;farming&#x27;,
products: [&#x27;farm&#x27;, &#x27;farmer&#x27;, &#x27;farming&#x27;, &#x27;mkulima&#x27;, &#x27;kulima&#x27;, &#x27;ukulima&#x27;, &#x27;wakulima&#x27;, &#x27;jembe&#x27;, &#x27;shamba&#x27;]
},
{
name: &#x27;labour&#x27;,
products: [&#x27;artist&#x27;, &#x27;agent&#x27;, &#x27;guard&#x27;, &#x27;askari&#x27;, &#x27;accountant&#x27;, &#x27;baker&#x27;, &#x27;beadwork&#x27;, &#x27;beauty&#x27;, &#x27;business&#x27;, &#x27;barber&#x27;, &#x27;casual&#x27;,
&#x27;electrian&#x27;, &#x27;caretaker&#x27;, &#x27;car wash&#x27;, &#x27;capenter&#x27;, &#x27;construction&#x27;, &#x27;chef&#x27;, &#x27;catering&#x27;, &#x27;cobler&#x27;, &#x27;cobbler&#x27;, &#x27;carwash&#x27;, &#x27;dhobi&#x27;,
&#x27;landlord&#x27;, &#x27;design&#x27;, &#x27;carpenter&#x27;, &#x27;fundi&#x27;, &#x27;hawking&#x27;, &#x27;hawker&#x27;, &#x27;househelp&#x27;, &#x27;hsehelp&#x27;, &#x27;house help&#x27;, &#x27;help&#x27;, &#x27;housegirl&#x27;, &#x27;kushona&#x27;,
&#x27;juakali&#x27;, &#x27;jualikali&#x27;, &#x27;juacali&#x27;, &#x27;jua kali&#x27;, &#x27;shepherd&#x27;, &#x27;makuti&#x27;, &#x27;kujenga&#x27;, &#x27;kinyozi&#x27;, &#x27;kazi&#x27;, &#x27;knitting&#x27;, &#x27;kufua&#x27;, &#x27;fua&#x27;,
&#x27;hustler&#x27;, &#x27;biashara&#x27;, &#x27;labour&#x27;, &#x27;labor&#x27;, &#x27;laundry&#x27;, &#x27;repair&#x27;, &#x27;hair&#x27;, &#x27;posho&#x27;, &#x27;mill&#x27;, &#x27;mtambo&#x27;, &#x27;uvuvi&#x27;, &#x27;engineer&#x27;, &#x27;manager&#x27;,
&#x27;tailor&#x27;, &#x27;nguo&#x27;, &#x27;mason&#x27;, &#x27;mtumba&#x27;, &#x27;garage&#x27;, &#x27;mechanic&#x27;, &#x27;mjenzi&#x27;, &#x27;mfugaji&#x27;, &#x27;painter&#x27;, &#x27;receptionist&#x27;, &#x27;printing&#x27;, &#x27;programming&#x27;,
&#x27;plumb&#x27;, &#x27;charging&#x27;, &#x27;salon&#x27;, &#x27;mpishi&#x27;, &#x27;msusi&#x27;, &#x27;mgema&#x27;, &#x27;footballer&#x27;, &#x27;photocopy&#x27;, &#x27;peddler&#x27;, &#x27;staff&#x27;, &#x27;sales&#x27;, &#x27;service&#x27;, &#x27;saloon&#x27;,
&#x27;seremala&#x27;, &#x27;security&#x27;, &#x27;insurance&#x27;, &#x27;secretary&#x27;, &#x27;shoe&#x27;, &#x27;shepard&#x27;, &#x27;shephard&#x27;, &#x27;tout&#x27;, &#x27;tv&#x27;, &#x27;mvuvi&#x27;, &#x27;mawe&#x27;, &#x27;majani&#x27;, &#x27;maembe&#x27;,
&#x27;freelance&#x27;, &#x27;mjengo&#x27;, &#x27;electronics&#x27;, &#x27;photographer&#x27;, &#x27;programmer&#x27;, &#x27;electrician&#x27;, &#x27;washing&#x27;, &#x27;bricks&#x27;, &#x27;welder&#x27;, &#x27;welding&#x27;,
&#x27;working&#x27;, &#x27;worker&#x27;, &#x27;watchman&#x27;, &#x27;waiter&#x27;, &#x27;waitress&#x27;, &#x27;viatu&#x27;, &#x27;yoga&#x27;, &#x27;guitarist&#x27;, &#x27;house&#x27;, &#x27;artisan&#x27;, &#x27;musician&#x27;, &#x27;trade&#x27;,
&#x27;makonge&#x27;, &#x27;ujenzi&#x27;, &#x27;vendor&#x27;, &#x27;watchlady&#x27;, &#x27;marketing&#x27;, &#x27;beautician&#x27;, &#x27;photo&#x27;, &#x27;metal work&#x27;, &#x27;supplier&#x27;, &#x27;law firm&#x27;, &#x27;brewer&#x27;]
},
{
name: &#x27;food&#x27;,
products: [&#x27;avocado&#x27;, &#x27;bhajia&#x27;, &#x27;bajia&#x27;, &#x27;mbonga&#x27;, &#x27;bofu&#x27;, &#x27;beans&#x27;, &#x27;biscuits&#x27;, &#x27;biringanya&#x27;, &#x27;banana&#x27;, &#x27;bananas&#x27;, &#x27;crisps&#x27;, &#x27;chakula&#x27;,
&#x27;coconut&#x27;, &#x27;chapati&#x27;, &#x27;cereal&#x27;, &#x27;chipo&#x27;, &#x27;chapo&#x27;, &#x27;chai&#x27;, &#x27;chips&#x27;, &#x27;cassava&#x27;, &#x27;cake&#x27;, &#x27;cereals&#x27;, &#x27;cook&#x27;, &#x27;corn&#x27;, &#x27;coffee&#x27;, &#x27;chicken&#x27;,
&#x27;dagaa&#x27;, &#x27;donut&#x27;, &#x27;dough&#x27;, &#x27;groundnuts&#x27;, &#x27;hotel&#x27;, &#x27;holel&#x27;, &#x27;hoteli&#x27;, &#x27;butcher&#x27;, &#x27;butchery&#x27;, &#x27;fruit&#x27;, &#x27;food&#x27;, &#x27;fruits&#x27;, &#x27;fish&#x27;,
&#x27;githeri&#x27;, &#x27;grocery&#x27;, &#x27;grocer&#x27;, &#x27;pojo&#x27;, &#x27;papa&#x27;, &#x27;goats&#x27;, &#x27;mabenda&#x27;, &#x27;mbenda&#x27;, &#x27;poultry&#x27;, &#x27;soda&#x27;, &#x27;peanuts&#x27;, &#x27;potatoes&#x27;, &#x27;samosa&#x27;,
&#x27;soko&#x27;, &#x27;samaki&#x27;, &#x27;tomato&#x27;, &#x27;tomatoes&#x27;, &#x27;mchele&#x27;, &#x27;matunda&#x27;, &#x27;mango&#x27;, &#x27;melon&#x27;, &#x27;mellon&#x27;, &#x27;nyanya&#x27;, &#x27;nyama&#x27;, &#x27;omena&#x27;, &#x27;umena&#x27;, &#x27;ndizi&#x27;,
&#x27;njugu&#x27;, &#x27;kamba kamba&#x27;, &#x27;khaimati&#x27;, &#x27;kaimati&#x27;, &#x27;kunde&#x27;, &#x27;kuku&#x27;, &#x27;kahawa&#x27;, &#x27;keki&#x27;, &#x27;muguka&#x27;, &#x27;miraa&#x27;, &#x27;milk&#x27;, &#x27;choma&#x27;, &#x27;maziwa&#x27;,
&#x27;mboga&#x27;, &#x27;mbog&#x27;, &#x27;busaa&#x27;, &#x27;chumvi&#x27;, &#x27;cabbages&#x27;, &#x27;mabuyu&#x27;, &#x27;machungwa&#x27;, &#x27;mbuzi&#x27;, &#x27;mnazi&#x27;, &#x27;mchicha&#x27;, &#x27;ngombe&#x27;, &#x27;ngano&#x27;, &#x27;nazi&#x27;,
&#x27;oranges&#x27;, &#x27;peanuts&#x27;, &#x27;mkate&#x27;, &#x27;bread&#x27;, &#x27;mikate&#x27;, &#x27;vitungu&#x27;, &#x27;sausages&#x27;, &#x27;maize&#x27;, &#x27;mbata&#x27;, &#x27;mchuzi&#x27;, &#x27;mchuuzi&#x27;, &#x27;mandazi&#x27;, &#x27;mbaazi&#x27;,
&#x27;mahindi&#x27;, &#x27;maandazi&#x27;, &#x27;mogoka&#x27;, &#x27;meat&#x27;, &#x27;mhogo&#x27;, &#x27;mihogo&#x27;, &#x27;muhogo&#x27;, &#x27;maharagwe&#x27;, &#x27;miwa&#x27;, &#x27;mahamri&#x27;, &#x27;mitumba&#x27;, &#x27;simsim&#x27;, &#x27;porridge&#x27;,
&#x27;pilau&#x27;, &#x27;vegetable&#x27;, &#x27;egg&#x27;, &#x27;mayai&#x27;, &#x27;mifugo&#x27;, &#x27;unga&#x27;, &#x27;good&#x27;, &#x27;sima&#x27;, &#x27;sweet&#x27;, &#x27;sweats&#x27;, &#x27;sambusa&#x27;, &#x27;snacks&#x27;, &#x27;sugar&#x27;, &#x27;suger&#x27;,
&#x27;ugoro&#x27;, &#x27;sukari&#x27;, &#x27;soup&#x27;, &#x27;spinach&#x27;, &#x27;smokie&#x27;, &#x27;smokies&#x27;, &#x27;sukuma&#x27;, &#x27;tea&#x27;, &#x27;uji&#x27;, &#x27;ugali&#x27;, &#x27;uchuzi&#x27;, &#x27;uchuuzi&#x27;, &#x27;viazi&#x27;, &#x27;yoghurt&#x27;,
&#x27;yogurt&#x27;, &#x27;wine&#x27;, &#x27;marondo&#x27;, &#x27;maandzi&#x27;, &#x27;matoke&#x27;, &#x27;omeno&#x27;, &#x27;onions&#x27;, &#x27;nzugu&#x27;, &#x27;korosho&#x27;, &#x27;barafu&#x27;, &#x27;juice&#x27;]
},
{
name: &#x27;water&#x27;,
products: [&#x27;maji&#x27;, &#x27;water&#x27;]
},
{
name: &#x27;health&#x27;,
products: [&#x27;agrovet&#x27;, &#x27;dispensary&#x27;, &#x27;barakoa&#x27;, &#x27;chemist&#x27;, &#x27;Chemicals&#x27;, &#x27;chv&#x27;, &#x27;doctor&#x27;, &#x27;daktari&#x27;, &#x27;dawa&#x27;, &#x27;hospital&#x27;, &#x27;herbalist&#x27;,
&#x27;mganga&#x27;, &#x27;sabuni&#x27;, &#x27;soap&#x27;, &#x27;nurse&#x27;, &#x27;heath&#x27;, &#x27;community health worker&#x27;, &#x27;clinic&#x27;, &#x27;clinical&#x27;, &#x27;mask&#x27;, &#x27;medicine&#x27;, &#x27;lab technician&#x27;,
&#x27;pharmacy&#x27;, &#x27;cosmetics&#x27;, &#x27;veterinary&#x27;, &#x27;vet&#x27;, &#x27;sickly&#x27;, &#x27;emergency response&#x27;, &#x27;emergency&#x27;]
},
{
name: &#x27;savings&#x27;,
products: [&#x27;chama&#x27;, &#x27;group&#x27;, &#x27;savings&#x27;, &#x27;loan&#x27;, &#x27;silc&#x27;, &#x27;vsla&#x27;, &#x27;credit&#x27;, &#x27;finance&#x27;]
},
{
name: &#x27;shop&#x27;,
products: [&#x27;bag&#x27;, &#x27;bead&#x27;, &#x27;belt&#x27;, &#x27;bedding&#x27;, &#x27;jik&#x27;, &#x27;bed&#x27;, &#x27;cement&#x27;, &#x27;botique&#x27;, &#x27;boutique&#x27;, &#x27;lines&#x27;, &#x27;kibanda&#x27;, &#x27;kiosk&#x27;, &#x27;spareparts&#x27;,
&#x27;candy&#x27;, &#x27;cloth&#x27;, &#x27;electricals&#x27;, &#x27;mutumba&#x27;, &#x27;cafe&#x27;, &#x27;leso&#x27;, &#x27;lesso&#x27;, &#x27;duka&#x27;, &#x27;spare parts&#x27;, &#x27;socks&#x27;, &#x27;malimali&#x27;, &#x27;mitungi&#x27;,
&#x27;mali mali&#x27;, &#x27;hardware&#x27;, &#x27;detergent&#x27;, &#x27;detergents&#x27;, &#x27;dera&#x27;, &#x27;retail&#x27;, &#x27;kamba&#x27;, &#x27;pombe&#x27;, &#x27;pampers&#x27;, &#x27;pool&#x27;, &#x27;phone&#x27;, &#x27;simu&#x27;, &#x27;mangwe&#x27;,
&#x27;mikeka&#x27;, &#x27;movie&#x27;, &#x27;shop&#x27;, &#x27;acces&#x27;, &#x27;mchanga&#x27;, &#x27;uto&#x27;, &#x27;airtime&#x27;, &#x27;matress&#x27;, &#x27;mattress&#x27;, &#x27;mattresses&#x27;, &#x27;mpsea&#x27;, &#x27;mpesa&#x27;, &#x27;shirt&#x27;,
&#x27;wholesaler&#x27;, &#x27;perfume&#x27;, &#x27;playstation&#x27;, &#x27;tissue&#x27;, &#x27;vikapu&#x27;, &#x27;uniform&#x27;, &#x27;flowers&#x27;, &#x27;vitenge&#x27;, &#x27;utencils&#x27;, &#x27;utensils&#x27;, &#x27;station&#x27;,
&#x27;jewel&#x27;, &#x27;pool table&#x27;, &#x27;club&#x27;, &#x27;pub&#x27;, &#x27;bar&#x27;, &#x27;furniture&#x27;, &#x27;m-pesa&#x27;, &#x27;vyombo&#x27;]
},
{
name: &#x27;transport&#x27;,
products: [&#x27;kebeba&#x27;, &#x27;beba&#x27;, &#x27;bebabeba&#x27;, &#x27;bike&#x27;, &#x27;bicycle&#x27;, &#x27;matatu&#x27;, &#x27;boda&#x27;, &#x27;bodaboda&#x27;, &#x27;cart&#x27;, &#x27;carrier&#x27;, &#x27;tour&#x27;, &#x27;travel&#x27;, &#x27;driver&#x27;,
&#x27;dereva&#x27;, &#x27;tout&#x27;, &#x27;conductor&#x27;, &#x27;kubeba&#x27;, &#x27;tuktuk&#x27;, &#x27;taxi&#x27;, &#x27;piki&#x27;, &#x27;pikipiki&#x27;, &#x27;manamba&#x27;, &#x27;trasportion&#x27;, &#x27;mkokoteni&#x27;, &#x27;mover&#x27;,
&#x27;motorist&#x27;, &#x27;motorbike&#x27;, &#x27;transport&#x27;, &#x27;transpoter&#x27;, &#x27;gari&#x27;, &#x27;magari&#x27;, &#x27;makanga&#x27;, &#x27;car&#x27;]
},
{
name: &#x27;fuel/energy&#x27;,
products: [&#x27;timber&#x27;, &#x27;timberyard&#x27;, &#x27;biogas&#x27;, &#x27;charcol&#x27;, &#x27;charcoal&#x27;, &#x27;kuni&#x27;, &#x27;mbao&#x27;, &#x27;fuel&#x27;, &#x27;makaa&#x27;, &#x27;mafuta&#x27;, &#x27;moto&#x27;, &#x27;solar&#x27;, &#x27;stima&#x27;,
&#x27;fire&#x27;, &#x27;firewood&#x27;, &#x27;wood&#x27;, &#x27;oil&#x27;, &#x27;taa&#x27;, &#x27;gas&#x27;, &#x27;paraffin&#x27;, &#x27;parrafin&#x27;, &#x27;parafin&#x27;, &#x27;petrol&#x27;, &#x27;petro&#x27;, &#x27;kerosine&#x27;, &#x27;kerosene&#x27;,
&#x27;diesel&#x27;]
},
{
name: &#x27;other&#x27;,
products: [&#x27;other&#x27;, &#x27;none&#x27;, &#x27;unknown&#x27;, &#x27;none&#x27;]
}
];
/** A mock of curated genders */
const genders: Array&lt;string&gt; &#x3D; [&#x27;male&#x27;, &#x27;female&#x27;, &#x27;other&#x27;];
/** A mock of the tokens in the system. */
const tokens: Array&lt;Token&gt; &#x3D; [
2021-05-10 20:56:20 +02:00
{
name: &#x27;Giftable Reserve&#x27;, symbol: &#x27;GRZ&#x27;, address: &#x27;0xa686005CE37Dce7738436256982C3903f2E4ea8E&#x27;, supply: &#x27;1000000001000000000000000000&#x27;,
decimals: &#x27;18&#x27;, reserves: {}
2021-05-10 20:56:20 +02:00
},
{
name: &#x27;Demo Token&#x27;, symbol: &#x27;DEMO&#x27;, address: &#x27;0xc80D6aFF8194114c52AEcD84c9f15fd5c8abb187&#x27;, supply: &#x27;99999999999999998976&#x27;,
decimals: &#x27;18&#x27;, reserves: {&#x27;0xa686005CE37Dce7738436256982C3903f2E4ea8E&#x27;: {weight: &#x27;1000000&#x27;, balance: &#x27;99999999999999998976&#x27;}},
reserveRatio: &#x27;1000000&#x27;, owner: &#x27;0x3Da99AAD2D9CA01D131eFc3B17444b832B31Ff4a&#x27;
2021-05-10 20:56:20 +02:00
},
{
name: &#x27;Foo Token&#x27;, symbol: &#x27;FOO&#x27;, address: &#x27;0x9ceD86089f7aBB5A97B40eb0E7521e7aa308d354&#x27;, supply: &#x27;1000000000000000001014&#x27;,
decimals: &#x27;18&#x27;, reserves: {&#x27;0xa686005CE37Dce7738436256982C3903f2E4ea8E&#x27;: {weight: &#x27;1000000&#x27;, balance: &#x27;1000000000000000001014&#x27;}},
reserveRatio: &#x27;1000000&#x27;, owner: &#x27;0x3Da99AAD2D9CA01D131eFc3B17444b832B31Ff4a&#x27;
2021-05-10 20:56:20 +02:00
},
{
name: &#x27;testb&#x27;, symbol: &#x27;tstb&#x27;, address: &#x27;0xC63cFA91A3BFf41cE31Ff436f67D3ACBC977DB95&#x27;, supply: &#x27;99000&#x27;, decimals: &#x27;18&#x27;,
reserves: {&#x27;0xa686005CE37Dce7738436256982C3903f2E4ea8E&#x27;: {weight: &#x27;1000000&#x27;, balance: &#x27;99000&#x27;}}, reserveRatio: &#x27;1000000&#x27;,
owner: &#x27;0x3Da99AAD2D9CA01D131eFc3B17444b832B31Ff4a&#x27;
2021-05-10 20:56:20 +02:00
},
{
name: &#x27;testa&#x27;, symbol: &#x27;tsta&#x27;, address: &#x27;0x8fA4101ef19D0a078239d035659e92b278bD083C&#x27;, supply: &#x27;9981&#x27;, decimals: &#x27;18&#x27;,
reserves: {&#x27;0xa686005CE37Dce7738436256982C3903f2E4ea8E&#x27;: {weight: &#x27;1000000&#x27;, balance: &#x27;9981&#x27;}}, reserveRatio: &#x27;1000000&#x27;,
owner: &#x27;0x3Da99AAD2D9CA01D131eFc3B17444b832B31Ff4a&#x27;
2021-05-10 20:56:20 +02:00
},
{
name: &#x27;testc&#x27;, symbol: &#x27;tstc&#x27;, address: &#x27;0x4A6fA6bc3BfE4C9661bC692D9798425350C9e3D4&#x27;, supply: &#x27;100990&#x27;, decimals: &#x27;18&#x27;,
reserves: {&#x27;0xa686005CE37Dce7738436256982C3903f2E4ea8E&#x27;: {weight: &#x27;1000000&#x27;, balance: &#x27;100990&#x27;}}, reserveRatio: &#x27;1000000&#x27;,
owner: &#x27;0x3Da99AAD2D9CA01D131eFc3B17444b832B31Ff4a&#x27;
2021-05-10 20:56:20 +02:00
}
];
/** A mock of curated transaction types. */
2021-05-10 20:56:20 +02:00
const transactionTypes: Array&lt;string&gt; &#x3D; [&#x27;transactions&#x27;, &#x27;conversions&#x27;, &#x27;disbursements&#x27;, &#x27;rewards&#x27;, &#x27;reclamation&#x27;];
/**
* Intercepts HTTP requests and handles some specified requests internally.
* Provides a backend that can handle requests for certain data items.
*
* @implements HttpInterceptor
*/
2021-05-10 20:56:20 +02:00
@Injectable()
export class MockBackendInterceptor implements HttpInterceptor {
/**
* Intercepts HTTP requests.
*
* @param request - An outgoing HTTP request with an optional typed body.
* @param next - The next HTTP handler or the outgoing request dispatcher.
* @returns The response from the resolved request.
*/
2021-05-10 20:56:20 +02:00
intercept(request: HttpRequest&lt;any&gt;, next: HttpHandler): Observable&lt;HttpEvent&lt;any&gt;&gt; {
const { url, method, headers, body } &#x3D; request;
// wrap in delayed observable to simulate server api call\
// call materialize and dematerialize to ensure delay even is thrown
return of(null)
.pipe(mergeMap(handleRoute))
.pipe(materialize())
.pipe(delay(500))
.pipe(dematerialize());
/** Forward requests from select routes to their internal handlers. */
2021-05-10 20:56:20 +02:00
function handleRoute(): Observable&lt;any&gt; {
switch (true) {
case url.endsWith(&#x27;/accounttypes&#x27;) &amp;&amp; method &#x3D;&#x3D;&#x3D; &#x27;GET&#x27;:
return getAccountTypes();
2021-05-10 20:56:20 +02:00
case url.endsWith(&#x27;/actions&#x27;) &amp;&amp; method &#x3D;&#x3D;&#x3D; &#x27;GET&#x27;:
return getActions();
case url.match(/\/actions\/\d+$/) &amp;&amp; method &#x3D;&#x3D;&#x3D; &#x27;GET&#x27;:
return getActionById();
case url.match(/\/actions\/\d+$/) &amp;&amp; method &#x3D;&#x3D;&#x3D; &#x27;POST&#x27;:
return approveAction();
case url.endsWith(&#x27;/areanames&#x27;) &amp;&amp; method &#x3D;&#x3D;&#x3D; &#x27;GET&#x27;:
return getAreaNames();
case url.match(/\/areanames\/\w+$/) &amp;&amp; method &#x3D;&#x3D;&#x3D; &#x27;GET&#x27;:
return getAreaNameByLocation();
case url.endsWith(&#x27;/areatypes&#x27;) &amp;&amp; method &#x3D;&#x3D;&#x3D; &#x27;GET&#x27;:
return getAreaTypes();
case url.match(/\/areatypes\/\w+$/) &amp;&amp; method &#x3D;&#x3D;&#x3D; &#x27;GET&#x27;:
return getAreaTypeByArea();
case url.endsWith(&#x27;/categories&#x27;) &amp;&amp; method &#x3D;&#x3D;&#x3D; &#x27;GET&#x27;:
return getCategories();
case url.match(/\/categories\/\w+$/) &amp;&amp; method &#x3D;&#x3D;&#x3D; &#x27;GET&#x27;:
return getCategoryByProduct();
2021-05-10 20:56:20 +02:00
case url.endsWith(&#x27;/genders&#x27;) &amp;&amp; method &#x3D;&#x3D;&#x3D; &#x27;GET&#x27;:
return getGenders();
case url.endsWith(&#x27;/tokens&#x27;) &amp;&amp; method &#x3D;&#x3D;&#x3D; &#x27;GET&#x27;:
return getTokens();
case url.match(/\/tokens\/\w+$/) &amp;&amp; method &#x3D;&#x3D;&#x3D; &#x27;GET&#x27;:
return getTokenBySymbol();
case url.endsWith(&#x27;/transactiontypes&#x27;) &amp;&amp; method &#x3D;&#x3D;&#x3D; &#x27;GET&#x27;:
return getTransactionTypes();
2021-05-10 20:56:20 +02:00
default:
// pass through any requests not handled above
return next.handle(request);
}
}
// route functions
function approveAction(): Observable&lt;HttpResponse&lt;any&gt;&gt; {
const queriedAction: Action &#x3D; actions.find(action &#x3D;&gt; action.id &#x3D;&#x3D;&#x3D; idFromUrl());
queriedAction.approval &#x3D; body.approval;
const message: string &#x3D; &#x60;Action approval status set to ${body.approval} successfully!&#x60;;
return ok(message);
}
function getAccountTypes(): Observable&lt;HttpResponse&lt;any&gt;&gt; {
return ok(accountTypes);
2021-05-10 20:56:20 +02:00
}
function getActions(): Observable&lt;HttpResponse&lt;any&gt;&gt; {
return ok(actions);
2021-05-10 20:56:20 +02:00
}
function getActionById(): Observable&lt;HttpResponse&lt;any&gt;&gt; {
const queriedAction: Action &#x3D; actions.find(action &#x3D;&gt; action.id &#x3D;&#x3D;&#x3D; idFromUrl());
return ok(queriedAction);
2021-05-10 20:56:20 +02:00
}
function getAreaNames(): Observable&lt;HttpResponse&lt;any&gt;&gt; {
const areaNameList: Array&lt;string&gt; &#x3D; areaNames.map(areaName &#x3D;&gt; areaName.name);
return ok(areaNameList);
}
function getAreaNameByLocation(): Observable&lt;HttpResponse&lt;any&gt;&gt; {
const queriedAreaName: AreaName &#x3D; areaNames.find(areaName &#x3D;&gt; areaName.locations.includes(stringFromUrl()));
return ok(queriedAreaName.name);
}
function getAreaTypes(): Observable&lt;HttpResponse&lt;any&gt;&gt; {
const areaTypeList: Array&lt;string&gt; &#x3D; areaTypes.map(areaType &#x3D;&gt; areaType.name);
return ok(areaTypeList);
}
function getAreaTypeByArea(): Observable&lt;HttpResponse&lt;any&gt;&gt; {
const queriedAreaType: AreaType &#x3D; areaTypes.find(areaType &#x3D;&gt; areaType.area.includes(stringFromUrl()));
return ok(queriedAreaType.name);
}
function getCategories(): Observable&lt;HttpResponse&lt;any&gt;&gt; {
const categoryList: Array&lt;string&gt; &#x3D; categories.map(category &#x3D;&gt; category.name);
return ok(categoryList);
2021-05-10 20:56:20 +02:00
}
function getCategoryByProduct(): Observable&lt;HttpResponse&lt;any&gt;&gt; {
const queriedCategory: Category &#x3D; categories.find(category &#x3D;&gt; category.products.includes(stringFromUrl()));
return ok(queriedCategory.name);
2021-05-10 20:56:20 +02:00
}
function getGenders(): Observable&lt;HttpResponse&lt;any&gt;&gt; {
return ok(genders);
}
function getTokens(): Observable&lt;HttpResponse&lt;any&gt;&gt; {
return ok(tokens);
}
2021-05-10 20:56:20 +02:00
function getTokenBySymbol(): Observable&lt;HttpResponse&lt;any&gt;&gt; {
const queriedToken: Token &#x3D; tokens.find(token &#x3D;&gt; token.symbol &#x3D;&#x3D;&#x3D; stringFromUrl());
return ok(queriedToken);
2021-05-10 20:56:20 +02:00
}
function getTransactionTypes(): Observable&lt;HttpResponse&lt;any&gt;&gt; {
return ok(transactionTypes);
}
// helper functions
2021-05-10 20:56:20 +02:00
function error(message): Observable&lt;any&gt; {
return throwError({ status: 400, error: { message } });
}
function idFromUrl(): number {
const urlParts: Array&lt;string&gt; &#x3D; url.split(&#x27;/&#x27;);
return parseInt(urlParts[urlParts.length - 1], 10);
}
function ok(responseBody: any): Observable&lt;HttpResponse&lt;any&gt;&gt; {
return of(new HttpResponse({ status: 200, body: responseBody }));
}
2021-05-10 20:56:20 +02:00
function stringFromUrl(): string {
const urlParts: Array&lt;string&gt; &#x3D; url.split(&#x27;/&#x27;);
return urlParts[urlParts.length - 1];
}
}
}
/**
* Exports the MockBackendInterceptor as an Angular provider.
*
* @exports
*/
2021-05-10 20:56:20 +02:00
export const MockBackendProvider &#x3D; {
provide: HTTP_INTERCEPTORS,
useClass: MockBackendInterceptor,
multi: true
};
</code></pre>
</div>
</div>
</div><div class="search-results">
<div class="has-results">
<h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
<ul class="search-results-list"></ul>
</div>
<div class="no-results">
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
</div>
</div>
</div>
<!-- END CONTENT -->
</div>
</div>
<script>
var COMPODOC_CURRENT_PAGE_DEPTH = 1;
var COMPODOC_CURRENT_PAGE_CONTEXT = 'interceptor';
var COMPODOC_CURRENT_PAGE_URL = 'MockBackendInterceptor.html';
var MAX_SEARCH_RESULTS = 15;
</script>
<script src="../js/libs/custom-elements.min.js"></script>
<script src="../js/libs/lit-html.js"></script>
<!-- Required to polyfill modern browsers as code is ES5 for IE... -->
<script src="../js/libs/custom-elements-es5-adapter.js" charset="utf-8" defer></script>
<script src="../js/menu-wc.js" defer></script>
<script src="../js/libs/bootstrap-native.js"></script>
<script src="../js/libs/es6-shim.min.js"></script>
<script src="../js/libs/EventDispatcher.js"></script>
<script src="../js/libs/promise.min.js"></script>
<script src="../js/libs/zepto.min.js"></script>
<script src="../js/compodoc.js"></script>
<script src="../js/tabs.js"></script>
<script src="../js/menu.js"></script>
<script src="../js/libs/clipboard.min.js"></script>
<script src="../js/libs/prism.js"></script>
<script src="../js/sourceCode.js"></script>
<script src="../js/search/search.js"></script>
<script src="../js/search/lunr.min.js"></script>
<script src="../js/search/search-lunr.js"></script>
<script src="../js/search/search_index.js"></script>
<script src="../js/lazy-load-graphs.js"></script>
</body>
</html>