From 43bbe44b1babdcfc91ad47df2b3c6a93e525b6a6 Mon Sep 17 00:00:00 2001 From: Ahmed Abbas Date: Wed, 13 Nov 2019 11:09:25 +0200 Subject: add API to list blueprints with pagination in loopback server Issue-ID: CCSDK-1770 Signed-off-by: Ahmed Abbas Change-Id: I705135af4898db68eeddb8b67bf62fbbea6921ac --- .../src/controllers/blueprint-rest.controller.ts | 15 ++++++++ .../datasources/blueprint.datasource-template.ts | 41 +++++++++++++++------- cds-ui/server/src/services/blueprint.service.ts | 1 + 3 files changed, 44 insertions(+), 13 deletions(-) diff --git a/cds-ui/server/src/controllers/blueprint-rest.controller.ts b/cds-ui/server/src/controllers/blueprint-rest.controller.ts index b52952826..49ecb9df1 100644 --- a/cds-ui/server/src/controllers/blueprint-rest.controller.ts +++ b/cds-ui/server/src/controllers/blueprint-rest.controller.ts @@ -69,6 +69,21 @@ export class BlueprintRestController { return await this.bpservice.getAllblueprints(); } + @get('/controllerblueprint/paged', { + responses: { + '200': { + description: 'Blueprint model instance with pagination', + content: { 'application/json': { schema: { 'x-ts-type': Blueprint } } }, + }, + }, + }) + async getPagedBlueprints( + @param.query.number('limit') limit: number, + @param.query.number('offset') offset: number, + @param.query.string('sort') sort: string) { + return await this.bpservice.getPagedBueprints(limit, offset, sort); + } + @get('/controllerblueprint/meta-data/{keyword}', { responses: { '200': { diff --git a/cds-ui/server/src/datasources/blueprint.datasource-template.ts b/cds-ui/server/src/datasources/blueprint.datasource-template.ts index b0aaf01eb..914021887 100644 --- a/cds-ui/server/src/datasources/blueprint.datasource-template.ts +++ b/cds-ui/server/src/datasources/blueprint.datasource-template.ts @@ -38,21 +38,36 @@ export default { } }, - { - "template": { - "method": "GET", - "url": processorApiConfig.http.url + "/blueprint-model/meta-data/{keyword}", - "headers": { - "accepts": "application/json", - "content-type": "application/json", - "authorization": processorApiConfig.http.authToken - }, - "responsePath": "$.*" + { + "template": { + "method": "GET", + "url": processorApiConfig.http.url + "/blueprint-model/meta-data/{keyword}", + "headers": { + "accepts": "application/json", + "content-type": "application/json", + "authorization": processorApiConfig.http.authToken }, - "functions": { - "getBlueprintsByKeyword": ["keyword"] + "responsePath": "$.*" + }, + "functions": { + "getBlueprintsByKeyword": ["keyword"] - } + } + }, + { + "template": { + "method": "GET", + "url": processorApiConfig.http.url + "/blueprint-model/paged?limit={limit}&offset={offset}&sort={sort}", + "headers": { + "accepts": "application/json", + "content-type": "application/json", + "authorization": processorApiConfig.http.authToken + }, + "responsePath": "$", }, + "functions": { + "getPagedBueprints": ["limit","offset", "sort"], + } + }, ] }; diff --git a/cds-ui/server/src/services/blueprint.service.ts b/cds-ui/server/src/services/blueprint.service.ts index 7952859d1..bc93fa1be 100644 --- a/cds-ui/server/src/services/blueprint.service.ts +++ b/cds-ui/server/src/services/blueprint.service.ts @@ -6,6 +6,7 @@ export interface BlueprintService { getAllblueprints(): Promise; getBlueprintsByKeyword(keyword: string): Promise; getByTags(tags: string): Promise; + getPagedBueprints(limit: number, offset: number , sort: string): Promise; } export class BlueprintServiceProvider implements Provider { -- cgit 1.2.3-korg