UNPKG

@microsoft.azure/autorest.testserver

Version:

This project contains a set of OpenAPI definitions and a server implementing the corresponding API. Use this to test compliance of AutoRest generators.

92 lines (87 loc) 4.44 kB
var express = require('express'); var router = express.Router(); var utils = require('../util/utils'); var multiapi = function(optionalCoverage) { optionalCoverage['MultiapiPutTestOneApiVersionOne'] = 0; optionalCoverage['MultiapiPutTestOneApiVersionTwo'] = 0; optionalCoverage['MultiapiGetTestTwoApiVersionOne'] = 0; optionalCoverage['MultiapiGetTestTwoApiVersionTwo'] = 0; optionalCoverage['MultiapiGetTestTwoApiVersionThree'] = 0; optionalCoverage['MultiapiPutTestThreeApiVersionTwo'] = 0; optionalCoverage['MultiapiPostTestFourApiVersionTwo'] = 0; optionalCoverage['MultiapiPostTestFourApiVersionThreeJSON'] = 0; optionalCoverage['MultiapiPostTestFourApiVersionThreePDF'] = 0; optionalCoverage['MultiapiPutTestFiveApiVersionThree'] = 0; router.put('/testOneEndpoint', function (req, res, next) { if (req.query["api-version"] === '1.0.0') { optionalCoverage['MultiapiPutTestOneApiVersionOne']++; res.status(200).end(); } else if (req.query["api-version"] === '2.0.0') { optionalCoverage['MultiapiPutTestOneApiVersionTwo']++; res.status(200).type('json').end('{ "id": "1", "message": "This was called with api-version 2.0.0" }'); } else { utils.send400(res, next, "The api version of the operation mixin is not supported: " + req.query['api-version']); } }); router.get('/one/testTwoEndpoint', function(req, res, next) { if (req.query["api-version"] == '1.0.0') { optionalCoverage['MultiapiGetTestTwoApiVersionOne']++; res.status(200).end() } else if (req.query["api-version"] == '2.0.0') { optionalCoverage['MultiapiGetTestTwoApiVersionTwo']++; res.status(200).type('json').end('{ "id": "1", "message": "This was called with api-version 2.0.0" }'); } else if (req.query["api-version"] == '3.0.0') { optionalCoverage['MultiapiGetTestTwoApiVersionThree']++; res.status(200).type('json').end('{ "optionalProperty": "This was called with api-version 3.0.0" }'); } else { utils.send400(res, next, "The api version of testTwo is not supported: " + req.query['api-version']); } }); router.put('/one/testThreeEndpoint', function(req, res, next) { if (req.query["api-version"] == '2.0.0') { optionalCoverage['MultiapiPutTestThreeApiVersionTwo']++; res.status(200).end(); } else { utils.send400(res, next, "The api version of testThree is not supported: " + req.query['api-version']); } }); router.post('/two/testFourEndpoint', function(req, res, next) { if (req.query["api-version"] == '2.0.0') { optionalCoverage['MultiapiPostTestFourApiVersionTwo']++; res.status(200).end(); } else if (req.query["api-version"] == '3.0.0') { let content_type = req.headers["content-type"]; let body = req.body; console.log("Content-Type: "+content_type); console.log("Body: "+body); // JSON will expect to find a 'source' key if (content_type === 'application/json' && 'source' in body) { console.log("in if") optionalCoverage['MultiapiPostTestFourApiVersionThreeJSON']++; res.status(200).end(); } // PDF will expect to see the 3 bytes PDF else if (content_type === 'application/pdf' && body === "PDF") { console.log("in else if") optionalCoverage['MultiapiPostTestFourApiVersionThreePDF'] res.status(200).end(); } else{ console.log("else") utils.send400(res, next, 'Did not receive what I was expecting'); } } else { utils.send400(res, next, "The api version of testFour is not supported: " + req.query['api-version']); } }); router.put('/two/testFiveEndpoint', function(req, res, next) { if (req.query["api-version"] == '3.0.0') { optionalCoverage['MultiapiPutTestFiveApiVersionThree']++; res.status(200).end(); } else { utils.send400(res, next, "The api version of testFive is not supported: " + req.query['api-version']); } }); } multiapi.prototype.router = router; module.exports = multiapi;