import { getService } from '@loopback/service-proxy'; import { inject, Provider } from '@loopback/core'; import { BlueprintDataSource } from '../datasources'; export interface BlueprintService { getOneBluePrint(id: string): any; deleteBluePrint(id: string): any; getAllblueprints(): Promise<any>; getBlueprintsByKeyword(keyword: string): Promise<any>; getByTags(tags: string): Promise<JSON>; getPagedBlueprints(limit: number, offset: number, sort: string, sortType: String): Promise<any>; getMetaDataPagedBlueprints(limit: number, offset: number, sort: string, keyword: string, sortType: String): Promise<any>; getBlueprintByNameAndVersion(name: string, version: string): Promise<any>; } export class BlueprintServiceProvider implements Provider<BlueprintService> { constructor( // blueprint must match the name property in the datasource json file @inject('datasources.blueprint') protected dataSource: BlueprintDataSource = new BlueprintDataSource(), ) { } value(): Promise<BlueprintService> { return getService(this.dataSource); } }