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.

102 lines (90 loc) 2.91 kB
var express = require('express'); var router = express.Router(); var utils = require('../util/utils') // valid Pet var tommyPet = { "name":"Tommy Tomson", "aniType":"Dog" }; // unexpected enum var sadCasper = { "actionResponse":"grrrr", "errorType":"PetSadError", "errorMessage":"casper aint happy", "reason":"need more treats" }; // enum from allowed values var hungryScooby = { "actionResponse":"howl", "errorType":"PetHungryOrThirstyError", "errorMessage":"scooby is low", "reason":"need more everything", "hungryOrThirsty":"hungry and thirsty" }; var stringError = " is missing"; var intError = 123; var linkNotFoundError = { "someBaseProp":"problem finding pet", "reason":"link to pet not found", "whatSubAddress":"pet/yourpet was not found", "whatNotFound":"InvalidResourceLink" }; var animalNotFoundError = { "someBaseProp":"problem finding animal", "reason":"the type of animal requested is not available", "name":"coyote", "whatNotFound":"AnimalNotFound" }; var pathitem = function(coverage) { router.post('/Pets/doSomething/:whatAction', function(req, res, next) { var whatAction = req.params.whatAction; console.log('Inside action: "' + whatAction +'"\n'); if (whatAction === 'stay') { coverage['expectedNoErrors']++; res.status(200).json(tommyPet); } else if(whatAction === 'jump'){ res.status(500).json(sadCasper); coverage['expectedPetSadError']++; } else if(whatAction === 'fetch'){ res.status(404).json(hungryScooby); coverage['expectedPetHungryError']++; } else{ utils.send400(res, next, 'Action cannot be performed '+whatAction); } }); router.get('/Pets/:petId/GetPet', function(req, res, next) { var petId = req.params.petId; console.log('Inside petfinder for '+petId+'\n'); if (petId === 'tommy') { coverage['expectedNoErrors']++; res.status(200).json(tommyPet); } else if(petId === 'django') { res.status(202).end(); } else if(petId === 'coyoteUgly'){ coverage['animalNotFoundError']++; res.status(404).json(animalNotFoundError); } else if(petId === 'weirdAlYankovic'){ coverage['linkNotFoundError']++; res.status(404).json(linkNotFoundError); } else if(petId === 'ringo'){ coverage['stringError']++; res.status(400).json(petId+stringError); } else if(petId === 'alien123'){ coverage['intError']++; res.status(501).json(intError); } else { res.status(402).end("That's all folks!!"); } }); } pathitem.prototype.router = router; module.exports = pathitem;