diff options
Diffstat (limited to 'catalog-ui/src/app/ng2/services/plugins.service.ts')
-rw-r--r-- | catalog-ui/src/app/ng2/services/plugins.service.ts | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/catalog-ui/src/app/ng2/services/plugins.service.ts b/catalog-ui/src/app/ng2/services/plugins.service.ts index 7a85b6e1b6..2a3b68fe25 100644 --- a/catalog-ui/src/app/ng2/services/plugins.service.ts +++ b/catalog-ui/src/app/ng2/services/plugins.service.ts @@ -1,10 +1,19 @@ -import { Injectable } from '@angular/core'; -import {Plugin, PluginsConfiguration} from "app/models"; +import { Injectable, Inject } from '@angular/core'; +import {Observable} from 'rxjs/Observable'; +import {Http, Response} from '@angular/http'; +import {IApi, IAppConfigurtaion, Plugin, Plugins, PluginsConfiguration} from "app/models"; +import {ISdcConfig, SdcConfigToken} from "../config/sdc-config.config"; @Injectable() export class PluginsService { - constructor() { + private baseUrl; + public configuration: IAppConfigurtaion; + public api: IApi; + + constructor(private http: Http, @Inject(SdcConfigToken) private sdcConfig:ISdcConfig) { + this.api = this.sdcConfig.api; + this.baseUrl = this.api.root + this.sdcConfig.api.component_api_root; } public getPluginByStateUrl = (stateUrl: string) => { @@ -20,4 +29,12 @@ export class PluginsService { plugin.pluginDisplayOptions["context"].displayRoles.includes(userRole) && plugin.pluginDisplayOptions["context"].displayContext.indexOf(contextType) !== -1 }; + + public isPluginOnline = (pluginId: string): Observable<boolean> => { + let url:string = this.api.no_proxy_root + this.api.GET_plugin_online_state.replace(':pluginId', pluginId); + return this.http.get(url).map((res: Response) => { + return res.json() + }) + .catch(error => Observable.of(false)); + } } |