Merge "Move Enrichment Producer Logic from backend"
[portal/nonrtric-controlpanel.git] / webapp-frontend / src / app / interceptor.mock.ts
1 /*-
2  * ========================LICENSE_START=================================
3  * O-RAN-SC
4  * %%
5  * Copyright (C) 2021 Nordix Foundation
6  * %%
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ========================LICENSE_END===================================
19  */
20
21 import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse } from '@angular/common/http';
22 import { Injectable, Injector } from '@angular/core';
23 import { Observable, of } from 'rxjs';
24 import * as policyinstances1 from './mock/policy-instance-1.json';
25 import * as policies from './mock/policies.json';
26 import * as policyinstances2 from './mock/policy-instance-2.json';
27 import * as policyinstances1Status from './mock/policy-instance-1-status.json';
28 import * as policyinstances2Status from './mock/policy-instance-2-status.json';
29 import * as eijobsProd1 from './mock/ei-jobs-producer1.json';
30 import * as eijobsProd2 from './mock/ei-jobs-producer2.json';
31 import * as eiProducerIds from './mock/ei-producerids.json';
32 import * as eiproducer1 from './mock/ei-producer1.json';
33 import * as eiproducer2 from './mock/ei-producer2.json';
34 import * as eiproducerstatus1 from './mock/ei-producer-status1.json';
35 import * as eiproducerstatus2 from './mock/ei-producer-status2.json';
36 import * as policytypesList from './mock/policy-types.json';
37 import * as policytypes1 from './mock/policy-type1.json';
38 import * as policyinstanceedit from './mock/policy-instance-edit.json';
39 import * as rics from './mock/rics.json';
40 import * as ric1 from './mock/ric1.json';
41 import * as ric2 from './mock/ric2.json';
42
43 const urls = [
44     {
45         url: '/a1-policy/v2/policy-types',
46         json: policytypesList
47     },
48     {
49         url: '/a1-policy/v2/policy-types/',
50         json: policytypes1
51     },
52     {
53         url: '/a1-policy/v2/policy-types/1',
54         json: policytypes1
55     },
56     {
57         url: '/a1-policy/v2/policies?policytype_id=',
58         json: policies
59     },
60     {
61         url: '/a1-policy/v2/policies?policytype_id=1',
62         json: policies
63     },
64     {
65         url: '/a1-policy/v2/policies/2000',
66         json: policyinstances1
67     },
68     {
69         url: '/a1-policy/v2/policies/2100',
70         json: policyinstances2
71     },
72     {
73         url: '/a1-policy/v2/policies/2000/status',
74         json: policyinstances1Status
75     },
76     {
77         url: '/a1-policy/v2/policies/2100/status',
78         json: policyinstances2Status
79     },
80     {
81         url: '/a1-policy/v2/policies/2000?type=',
82         json: policyinstanceedit
83     },
84     {
85         url: '/a1-policy/v2/policies/2100?type=',
86         json: policyinstanceedit
87     },
88     {
89         url: '/a1-policy/v2/policies/2000?type=1',
90         json: policyinstanceedit
91     },
92     {
93         url: '/a1-policy/v2/policies/2100?type=1',
94         json: policyinstanceedit
95     },
96     {
97         url: '/a1-policy/v2/policies/2000?ric=ric1&type=1',
98         json: ''
99     },
100     {
101         url: '/a1-policy/v2/rics?policytype_id=1',
102         json: ric1
103     },
104     {
105         url: '/a1-policy/v2/rics?policytype_id=',
106         json: ric2
107     },
108     {
109         url: 'api/policy/rics?policyType=1',
110         json: rics
111     },
112     {
113         url: 'api/policy/rics?policyType=2',
114         json: rics
115     },
116     {
117         url: '/ei-producer/v1/eiproducers',
118         json: eiProducerIds
119     },
120     {
121         url: '/ei-producer/v1/eiproducers/producer1',
122         json: eiproducer1
123     },
124     {
125         url: '/ei-producer/v1/eiproducers/producer2',
126         json: eiproducer2
127     },
128     {
129         url: '/ei-producer/v1/eiproducers/producer1/status',
130         json: eiproducerstatus1
131     },
132     {
133         url: '/ei-producer/v1/eiproducers/producer2/status',
134         json: eiproducerstatus2
135     },
136     {
137         url: '/ei-producer/v1/eiproducers/producer1/eijobs',
138         json: eijobsProd1
139     },
140     {
141         url: '/ei-producer/v1/eiproducers/producer2/eijobs',
142         json: eijobsProd2
143     }
144 ];
145
146 @Injectable()
147 export class HttpMockRequestInterceptor implements HttpInterceptor {
148     constructor(private injector: Injector) { }
149
150     intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
151         if (request.method === "PUT" && request.url.includes("policies")) {
152             console.log('Answered PUT policy ' + request.url);
153             return of(new HttpResponse({ status: 200 }));
154         }
155         for (const element of urls) {
156             if (request.url === element.url) {
157                 console.log('Loaded from stub json : ' + request.url);
158                 if (request.method === 'DELETE') {
159                     return of(new HttpResponse({ status: 204 }));
160                 }
161                 return of(new HttpResponse({ status: 200, body: ((element.json) as any).default }));
162             }
163         }
164         console.log('Loaded from mock http call :' + request.url);
165         return next.handle(request);
166     }
167 }