in legacy/routes/multiapi.js [5:148]
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;
optionalCoverage["MultiapiLRO"] = 0;
optionalCoverage["MultiapiPaging"] = 0;
optionalCoverage["MultiapiLROAndPaging"] = 0;
optionalCoverage["MultiapiDifferentCallsApiVersionOne"] = 0;
optionalCoverage["MultiapiDifferentCallsApiVersionTwo"] = 0;
optionalCoverage["MultiapiDifferentCallsApiVersionThree"] = 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"]);
}
});
// LRO
router.put("/lro", function (req, res, next) {
optionalCoverage["MultiapiLRO"]++;
res.status(200).type("json").end('{ "id": "100" }');
});
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"]);
}
});
router.post("/lroAndPaging", function (req, res, next) {
optionalCoverage["MultiapiLROAndPaging"]++;
res.status(200).json({ values: [{ id: "100" }] });
});
// different signatures for api versions
router.get("/testDifferentCalls", function (req, res, next) {
apiVersion = req.query["api-version"];
headers = req.headers;
console.log(headers);
if (apiVersion == "1.0.0") {
if (
headers["greetinginenglish"] === "hello" &&
!("greetinginchinese" in headers) &&
!("greetinginfrench" in headers)
) {
optionalCoverage["MultiapiDifferentCallsApiVersionOne"];
res.status(200).end();
} else {
utils.send400(res, next, "The headers you sent with api version 1.0.0 are incorrect: " + headers);
}
} else if (apiVersion == "2.0.0") {
if (
headers["greetinginenglish"] === "hello" &&
headers["greetinginchinese"] === "nihao" &&
!("greetinginfrench" in headers)
) {
optionalCoverage["MultiapiDifferentCallsApiVersionTwo"];
res.status(200).end();
} else {
utils.send400(res, next, "The headers you sent with api version 2.0.0 are incorrect: " + headers);
}
} else if (apiVersion == "3.0.0") {
if (
headers["greetinginenglish"] === "hello" &&
headers["greetinginchinese"] === "nihao" &&
headers["greetinginfrench"] === "bonjour"
) {
optionalCoverage["MultiapiDifferentCallsApiVersionThree"];
res.status(200).end();
} else {
utils.send400(res, next, "The headers you sent with api version 3.0.0 are incorrect: " + headers);
}
} else {
utils.send400(res, next, "The api version of testDifferentCalls is not supported: " + apiVersion);
}
});
};