File: //var/dev/farhangmoaser/web/routes/api/1.0/settings.js
'use strict';
/**
* Express endpoints for /voucher address
* Version: 0.1
* Author: Babak Vandad
*
* Restful api for addresses:
* GET /voucher
* GET /voucher/me/:id/activate
* PUT /voucher
* POST /voucher/:id/activate
* POST /voucher/:id
* DELETE /voucher
*/
var express = require('express');
var router = express.Router();
var fs = require('fs');
var path = require('path');
var Moment = require('moment');
var consts = require(path.join(BASEDIR, 'consts'));
var authHelper = require(path.join(BASEDIR, 'helpers/auth'));
var config = require(path.join(BASEDIR, 'config.js'));
var db = require(path.join(BASEDIR, 'connectors/mysql'));
var authenticate = authHelper.authenticate;
var access = authHelper.access;
/**
* Fail a request by releasing database connection, rollback transaction
* and sending the proper error code and message with 4xx or 5xx status codes.
* @param {object} express response object
* @param {object} db connection
* @param {object} error object from costs.js
* @param {integer} override status code (if you want to send 200 instead of 4xx/5xx)
* @return {function} the function to fail the request.
*/
var fail = function(response, conn, error, status){
return function(){
if(conn && conn.release)
conn.release();
response.status(status ? status : error.status).json({error: error.code, message: error.message});
};
};
/**
* Sends data to the client, commits transaction and releases the db connection
* @param {object} express response object
* @param {object} db connection
* @param {object} data for the client
*/
var send = function(res, conn, data){
if(conn) conn.release();
if(data) res.json(data);
else res.end();
};
/**
* get settings object:
*/
router.get('/', authenticate, access('settings:get', 'نمایش تنظیمات سیستم'), async (req, res, next) => {
send(res, null, config.read());
});
/* update settings object */
router.post('/', authenticate, access('settings:post', 'ویرایش تنظیمات سیستم'), async (req, res, next) => {
config.write(req.body.confs);
send(res, null, {});
});
module.exports = router;