summaryrefslogtreecommitdiffstats
path: root/cds-ui/server
diff options
context:
space:
mode:
Diffstat (limited to 'cds-ui/server')
-rw-r--r--cds-ui/server/src/controllers/data-dictionary.controller.ts21
-rw-r--r--cds-ui/server/src/datasources/resource-dictionary.datasource-template.ts241
-rw-r--r--cds-ui/server/src/services/resource-dictionary.service.ts9
3 files changed, 152 insertions, 119 deletions
diff --git a/cds-ui/server/src/controllers/data-dictionary.controller.ts b/cds-ui/server/src/controllers/data-dictionary.controller.ts
index 076d714c6..8dbb7eb3c 100644
--- a/cds-ui/server/src/controllers/data-dictionary.controller.ts
+++ b/cds-ui/server/src/controllers/data-dictionary.controller.ts
@@ -64,13 +64,28 @@ export class DataDictionaryController {
}
},
})
+ async saveDefinition(@requestBody({
+ content: { 'application/json': { schema: { 'x-ts-type': JSON } } },
+ accepts: { 'application/json': { schema: { 'x-ts-type': JSON } } }
+ }) resourceDictionary: JSON): Promise<any> {
+ return await this.rdservice.saveDefinition(resourceDictionary);
+ }
+
+ @post('/resourcedictionary/definition', {
+ responses: {
+ '200': {
+ content: { 'application/json': {} }
+ }
+ },
+ })
async save(@requestBody({
content: { 'application/json': { schema: { 'x-ts-type': JSON } } },
accepts: { 'application/json': { schema: { 'x-ts-type': JSON } } }
}) resourceDictionary: JSON): Promise<any> {
- return await this.rdservice.save(resourceDictionary);
+ return await this.rdservice.saveDefinition(resourceDictionary);
}
-
+
+
@post('/resourcedictionary/search/by-names', {
responses: {
'200': {
@@ -114,7 +129,7 @@ export class DataDictionaryController {
@get('/resourcedictionary/model-type/by-definition/{type}', {
responses: {
'200': {
- content: {'application/json': {}},
+ content: { 'application/json': {} },
},
},
})
diff --git a/cds-ui/server/src/datasources/resource-dictionary.datasource-template.ts b/cds-ui/server/src/datasources/resource-dictionary.datasource-template.ts
index 7373d069e..07faa9a1a 100644
--- a/cds-ui/server/src/datasources/resource-dictionary.datasource-template.ts
+++ b/cds-ui/server/src/datasources/resource-dictionary.datasource-template.ts
@@ -1,4 +1,4 @@
-import {processorApiConfig} from '../config/app-config';
+import { processorApiConfig } from '../config/app-config';
export default {
"name": "resourceDictionary",
@@ -7,134 +7,151 @@ export default {
"crud": false,
"debug": true,
"operations": [{
- "template": {
- "method": "GET",
- "url": processorApiConfig.http.url + "/dictionary/{name}",
- "headers": {
- "accepts": "application/json",
- "content-type": "application/json",
- "authorization": processorApiConfig.http.authToken
- },
- "responsePath": "$.*"
+ "template": {
+ "method": "GET",
+ "url": processorApiConfig.http.url + "/dictionary/{name}",
+ "headers": {
+ "accepts": "application/json",
+ "content-type": "application/json",
+ "authorization": processorApiConfig.http.authToken
},
- "functions": {
- "getByName": ["name"]
-
- }
+ "responsePath": "$.*"
},
- {
- "template": {
- "method": "GET",
- "url": processorApiConfig.http.url + "/dictionary/source-mapping",
- "headers": {
- "accepts": "application/json",
- "content-type": "application/json",
- "authorization": processorApiConfig.http.authToken
- },
- "responsePath": "$.*"
- },
- "functions": {
- "getSourceMapping": []
+ "functions": {
+ "getByName": ["name"]
- }
- },
- {
- "template": {
- "method": "GET",
- "url": processorApiConfig.http.url + "/dictionary/search/{tags}",
- "headers": {
- "accepts": "application/json",
- "content-type": "application/json",
- "authorization": processorApiConfig.http.authToken
- },
- "responsePath": "$.*"
+ }
+ },
+ {
+ "template": {
+ "method": "GET",
+ "url": processorApiConfig.http.url + "/dictionary/source-mapping",
+ "headers": {
+ "accepts": "application/json",
+ "content-type": "application/json",
+ "authorization": processorApiConfig.http.authToken
},
- "functions": {
- "getByTags": ["tags"]
-
- }
+ "responsePath": "$.*"
},
- {
- "template": {
- "method": "POST",
- "url": processorApiConfig.http.url + "/dictionary",
- "headers": {
- "accepts": "application/json",
- "content-type": "application/json",
- "authorization": processorApiConfig.http.authToken
- },
- "body": "{resourceDictionary}",
- "responsePath": "$.*"
- },
- "functions": {
- "save": ["resourceDictionary"]
+ "functions": {
+ "getSourceMapping": []
- }
- },
- {
- "template": {
- "method": "POST",
- "url": processorApiConfig.http.url + "/dictionary/by-names",
- "headers": {
- "accepts": "application/json",
- "content-type": "application/json",
- "authorization": processorApiConfig.http.authToken
- },
- "body": "{resourceDictionaryList}",
- "responsePath": "$.*"
+ }
+ },
+ {
+ "template": {
+ "method": "GET",
+ "url": processorApiConfig.http.url + "/dictionary/search/{tags}",
+ "headers": {
+ "accepts": "application/json",
+ "content-type": "application/json",
+ "authorization": processorApiConfig.http.authToken
},
- "functions": {
- "searchbyNames": ["resourceDictionaryList"]
+ "responsePath": "$.*"
+ },
+ "functions": {
+ "getByTags": ["tags"]
- }
+ }
+ },
+ {
+ "template": {
+ "method": "POST",
+ "url": processorApiConfig.http.url + "/dictionary",
+ "headers": {
+ "accepts": "application/json",
+ "content-type": "application/json",
+ "authorization": processorApiConfig.http.authToken
+ },
+ "body": "{resourceDictionary}",
+ "responsePath": "$.*"
},
- {
- "template": {
- "method": "GET",
- "url": processorApiConfig.http.url + "/model-type/{source}",
- "headers": {
- "accepts": "application/json",
- "content-type": "application/json",
- "authorization": processorApiConfig.http.authToken
- },
- "responsePath": "$.*"
+ "functions": {
+ "save": ["resourceDictionary"]
+
+ }
+ },
+ {
+ "template": {
+ "method": "POST",
+ "url": processorApiConfig.http.url + "/dictionary/definition",
+ "headers": {
+ "accepts": "application/json",
+ "content-type": "application/json",
+ "authorization": processorApiConfig.http.authToken
},
- "functions": {
- "getModelType": ["source"]
+ "body": "{resourceDictionary}",
+ "responsePath": "$.*"
+ },
+ "functions": {
+ "saveDefinition": ["resourceDictionary"]
- }
+ }
+ },
+ {
+ "template": {
+ "method": "POST",
+ "url": processorApiConfig.http.url + "/dictionary/by-names",
+ "headers": {
+ "accepts": "application/json",
+ "content-type": "application/json",
+ "authorization": processorApiConfig.http.authToken
+ },
+ "body": "{resourceDictionaryList}",
+ "responsePath": "$.*"
},
- {
- "template": {
- "method": "GET",
- "url": processorApiConfig.http.url + "/model-type/by-definition/data_type",
- "headers": {
- "accepts": "application/json",
- "content-type": "application/json",
- "authorization": processorApiConfig.http.authToken
- },
- "responsePath": "$.*"
+ "functions": {
+ "searchbyNames": ["resourceDictionaryList"]
+
+ }
+ },
+ {
+ "template": {
+ "method": "GET",
+ "url": processorApiConfig.http.url + "/model-type/{source}",
+ "headers": {
+ "accepts": "application/json",
+ "content-type": "application/json",
+ "authorization": processorApiConfig.http.authToken
},
- "functions": {
- "getDataTypes": []
+ "responsePath": "$.*"
+ },
+ "functions": {
+ "getModelType": ["source"]
- }
+ }
+ },
+ {
+ "template": {
+ "method": "GET",
+ "url": processorApiConfig.http.url + "/model-type/by-definition/data_type",
+ "headers": {
+ "accepts": "application/json",
+ "content-type": "application/json",
+ "authorization": processorApiConfig.http.authToken
+ },
+ "responsePath": "$.*"
},
- {
- "template": {
- "method": "GET",
- "url": processorApiConfig.http.url + "/model-type/by-definition/{type}",
- "headers": {
- "accepts": "application/json",
- "content-type": "application/json",
- "authorization": processorApiConfig.http.authToken
- },
- "responsePath": "$.*"
+ "functions": {
+ "getDataTypes": []
+
+ }
+ },
+ {
+ "template": {
+ "method": "GET",
+ "url": processorApiConfig.http.url + "/model-type/by-definition/{type}",
+ "headers": {
+ "accepts": "application/json",
+ "content-type": "application/json",
+ "authorization": processorApiConfig.http.authToken
},
- "functions": {
- "getResourceDictionaryByType": ["type"]
+ "responsePath": "$.*"
+ },
+ "functions": {
+ "getResourceDictionaryByType": ["type"]
- }
}
+ }
]
};
diff --git a/cds-ui/server/src/services/resource-dictionary.service.ts b/cds-ui/server/src/services/resource-dictionary.service.ts
index a36c7fe75..6bf3f06ae 100644
--- a/cds-ui/server/src/services/resource-dictionary.service.ts
+++ b/cds-ui/server/src/services/resource-dictionary.service.ts
@@ -1,12 +1,13 @@
-import {getService} from '@loopback/service-proxy';
-import {inject, Provider} from '@loopback/core';
-import {ResourceDictionaryDataSource} from '../datasources';
+import { getService } from '@loopback/service-proxy';
+import { inject, Provider } from '@loopback/core';
+import { ResourceDictionaryDataSource } from '../datasources';
export interface ResourceDictionaryService {
getByName(name: string): Promise<JSON>;
getSourceMapping(): Promise<JSON>;
getByTags(tags: string): Promise<JSON>;
save(resourceDictionary: JSON): Promise<JSON>;
+ saveDefinition(resourceDictionary: JSON): Promise<JSON>;
searchbyNames(resourceDictionaryList: JSON): Promise<JSON>;
getModelType(source: string): Promise<JSON>;
getDataTypes(): Promise<JSON>;
@@ -18,7 +19,7 @@ export class ResourceDictionaryServiceProvider implements Provider<ResourceDicti
// resourceDictionary must match the name property in the datasource json file
@inject('datasources.resourceDictionary')
protected dataSource: ResourceDictionaryDataSource = new ResourceDictionaryDataSource(),
- ) {}
+ ) { }
value(): Promise<ResourceDictionaryService> {
return getService(this.dataSource);