summaryrefslogtreecommitdiffstats
path: root/cds-ui/designer-client/src/app/common
diff options
context:
space:
mode:
Diffstat (limited to 'cds-ui/designer-client/src/app/common')
-rw-r--r--cds-ui/designer-client/src/app/common/constants/app-constants.ts117
-rw-r--r--cds-ui/designer-client/src/app/common/core/services/api.service.ts51
-rw-r--r--cds-ui/designer-client/src/app/common/core/services/api.typed.service.ts51
-rw-r--r--cds-ui/designer-client/src/app/common/core/stores/Store.ts22
-rw-r--r--cds-ui/designer-client/src/app/common/model/page.ts21
5 files changed, 262 insertions, 0 deletions
diff --git a/cds-ui/designer-client/src/app/common/constants/app-constants.ts b/cds-ui/designer-client/src/app/common/constants/app-constants.ts
new file mode 100644
index 000000000..cfe8061f3
--- /dev/null
+++ b/cds-ui/designer-client/src/app/common/constants/app-constants.ts
@@ -0,0 +1,117 @@
+/*
+============LICENSE_START==========================================
+===================================================================
+Copyright (C) 2018 IBM Intellectual Property. All rights reserved.
+
+Modifications Copyright (C) 2019 Orange
+
+===================================================================
+
+Unless otherwise specified, all software contained herein is licensed
+under the Apache License, Version 2.0 (the License);
+you may not use this software except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+============LICENSE_END============================================
+*/
+export const GlobalContants = {
+ endpoints: {},
+ cbawizard: {
+ stepsRequired:
+ {
+ stepCount: 4,
+ steps: [{
+ name: 'CBA Metadata',
+ componentURL: '/controllerBlueprint/selectTemplate',
+ label: 'CBA Metadata',
+ link: '/blueprint/selectTemplate',
+ index: 0,
+ component: 'SelectTemplateComponent'
+ },
+ {
+ name: 'Controller Blueprint Designer',
+ componentURL: '/controllerBlueprint/modifyTemplate',
+ label: 'Controller Blueprint Designer',
+ link: '/blueprint/modifyTemplate',
+ index: 1,
+ component: 'ModifyTemplateComponent'
+ },
+ {
+ name: 'Test',
+ componentURL: '/controllerBlueprint/testTemplate',
+ label: 'Test',
+ link: '/blueprint/testTemplate',
+ index: 2,
+ component: 'TestTemplateComponent'
+ },
+ {
+ name: 'Deploy',
+ componentURL: '/controllerBlueprint/deployTemplate',
+ label: 'Deploy',
+ link: '/blueprint/deployTemplate',
+ index: 3,
+ component: 'DeployTemplateComponent'
+ }]
+ }
+ },
+ datadictionary: {
+ stepsRequired:
+ {
+ stepCount: 3,
+ steps: [{
+ name: 'Resource Creation', componentURL: '/dataDictionary/selectTemplate',
+ label: 'Resource Creation',
+ component: 'ResourceCreationComponent'
+
+ },
+ {
+ name: 'Edit/Validate', componentURL: '/dataDictionary/modifyTemplate',
+ label: 'Edit/Validate',
+ component: 'ResourceEditComponent'
+ },
+ {
+ name: 'Save', componentURL: '/dataDictionary/saveTemplate',
+ label: 'Save Resource',
+ component: 'SaveResourceComponent'
+ }]
+ }
+
+ }
+};
+
+export const BlueprintURLs = {
+ getAllBlueprints: '/controllerblueprint/all',
+ getPagedBlueprints: '/controllerblueprint/paged',
+ searchByTag: '/controllerblueprint/searchByTags/',
+ save: '/controllerblueprint/create-blueprint',
+ publish: '/controllerblueprint/publish',
+ enrich: '/controllerblueprint/enrich-blueprint',
+ download: '/controllerblueprint/download-blueprint/',
+ deploy: '/controllerblueprint/deploy-blueprint',
+ getMetaDate: '/controllerblueprint/meta-data/',
+ countOfAllBluePrints: '/controllerblueprint/list/count',
+ getMetaDatePageable: '/controllerblueprint/metadata/paged'
+};
+
+export const ResourceDictionaryURLs = {
+ saveResourceDictionary: '/resourcedictionary/save',
+ searchResourceDictionaryByTags: '/resourcedictionary/search',
+ searchResourceDictionaryByName: '',
+ getSources: '/resourcedictionary/source-mapping',
+ getModelType: '/resourcedictionary/model-type',
+ getDataType: '/resourcedictionary/model-type/by-definition/data_type'
+};
+
+export const ControllerCatalogURLs = {
+ searchControllerCatalogByTags: '/controllercatalog/search',
+ saveControllerCatalog: '/controllercatalog/save',
+ getDefinition: '/controllercatalog/model-type/by-definition',
+ getDerivedFrom: '/controllercatalog/model-type/by-derivedfrom'
+};
diff --git a/cds-ui/designer-client/src/app/common/core/services/api.service.ts b/cds-ui/designer-client/src/app/common/core/services/api.service.ts
new file mode 100644
index 000000000..de8aab886
--- /dev/null
+++ b/cds-ui/designer-client/src/app/common/core/services/api.service.ts
@@ -0,0 +1,51 @@
+/*
+============LICENSE_START==========================================
+===================================================================
+Copyright (C) 2018 IBM Intellectual Property. All rights reserved.
+
+Modifications Copyright (C) 2019 Orange
+
+===================================================================
+
+Unless otherwise specified, all software contained herein is licensed
+under the Apache License, Version 2.0 (the License);
+you may not use this software except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+============LICENSE_END============================================
+*/
+
+import {Injectable} from '@angular/core';
+import {HttpClient, HttpHeaders, HttpResponse, HttpHeaderResponse, HttpParams} from '@angular/common/http';
+import {Observable, of} from 'rxjs';
+
+@Injectable()
+export class ApiService {
+
+ constructor(private httpClient: HttpClient) {
+ }
+
+ get(url: string, params?: {}): Observable<any> {
+ console.log('params', params);
+ let httpParams = new HttpParams();
+ for (const key in params) {
+ if (params.hasOwnProperty(key)) {
+ httpParams = httpParams.append(key, params[key]);
+ }
+ }
+ const options = {params: httpParams};
+ return this.httpClient.get(url, options);
+ }
+
+ post(url: string, body: any | null, options?: any): Observable<any> {
+
+ return this.httpClient.post(url, body, options);
+ }
+}
diff --git a/cds-ui/designer-client/src/app/common/core/services/api.typed.service.ts b/cds-ui/designer-client/src/app/common/core/services/api.typed.service.ts
new file mode 100644
index 000000000..2f3778c1a
--- /dev/null
+++ b/cds-ui/designer-client/src/app/common/core/services/api.typed.service.ts
@@ -0,0 +1,51 @@
+/*
+============LICENSE_START==========================================
+===================================================================
+Copyright (C) 2018 IBM Intellectual Property. All rights reserved.
+
+Modifications Copyright (C) 2019 Orange
+
+===================================================================
+
+Unless otherwise specified, all software contained herein is licensed
+under the Apache License, Version 2.0 (the License);
+you may not use this software except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+============LICENSE_END============================================
+*/
+
+import { Injectable } from '@angular/core';
+import { HttpClient, HttpHeaders, HttpResponse, HttpHeaderResponse, HttpParams } from '@angular/common/http';
+import { Observable, of } from 'rxjs';
+
+@Injectable()
+export class ApiService<T> {
+
+ constructor(private httpClient: HttpClient) {
+ }
+
+ get(url: string, params?: {}): Observable<T[]> {
+ console.log('params', params);
+ let httpParams = new HttpParams();
+ for (const key in params) {
+ if (params.hasOwnProperty(key)) {
+ httpParams = httpParams.append(key, params[key]);
+ }
+ }
+ const options = {params: httpParams};
+ return this.httpClient.get<T[]>(url, options);
+ }
+
+ post(url: string, body: any | null, options?: any): Observable<any> {
+
+ return this.httpClient.post(url, body, options);
+ }
+}
diff --git a/cds-ui/designer-client/src/app/common/core/stores/Store.ts b/cds-ui/designer-client/src/app/common/core/stores/Store.ts
new file mode 100644
index 000000000..1d5b0afc1
--- /dev/null
+++ b/cds-ui/designer-client/src/app/common/core/stores/Store.ts
@@ -0,0 +1,22 @@
+import {Observable, BehaviorSubject} from 'rxjs';
+import { Injectable } from '@angular/core';
+
+export class Store<T> {
+ state$: Observable<T>;
+ private subject: BehaviorSubject<T>;
+
+ protected constructor(initialState: T) {
+ this.subject = new BehaviorSubject(initialState);
+ this.state$ = this.subject.asObservable();
+ }
+
+ get state(): T {
+ return this.subject.getValue();
+ }
+
+ protected setState(nextState: T): void {
+ console.log('setting state', this.subject);
+ this.subject.next(nextState);
+ }
+
+}
diff --git a/cds-ui/designer-client/src/app/common/model/page.ts b/cds-ui/designer-client/src/app/common/model/page.ts
new file mode 100644
index 000000000..7c3a0c4f3
--- /dev/null
+++ b/cds-ui/designer-client/src/app/common/model/page.ts
@@ -0,0 +1,21 @@
+export class Page<T> {
+ content: T[];
+ pageable: {
+ sort: {
+ unsorted: boolean,
+ sorted: boolean,
+ empty: boolean
+ };
+
+ offset: number,
+ pageSize: number,
+ pageNumber: number,
+ paged: boolean,
+ unpaged: boolean,
+ };
+ totalPages: number;
+ totalElements: number;
+ last: boolean;
+ first: boolean;
+ empty: boolean;
+}