From 4d551f789093d30f3cdc54bc03c750195318897c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20Bajto=C5=A1?= Date: Tue, 1 Aug 2017 11:19:27 +0200 Subject: [PATCH] fixup! rename getApiSpec() to getControllerSpec() --- packages/core/src/application.ts | 9 ++++--- packages/core/src/http-handler.ts | 2 +- packages/core/src/router/metadata.ts | 2 +- .../core/test/unit/router/metadata.test.ts | 24 +++++++++---------- .../unit/router/metadata/param-body.test.ts | 4 ++-- .../router/metadata/param-form-data.test.ts | 10 ++++---- .../unit/router/metadata/param-header.test.ts | 10 ++++---- .../unit/router/metadata/param-path.test.ts | 10 ++++---- .../unit/router/metadata/param-query.test.ts | 10 ++++---- .../test/unit/router/metadata/param.test.ts | 8 +++---- 10 files changed, 46 insertions(+), 43 deletions(-) diff --git a/packages/core/src/application.ts b/packages/core/src/application.ts index cbd9d339dc66..b1bd0952c35a 100644 --- a/packages/core/src/application.ts +++ b/packages/core/src/application.ts @@ -24,7 +24,7 @@ import { } from '.'; import {ServerRequest, ServerResponse, createServer} from 'http'; import {Component, mountComponent} from './component'; -import {getApiSpec} from './router/metadata'; +import {getControllerSpec} from './router/metadata'; import {HttpHandler} from './http-handler'; import {writeResultToResponse} from './writer'; import {DefaultSequence, SequenceHandler, SequenceFunction} from './sequence'; @@ -112,7 +112,7 @@ export class Application extends Context { throw new Error( `The controller ${controllerName} was not bound via .toClass()`); } - const apiSpec = getApiSpec(ctor); + const apiSpec = getControllerSpec(ctor); if (!apiSpec) { // controller methods are specified through app.api() spec continue; @@ -139,9 +139,12 @@ export class Application extends Context { private _setupOperation(verb: string, path: string, spec: OperationObject) { const handler = spec['x-operation']; if (typeof handler === 'function') { + // Remove a field value that cannot be represented in JSON. + // Start by creating a shallow-copy of the spec, so that we don't + // modify the original spec object provided by user. spec = Object.assign({}, spec); - // Remove a field value that cannot be represented in JSON delete spec['x-operation']; + const route = new Route(verb, path, spec, handler); this._httpHandler.registerRoute(route); return; diff --git a/packages/core/src/http-handler.ts b/packages/core/src/http-handler.ts index 60ac736adc52..5186520e7119 100644 --- a/packages/core/src/http-handler.ts +++ b/packages/core/src/http-handler.ts @@ -12,7 +12,7 @@ import { } from '@loopback/context'; import {PathsObject} from '@loopback/openapi-spec'; import {ServerRequest, ServerResponse} from 'http'; -import {getApiSpec, ControllerSpec} from './router/metadata'; +import {getControllerSpec, ControllerSpec} from './router/metadata'; import {SequenceHandler} from './sequence'; import { diff --git a/packages/core/src/router/metadata.ts b/packages/core/src/router/metadata.ts index c179df589c41..28ad1bfee0b2 100644 --- a/packages/core/src/router/metadata.ts +++ b/packages/core/src/router/metadata.ts @@ -57,7 +57,7 @@ interface RestEndpoint { path: string; } -export function getApiSpec(constructor: Function): ControllerSpec { +export function getControllerSpec(constructor: Function): ControllerSpec { debug(`Retrieving OpenAPI specification for controller ${constructor.name}`); let spec: ControllerSpec = Reflector.getMetadata( diff --git a/packages/core/test/unit/router/metadata.test.ts b/packages/core/test/unit/router/metadata.test.ts index ee6b45fe86b5..23f70023be89 100644 --- a/packages/core/test/unit/router/metadata.test.ts +++ b/packages/core/test/unit/router/metadata.test.ts @@ -8,7 +8,7 @@ import { api, param, ParameterObject, - getApiSpec, + getControllerSpec, operation, post, put, @@ -31,7 +31,7 @@ describe('Routing metadata', () => { } } - const actualSpec = getApiSpec(MyController); + const actualSpec = getControllerSpec(MyController); expect(actualSpec).to.eql(expectedSpec); }); @@ -45,7 +45,7 @@ describe('Routing metadata', () => { } } - const actualSpec = getApiSpec(MyController); + const actualSpec = getControllerSpec(MyController); expect(actualSpec).to.eql({ paths: { @@ -67,7 +67,7 @@ describe('Routing metadata', () => { createGreeting() {} } - const actualSpec = getApiSpec(MyController); + const actualSpec = getControllerSpec(MyController); expect(actualSpec).to.eql({ paths: { @@ -89,7 +89,7 @@ describe('Routing metadata', () => { updateGreeting() {} } - const actualSpec = getApiSpec(MyController); + const actualSpec = getControllerSpec(MyController); expect(actualSpec).to.eql({ paths: { @@ -111,7 +111,7 @@ describe('Routing metadata', () => { patchGreeting() {} } - const actualSpec = getApiSpec(MyController); + const actualSpec = getControllerSpec(MyController); expect(actualSpec).to.eql({ paths: { @@ -133,7 +133,7 @@ describe('Routing metadata', () => { deleteGreeting() {} } - const actualSpec = getApiSpec(MyController); + const actualSpec = getControllerSpec(MyController); expect(actualSpec).to.eql({ paths: { @@ -155,7 +155,7 @@ describe('Routing metadata', () => { createGreeting() {} } - const actualSpec = getApiSpec(MyController); + const actualSpec = getControllerSpec(MyController); expect(actualSpec).to.eql({ paths: { @@ -175,7 +175,7 @@ describe('Routing metadata', () => { greet() {} } - const actualSpec = getApiSpec(MyController); + const actualSpec = getControllerSpec(MyController); expect(actualSpec.paths['/greet']['get']).to.eql({ 'x-operation-name': 'greet', @@ -189,7 +189,7 @@ describe('Routing metadata', () => { createGreeting() {} } - const actualSpec = getApiSpec(MyController); + const actualSpec = getControllerSpec(MyController); expect(actualSpec.paths['/greeting']['post']).to.eql({ 'x-operation-name': 'createGreeting', @@ -214,7 +214,7 @@ describe('Routing metadata', () => { } } - const actualSpec = getApiSpec(Child); + const actualSpec = getControllerSpec(Child); expect(actualSpec).to.eql({ paths: { @@ -251,7 +251,7 @@ describe('Routing metadata', () => { } } - const actualSpec = getApiSpec(Child); + const actualSpec = getControllerSpec(Child); expect(actualSpec.paths['/name']['get']).to.have.property( 'x-operation-name', diff --git a/packages/core/test/unit/router/metadata/param-body.test.ts b/packages/core/test/unit/router/metadata/param-body.test.ts index e0614404c2b3..fc7776391d8c 100644 --- a/packages/core/test/unit/router/metadata/param-body.test.ts +++ b/packages/core/test/unit/router/metadata/param-body.test.ts @@ -3,7 +3,7 @@ // This file is licensed under the MIT License. // License text available at https://opensource.org/licenses/MIT -import {post, param, getApiSpec} from '../../../..'; +import {post, param, getControllerSpec} from '../../../..'; import {expect} from '@loopback/testlab'; describe('Routing metadata for parameters', () => { @@ -15,7 +15,7 @@ describe('Routing metadata for parameters', () => { greet(name: string) {} } - const actualSpec = getApiSpec(MyController); + const actualSpec = getControllerSpec(MyController); expect(actualSpec.paths['/greeting']['post'].parameters).to.eql([ { diff --git a/packages/core/test/unit/router/metadata/param-form-data.test.ts b/packages/core/test/unit/router/metadata/param-form-data.test.ts index 0bd5cc467272..0afd62bc693d 100644 --- a/packages/core/test/unit/router/metadata/param-form-data.test.ts +++ b/packages/core/test/unit/router/metadata/param-form-data.test.ts @@ -3,7 +3,7 @@ // This file is licensed under the MIT License. // License text available at https://opensource.org/licenses/MIT -import {post, param, getApiSpec} from '../../../..'; +import {post, param, getControllerSpec} from '../../../..'; import {expect} from '@loopback/testlab'; describe('Routing metadata for parameters', () => { @@ -15,7 +15,7 @@ describe('Routing metadata for parameters', () => { greet(name: string) {} } - const actualSpec = getApiSpec(MyController); + const actualSpec = getControllerSpec(MyController); expect(actualSpec.paths['/greeting']['post'].parameters).to.eql([ { @@ -35,7 +35,7 @@ describe('Routing metadata for parameters', () => { greet(name: string) {} } - const actualSpec = getApiSpec(MyController); + const actualSpec = getControllerSpec(MyController); expect(actualSpec.paths['/greeting']['post'].parameters).to.eql([ { @@ -55,7 +55,7 @@ describe('Routing metadata for parameters', () => { greet(name: string) {} } - const actualSpec = getApiSpec(MyController); + const actualSpec = getControllerSpec(MyController); expect(actualSpec.paths['/greeting']['post'].parameters).to.eql([ { @@ -75,7 +75,7 @@ describe('Routing metadata for parameters', () => { greet(name: string) {} } - const actualSpec = getApiSpec(MyController); + const actualSpec = getControllerSpec(MyController); expect(actualSpec.paths['/greeting']['post'].parameters).to.eql([ { diff --git a/packages/core/test/unit/router/metadata/param-header.test.ts b/packages/core/test/unit/router/metadata/param-header.test.ts index 790cefc2d40c..539bddedbbca 100644 --- a/packages/core/test/unit/router/metadata/param-header.test.ts +++ b/packages/core/test/unit/router/metadata/param-header.test.ts @@ -3,7 +3,7 @@ // This file is licensed under the MIT License. // License text available at https://opensource.org/licenses/MIT -import {get, param, getApiSpec} from '../../../..'; +import {get, param, getControllerSpec} from '../../../..'; import {expect} from '@loopback/testlab'; describe('Routing metadata for parameters', () => { @@ -15,7 +15,7 @@ describe('Routing metadata for parameters', () => { greet(name: string) {} } - const actualSpec = getApiSpec(MyController); + const actualSpec = getControllerSpec(MyController); expect(actualSpec.paths['/greet']['get'].parameters).to.eql([ { @@ -35,7 +35,7 @@ describe('Routing metadata for parameters', () => { greet(name: string) {} } - const actualSpec = getApiSpec(MyController); + const actualSpec = getControllerSpec(MyController); expect(actualSpec.paths['/greet']['get'].parameters).to.eql([ { @@ -55,7 +55,7 @@ describe('Routing metadata for parameters', () => { greet(name: string) {} } - const actualSpec = getApiSpec(MyController); + const actualSpec = getControllerSpec(MyController); expect(actualSpec.paths['/greet']['get'].parameters).to.eql([ { @@ -75,7 +75,7 @@ describe('Routing metadata for parameters', () => { greet(name: string) {} } - const actualSpec = getApiSpec(MyController); + const actualSpec = getControllerSpec(MyController); expect(actualSpec.paths['/greet']['get'].parameters).to.eql([ { diff --git a/packages/core/test/unit/router/metadata/param-path.test.ts b/packages/core/test/unit/router/metadata/param-path.test.ts index b88fffe9db41..9d346d85a665 100644 --- a/packages/core/test/unit/router/metadata/param-path.test.ts +++ b/packages/core/test/unit/router/metadata/param-path.test.ts @@ -3,7 +3,7 @@ // This file is licensed under the MIT License. // License text available at https://opensource.org/licenses/MIT -import {get, param, getApiSpec} from '../../../..'; +import {get, param, getControllerSpec} from '../../../..'; import {expect} from '@loopback/testlab'; describe('Routing metadata for parameters', () => { @@ -15,7 +15,7 @@ describe('Routing metadata for parameters', () => { greet(name: string) {} } - const actualSpec = getApiSpec(MyController); + const actualSpec = getControllerSpec(MyController); expect(actualSpec.paths['/greet/{name}']['get'].parameters).to.eql([ { @@ -35,7 +35,7 @@ describe('Routing metadata for parameters', () => { greet(name: string) {} } - const actualSpec = getApiSpec(MyController); + const actualSpec = getControllerSpec(MyController); expect(actualSpec.paths['/greet/{name}']['get'].parameters).to.eql([ { @@ -55,7 +55,7 @@ describe('Routing metadata for parameters', () => { greet(name: string) {} } - const actualSpec = getApiSpec(MyController); + const actualSpec = getControllerSpec(MyController); expect(actualSpec.paths['/greet/{name}']['get'].parameters).to.eql([ { @@ -75,7 +75,7 @@ describe('Routing metadata for parameters', () => { greet(name: string) {} } - const actualSpec = getApiSpec(MyController); + const actualSpec = getControllerSpec(MyController); expect(actualSpec.paths['/greet/{name}']['get'].parameters).to.eql([ { diff --git a/packages/core/test/unit/router/metadata/param-query.test.ts b/packages/core/test/unit/router/metadata/param-query.test.ts index 126ce8138eef..4015134bc6d1 100644 --- a/packages/core/test/unit/router/metadata/param-query.test.ts +++ b/packages/core/test/unit/router/metadata/param-query.test.ts @@ -3,7 +3,7 @@ // This file is licensed under the MIT License. // License text available at https://opensource.org/licenses/MIT -import {get, param, getApiSpec} from '../../../..'; +import {get, param, getControllerSpec} from '../../../..'; import {expect} from '@loopback/testlab'; describe('Routing metadata for parameters', () => { @@ -15,7 +15,7 @@ describe('Routing metadata for parameters', () => { greet(name: string) {} } - const actualSpec = getApiSpec(MyController); + const actualSpec = getControllerSpec(MyController); expect(actualSpec.paths['/greet']['get'].parameters).to.eql([ { @@ -35,7 +35,7 @@ describe('Routing metadata for parameters', () => { greet(name: string) {} } - const actualSpec = getApiSpec(MyController); + const actualSpec = getControllerSpec(MyController); expect(actualSpec.paths['/greet']['get'].parameters).to.eql([ { @@ -55,7 +55,7 @@ describe('Routing metadata for parameters', () => { greet(name: string) {} } - const actualSpec = getApiSpec(MyController); + const actualSpec = getControllerSpec(MyController); expect(actualSpec.paths['/greet']['get'].parameters).to.eql([ { @@ -75,7 +75,7 @@ describe('Routing metadata for parameters', () => { greet(name: string) {} } - const actualSpec = getApiSpec(MyController); + const actualSpec = getControllerSpec(MyController); expect(actualSpec.paths['/greet']['get'].parameters).to.eql([ { diff --git a/packages/core/test/unit/router/metadata/param.test.ts b/packages/core/test/unit/router/metadata/param.test.ts index f725a17c3de8..daf3b7d17396 100644 --- a/packages/core/test/unit/router/metadata/param.test.ts +++ b/packages/core/test/unit/router/metadata/param.test.ts @@ -8,7 +8,7 @@ import { api, param, ParameterObject, - getApiSpec, + getControllerSpec, operation, OperationObject, ResponsesObject, @@ -31,7 +31,7 @@ describe('Routing metadata for parameters', () => { greet(name: string) {} } - const actualSpec = getApiSpec(MyController); + const actualSpec = getControllerSpec(MyController); const expectedSpec = anOperationSpec() .withOperationName('greet') @@ -61,7 +61,7 @@ describe('Routing metadata for parameters', () => { list(offset?: number, pageSize?: number) {} } - const actualSpec = getApiSpec(MyController); + const actualSpec = getControllerSpec(MyController); expect(actualSpec.paths['/']['get'].parameters).to.eql([ offsetSpec, @@ -96,7 +96,7 @@ describe('Routing metadata for parameters', () => { list(offset?: number, pageSize?: number) {} } - const apiSpec = getApiSpec(MyController); + const apiSpec = getControllerSpec(MyController); const opSpec: OperationObject = apiSpec.paths['/']['get']; expect(opSpec.responses).to.eql(responses);