summaryrefslogtreecommitdiffstats
path: root/public/src/app/rule-engine/host/host.service.ts
diff options
context:
space:
mode:
authorStone, Avi (as206k) <as206k@att.com>2018-04-12 16:36:39 +0300
committerStone, Avi (as206k) <as206k@att.com>2018-04-12 16:36:39 +0300
commit9b2ceb347a3371819fcad6bbe2268203afecaf4e (patch)
treefbb5ea2c147d71dfeeec0882b215423e7b7206b4 /public/src/app/rule-engine/host/host.service.ts
parent72dc8e3298d3e4315cdd9717b778671cb0b625bc (diff)
DCAE-D fe initial commit
DCAE-D fe initial commit Change-Id: Ica8ccb7c7ef769c969664d1e168d205eb9fc67f2 Issue-ID: SDC-1218 Signed-off-by: Stone, Avi (as206k) <as206k@att.com>
Diffstat (limited to 'public/src/app/rule-engine/host/host.service.ts')
-rw-r--r--public/src/app/rule-engine/host/host.service.ts56
1 files changed, 56 insertions, 0 deletions
diff --git a/public/src/app/rule-engine/host/host.service.ts b/public/src/app/rule-engine/host/host.service.ts
new file mode 100644
index 0000000..7918d30
--- /dev/null
+++ b/public/src/app/rule-engine/host/host.service.ts
@@ -0,0 +1,56 @@
+import { Injectable } from '@angular/core';
+import { HostParams } from './host-params';
+import { ExitMode } from './exit-mode.enum';
+
+@Injectable()
+export class HostService {
+ /* Public Members */
+
+ public static getParams(): HostParams {
+ return this.getQueryParamsObj(window.location.search) as HostParams;
+ }
+
+ public static enterModifyRule(): void {
+ this.postMessage('modifyRule', null);
+ }
+
+ public static exitModifyRule(): void {
+ this.postMessage('ruleList', null);
+ }
+
+ public static disableLoader(): void {
+ this.postMessage('disable-loader', null);
+ }
+
+ public static exit(mode: ExitMode, data: string): void {
+ if (mode === ExitMode.Cancel) {
+ this.postMessage('exit', null);
+ } else if (mode === ExitMode.Done) {
+ this.postMessage('exit', data);
+ }
+ }
+
+ /* Private Methods */
+
+ private static postMessage(eventName: string, data: string): void {
+ window.parent.postMessage(
+ {
+ type: eventName,
+ data: data
+ },
+ '*'
+ );
+ }
+
+ private static getQueryParamsObj(query: string): object {
+ return query
+ .substring(1) // removes '?' that always appears as prefix to the query-string
+ .split('&') // splits query-string to "key=value" strings
+ .map(p => p.split('=')) // splits each "key=value" string to [key,value] array
+ .reduce((res, p) => {
+ // converts to a dictionary (object) of params
+ res[p[0]] = p[1];
+ return res;
+ }, {});
+ }
+}