<!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>

            </p>


            <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="1097"
                            class="link-to-prism">src/app/_helpers/mock-backend.ts:1097</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Intercepts HTTP requests.</p>
</div>

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                    <td>Description</td>
                                </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>
                                </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>
                                </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>

                    </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
import { Observable, of, throwError } from &#x27;rxjs&#x27;;
import { delay, dematerialize, materialize, mergeMap } from &#x27;rxjs/operators&#x27;;

// Application imports
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. */
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; [
  {
    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;,
    ],
  },
  {
    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;,
    ],
  },
  {
    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;,
    ],
  },
  {
    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;,
    ],
  },
  {
    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;,
    ],
  },
  {
    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;],
  },
];

/** 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 */
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; [
  {
    name: &#x27;Giftable Reserve&#x27;,
    symbol: &#x27;GRZ&#x27;,
    address: &#x27;0xa686005CE37Dce7738436256982C3903f2E4ea8E&#x27;,
    supply: &#x27;1000000001000000000000000000&#x27;,
    decimals: &#x27;18&#x27;,
    reserves: {},
  },
  {
    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;,
  },
  {
    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;,
  },
  {
    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;,
  },
  {
    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;,
  },
  {
    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;,
  },
];

/** A mock of curated  transaction types. */
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.
 */
@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.
   */
  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. */
    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();
        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();
        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();
        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);
    }

    function getActions(): Observable&lt;HttpResponse&lt;any&gt;&gt; {
      return ok(actions);
    }

    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);
    }

    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);
    }

    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);
    }

    function getGenders(): Observable&lt;HttpResponse&lt;any&gt;&gt; {
      return ok(genders);
    }

    function getTokens(): Observable&lt;HttpResponse&lt;any&gt;&gt; {
      return ok(tokens);
    }

    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);
    }

    function getTransactionTypes(): Observable&lt;HttpResponse&lt;any&gt;&gt; {
      return ok(transactionTypes);
    }

    // helper functions

    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 }));
    }

    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. */
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>