BerniWittmann/spielplanismaning

View on GitHub
src/routes/handler.js

Summary

Maintainability
A
35 mins
Test Coverage
const messages = require('./messages/messages.js')();
const _ = require('lodash');
const logger = require('winston').loggers.get('api');

function handleErrorAndResponse(err, res, data) {
    if (err) {
        logger.warn('Error %d: %s' , err.status, err.message, err);
        return messages.Error(res, err);
    }

    return res.status(200).json(data);
}

function handleErrorAndMessage(err, res, message) {
    if (err) {
        logger.warn('Error %d: %s' , err.status, err.message, err);
        return messages.Error(res, err);
    }

    return message(res);
}

function handleErrorAndSuccess(err, res) {
    return handleErrorAndMessage(err, res, messages.Success);
}

function handleErrorAndDeleted(err, res) {
    return handleErrorAndMessage(err, res, messages.Deleted);
}

function handleQueryResponse(err, data, res, searchById, notFoundError) {
    if(searchById && !data) {
        return notFoundError(res, err);
    }
    if (err) {
        logger.warn('Error %d: %s' , err.status, err.message, err);
        return messages.Error(res, err);
    }

    return res.status(200).json(data);
}

module.exports = {
    handleErrorAndResponse: handleErrorAndResponse,
    handleErrorAndSuccess: handleErrorAndSuccess,
    handleErrorAndDeleted: handleErrorAndDeleted,
    handleErrorAndMessage: handleErrorAndMessage,
    handleQueryResponse: handleQueryResponse
};