Skip to content
GitLab
    • Explore Projects Groups Snippets
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • O openapi-generator
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 3,476
    • Issues 3,476
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 402
    • Merge requests 402
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • OpenAPI Tools
  • openapi-generator
  • Merge requests
  • !3018
An error occurred while fetching the assigned milestone of the selected merge_request.

Nodejs express server

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Administrator requested to merge github/fork/YishTish/nodejs-express-server into nodejs-express-server 6 years ago
  • Overview 0
  • Commits 8
  • Pipelines 0
  • Changes 29

Created by: YishTish

PR checklist

  • Read the contribution guidelines.
  • Ran the shell script under ./bin/ to update Petstore sample so that CIs can verify the change. (For instance, only need to run ./bin/{LANG}-petstore.sh, ./bin/openapi3/{LANG}-petstore.sh if updating the {LANG} (e.g. php, ruby, python, etc) code generator or {LANG} client's mustache templates). Windows batch files can be found in .\bin\windows\. If contributing template-only or documentation-only changes which will change sample output, be sure to build the project first.
  • Filed the PR against the correct branch: master, 4.1.x, 5.0.x. Default: master.
  • Copied the technical committee to review the pull request if your PR is targeting a particular programming language.

Description of the PR

(details of the change, additional tests that have been done, reference to the issue for tracking, etc)

Compare
  • nodejs-express-server (base)

and
  • latest version
    d6c2c9a1
    8 commits, 2 years ago

29 files
+ 2240
- 425

    Preferences

    File browser
    Compare changes
samples/server/…/no‎dejs-express-server‎
a‎pi‎
openap‎i.yaml‎ +2 -2
swagge‎r.yaml‎ +795 -0
contr‎ollers‎
Contro‎ller.js‎ +30 -0
Pet‎.js‎ +28 -88
Tes‎t.js‎ +59 -0
inde‎x.js‎ +11 -0
ser‎vice‎
PetSer‎vice.js‎ +188 -188
Servi‎ce.js‎ +11 -0
TestSer‎vice.js‎ +113 -0
inde‎x.js‎ +11 -0
te‎sts‎
test‎Files‎
image‎s.png‎ +0 -0
pet.‎json‎ +23 -0
swagge‎r.yaml‎ +261 -0
testIte‎ms.json‎ +20 -0
SwaggerRou‎terTests.js‎ +164 -0
conf‎ig.js‎ +12 -0
logg‎er.js‎ +14 -0
serverT‎ests.js‎ +59 -53
swaggerContr‎ollerTests.js‎ +101 -0
ut‎ils‎
swaggerR‎outer.js‎ +103 -0
.esl‎intrc‎ +4 -1
READ‎ME.md‎ +100 -13
app‎.js‎ +30 -0
conf‎ig.js‎ +10 -6
confi‎g.json‎ +0 -3
expressS‎erver.js‎ +56 -51
inde‎x.js‎ +14 -18
logg‎er.js‎ +17 -0
packag‎e.json‎ +4 -2
samples/server/petstore/nodejs-express-server/api/openapi.yaml
+ 2
- 2
  • View file @ d6c2c9a1

  • Edit in single-file editor

  • Open in Web IDE


openapi: 3.0.1
openapi: 3.0.1
info:
description: This is a sample server Petstore server. For this sample, you can use
the api key `special-key` to test the authorization filters.
@@ -8,7 +8,7 @@ info:
title: OpenAPI Petstore
version: 1.0.0
servers:
- url: http://petstore.swagger.io/v2
- url: http://localhost/v2:3000
tags:
- description: Everything about your Pets
name: pet
samples/server/petstore/nodejs-express-server/api/swagger.yaml 0 → 100644
+ 795
- 0
  • View file @ d6c2c9a1

  • Edit in single-file editor

  • Open in Web IDE

Files with large changes are collapsed by default.

samples/server/petstore/nodejs-express-server/controllers/Controller.js 0 → 100644
+ 30
- 0
  • View file @ d6c2c9a1

  • Edit in single-file editor

  • Open in Web IDE

class Controller {
static sendResponse(response, payload) {
response.status(payload.code);
if (payload.payload instanceof Object) {
response.json(payload.payload);
} else {
response.end(payload.payload);
}
}
static sendError(response, error) {
response.status(error.code);
if (error.error instanceof Object) {
response.json(error.error);
} else {
response.end(error.error);
}
}
static async handleRequest(request, response, serviceOperation) {
try {
const serviceResponse = await serviceOperation(request.swagger.paramValues);
Controller.sendResponse(response, serviceResponse);
} catch (error) {
Controller.sendError(response, error);
}
}
}
module.exports = Controller;
samples/server/petstore/nodejs-express-server/controllers/Pet.js
+ 28
- 88
  • View file @ d6c2c9a1

  • Edit in single-file editor

  • Open in Web IDE

'use strict';
const Controller = require('./Controller');
var utils = require('../utils/writer.js');
var Pet = require('../service/PetService');
class Pet {
constructor(Service) {
this.service = Service;
}
module.exports.addPet = function addPet (req, res, next) {
var body = req.swagger.params['body'].value;
Pet.addPet(body)
.then(function (response) {
utils.writeJson(res, response);
})
.catch(function (response) {
utils.writeJson(res, response);
});
};
async addPet(request, response) {
await Controller.handleRequest(request, response, this.service.addPet);
}
module.exports.deletePet = function deletePet (req, res, next) {
var petId = req.swagger.params['petId'].value;
var apiUnderscorekey = req.swagger.params['api_key'].value;
Pet.deletePet(petId,apiUnderscorekey)
.then(function (response) {
utils.writeJson(res, response);
})
.catch(function (response) {
utils.writeJson(res, response);
});
};
async deletePet(request, response) {
await Controller.handleRequest(request, response, this.service.deletePet);
}
module.exports.findPetsByStatus = function findPetsByStatus (req, res, next) {
var status = req.swagger.params['status'].value;
Pet.findPetsByStatus(status)
.then(function (response) {
utils.writeJson(res, response);
})
.catch(function (response) {
utils.writeJson(res, response);
});
};
async findPetsByStatus(request, response) {
await Controller.handleRequest(request, response, this.service.findPetsByStatus);
}
module.exports.findPetsByTags = function findPetsByTags (req, res, next) {
var tags = req.swagger.params['tags'].value;
Pet.findPetsByTags(tags)
.then(function (response) {
utils.writeJson(res, response);
})
.catch(function (response) {
utils.writeJson(res, response);
});
};
async findPetsByTags(request, response) {
await Controller.handleRequest(request, response, this.service.findPetsByTags);
}
module.exports.getPetById = function getPetById (req, res, next) {
var petId = req.swagger.params['petId'].value;
Pet.getPetById(petId)
.then(function (response) {
utils.writeJson(res, response);
})
.catch(function (response) {
utils.writeJson(res, response);
});
};
async getPetById(request, response) {
await Controller.handleRequest(request, response, this.service.getPetById);
}
module.exports.updatePet = function updatePet (req, res, next) {
var body = req.swagger.params['body'].value;
Pet.updatePet(body)
.then(function (response) {
utils.writeJson(res, response);
})
.catch(function (response) {
utils.writeJson(res, response);
});
};
async updatePet(request, response) {
await Controller.handleRequest(request, response, this.service.updatePet);
}
module.exports.updatePetWithForm = function updatePetWithForm (req, res, next) {
var petId = req.swagger.params['petId'].value;
var name = req.swagger.params['name'].value;
var status = req.swagger.params['status'].value;
Pet.updatePetWithForm(petId,name,status)
.then(function (response) {
utils.writeJson(res, response);
})
.catch(function (response) {
utils.writeJson(res, response);
});
};
async uploadFile(request, response) {
await Controller.handleRequest(request, response, this.service.uploadFile);
}
}
module.exports.uploadFile = function uploadFile (req, res, next) {
var petId = req.swagger.params['petId'].value;
var additionalMetadata = req.swagger.params['additionalMetadata'].value;
var file = req.swagger.params['file'].value;
Pet.uploadFile(petId,additionalMetadata,file)
.then(function (response) {
utils.writeJson(res, response);
})
.catch(function (response) {
utils.writeJson(res, response);
});
};
module.exports = Pet;
samples/server/petstore/nodejs-express-server/controllers/Test.js 0 → 100644
+ 59
- 0
  • View file @ d6c2c9a1

  • Edit in single-file editor

  • Open in Web IDE

const Controller = require('./Controller');
class Test {
constructor(Service) {
this.service = Service;
}
sendResponse(request, response) {
response.status(200);
const objectToReturn = {};
Object.keys(request.swagger.paramValues).forEach((key) => {
const val = request.swagger.paramValues[key];
if (val instanceof Object) {
objectToReturn[key] = val.originalname || val.name || val;
} else {
objectToReturn[key] = request.swagger.paramValues[key];
}
});
response.json(objectToReturn);
}
confirmRouteGetSingle(request, response) {
this.sendResponse(request, response);
}
confirmRouteGetMany(request, response) {
this.sendResponse(request, response);
}
confirmRoutePost(request, response) {
this.sendResponse(request, response);
}
confirmRoutePut(request, response) {
this.sendResponse(request, response);
}
async testGetController(request, response) {
await Controller.handleRequest(request, response, this.service.testGetController);
}
async testPostController(request, response) {
await Controller.handleRequest(request, response, this.service.testPostController);
}
async testPutController(request, response) {
await Controller.handleRequest(request, response, this.service.testPutController);
}
async testDeleteController(request, response) {
await Controller.handleRequest(request, response, this.service.testDeleteController);
}
async testFindByIdController(request, response) {
await Controller.handleRequest(request, response, this.service.testFindByIdController);
}
}
module.exports = Test;
0 Assignees
None
Assign to
0 Reviewers
None
Request review from
Labels
0
None
0
None
    Assign labels
  • Manage project labels

Milestone
No milestone
None
None
Time tracking
No estimate or time spent
Lock merge request
Unlocked
0
0 participants
Reference:
Source branch: github/fork/YishTish/nodejs-express-server

Menu

Explore Projects Groups Snippets