martinmicunda/employee-scheduling-api

View on GitHub
lib/api/currencies/lib/validator.js

Summary

Maintainability
C
7 hrs
Test Coverage
/**
 * The input and output validator for currency API.
 *
 * @author    Martin Micunda {@link http://martinmicunda.com}
 * @copyright Copyright (c) 2015, Martin Micunda
 * @license   GPL-3.0
 */
'use strict';

import Joi from 'joi';
import currencySchema from './schema';

// insert request doesn't contain ID and CAS properties
const insertCurrencySchema = Object.assign({}, currencySchema);
delete insertCurrencySchema.id;
delete insertCurrencySchema.cas;

const currencyValidator = {
    findByID: {
        params: {
            id: currencySchema.id
        },
        output: currencySchema
    },
    find: {
        output: Joi.array().items(Joi.object(currencySchema))
    },
    insert: {
        body: insertCurrencySchema,
        type: 'cjson',
        output: {
            id: currencySchema.id,
            cas: currencySchema.cas
        }
    },
    update: {
        params: {
            id: currencySchema.id
        },
        body: currencySchema,
        type: 'cjson',
        output: {
            cas: currencySchema.cas
        }
    },
    remove: {
        params: {
            id: currencySchema.id
        }
    }
};

export default currencyValidator;