All files / framework/src/api/router EndpointRouter.js

91.67% Statements 11/12
100% Branches 2/2
83.33% Functions 5/6
100% Lines 11/11
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 551x 1x                   3x 1x   2x 2x 2x             2x                             2x                     7x       1x  
const { Errors } = require('../../constants');
const Router = require('express').Router;
 
/**
 * Endpoint handler - basic router
 */
class EndpointRouter {
    /**
     * Endpoint handler constructor
     */
    constructor() {
        if (new.target === EndpointRouter) {
            throw new Error(Errors.GetByFieldFailed('EndpointRouter'));
        }
        this.router = new Router();
        this.initAdditionalEndpoints();
        this.initEndpoints();
    }
 
    /**
     * Initialize CRUD endpoints
     */
    initEndpoints() {
        this.router.use('/ping', (req, res) => res.status(200).send('Pong'));
    }
 
    /**
     * Initialize additional endpoints
     * @abstract
     */
    initAdditionalEndpoints() {
    }
 
    /**
     * Returns Router
     * @return {Express.Router}
     */
    getRouter() {
        return this.router;
    }
 
    /**
     * Send response with (error) status and message
     * @param res response that will be send
     * @param status status error code (HTTP code) - should be 4xx or 5xx
     * @param message error message that will be send in response body
     * @returns {Request|*}
     */
    sendErr(res, status, message) {
        return res.status(status).send({ success: false, error: message });
    }
}
 
module.exports = EndpointRouter;