@on-time/core
Version:
core business logic for OT API
63 lines (54 loc) • 1.43 kB
JavaScript
const assert = require('assert');
const router = require('express').Router();
const Controller = require('./Controller');
class Router {
constructor(controller) {
assert(controller && controller instanceof Controller);
this.controller = controller;
this.init();
}
/**
* Initialize Class
*/
init() {
assert(this.controller);
this.initPost(this.controller.post);
this.initGet(this.controller.get);
this.initPut(this.controller.put);
this.initDelete(this.controller.delete);
// Expose express router methods for custom routes
this.post = router.post;
this.get = router.get;
this.put = router.put;
this.delete = router.delete;
}
/**
* Initialize root route POST
* @param postController
*/
initPost(postController) {
router.post('/', postController);
}
/**
* Initialize root route GET
* @param postController
*/
initGet(postController) {
router.get('/', postController);
}
/**
* Initialize root route PUT
* @param postController
*/
initPut(postController) {
router.put('/', postController);
}
/**
* Initialize root route DELETE
* @param postController
*/
initDelete(postController) {
router.delete('/', postController);
}
}
module.exports = Router;