9a781d6b8ed756882a716e87ac39b3079657822b
[ccsdk/cds.git] / cds-ui / server / src / services / resource-dictionary.service.ts
1 import {getService} from '@loopback/service-proxy';
2 import {inject, Provider} from '@loopback/core';
3 import {ResourceDictionaryDataSource} from '../datasources';
4
5 export interface ResourceDictionaryService {
6   getByName(name: string): Promise<JSON>;
7   getSourceMapping(): Promise<JSON>;
8   getByTags(tags: string): Promise<JSON>;
9   save(resourceDictionary: JSON): Promise<JSON>;
10   searchbyNames(resourceDictionaryList: JSON): Promise<JSON>;  
11   getModelType(source: string): Promise<JSON>;
12 }
13
14 export class ResourceDictionaryServiceProvider implements Provider<ResourceDictionaryService> {
15   constructor(
16     // resourceDictionary must match the name property in the datasource json file
17     @inject('datasources.resourceDictionary')
18     protected dataSource: ResourceDictionaryDataSource = new ResourceDictionaryDataSource(),
19   ) {}
20
21   value(): Promise<ResourceDictionaryService> {
22     return getService(this.dataSource);
23   }
24 }