aboutsummaryrefslogtreecommitdiffstats
path: root/cds-ui/server/src/controllers/ping.controller.ts
diff options
context:
space:
mode:
Diffstat (limited to 'cds-ui/server/src/controllers/ping.controller.ts')
-rw-r--r--cds-ui/server/src/controllers/ping.controller.ts72
1 files changed, 72 insertions, 0 deletions
diff --git a/cds-ui/server/src/controllers/ping.controller.ts b/cds-ui/server/src/controllers/ping.controller.ts
new file mode 100644
index 000000000..d3098bc69
--- /dev/null
+++ b/cds-ui/server/src/controllers/ping.controller.ts
@@ -0,0 +1,72 @@
+/*
+============LICENSE_START==========================================
+===================================================================
+Copyright (C) 2018-19 IBM Intellectual Property. All rights reserved.
+===================================================================
+
+Unless otherwise specified, all software contained herein is licensed
+under the Apache License, Version 2.0 (the License);
+you may not use this software except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+============LICENSE_END============================================
+*/
+
+import { Request, RestBindings, get, ResponseObject } from '@loopback/rest';
+import { inject } from '@loopback/context';
+
+/**
+ * OpenAPI response for ping()
+ */
+const PING_RESPONSE: ResponseObject = {
+ description: 'Ping Response',
+ content: {
+ 'application/json': {
+ schema: {
+ type: 'object',
+ properties: {
+ greeting: { type: 'string' },
+ date: { type: 'string' },
+ url: { type: 'string' },
+ headers: {
+ type: 'object',
+ properties: {
+ 'Content-Type': { type: 'string' },
+ },
+ additionalProperties: true,
+ },
+ },
+ },
+ },
+ },
+};
+
+/**
+ * A simple controller to bounce back http requests
+ */
+export class PingController {
+ constructor(@inject(RestBindings.Http.REQUEST) private req: Request) { }
+
+ // Map to `GET /ping`
+ @get('/ping', {
+ responses: {
+ '200': PING_RESPONSE,
+ },
+ })
+ ping(): object {
+ // Reply with a greeting, the current time, the url, and request headers
+ return {
+ greeting: 'Hello from LoopBack',
+ date: new Date(),
+ url: this.req.url,
+ headers: Object.assign({}, this.req.headers),
+ };
+ }
+}