HEX
Server: nginx/1.24.0
System: Linux nowruzgan 6.8.0-57-generic #59-Ubuntu SMP PREEMPT_DYNAMIC Sat Mar 15 17:40:59 UTC 2025 x86_64
User: babak (1000)
PHP: 8.3.6
Disabled: NONE
Upload Files
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;