Untitled

                Never    
const user = require('../model/user');
const orderModel = require('../model/order');
const menu = require('../model/menu');
const gen  = require('../helper/uidgenerator');
const moment = require('moment');
const logger = require('../helper/mod_data_logger');
const list = async (req, res, next) => {
    res.render('view_order');
};

const listDatatable = async (req, res, next) => {
    let draw = req.query.draw;
    let start = parseInt(req.query.start);
    let length = parseInt(req.query.length);
    let order = req.query.order;

    let custom_search = {
        list_msisdn: req.query.list_msisdn,
        status: req.query.status,
        province: req.query.province,
        city: req.query.city,
        date_order:req.query.date_order

    };
    console.log(custom_search)
    const token = req.headers['authorization'].replace('Bearer ', '');
    let checkUser = await orderModel.checkUser(token);
    if (checkUser.status === "ok") {
        let listUser = await orderModel.getOrder(start, length, draw, order, custom_search, checkUser);

        res.json({
            draw: draw,
            recordsTotal: listUser.recordsTotal,
            recordsFiltered: listUser.recordsFiltered,
            data: listUser.data,
            user: checkUser
        });
    } else {
        res.status(401);
        res.json(checkUser);
    }


};


const detailUser = async (req, res, next) => {
    let id = req.query.id;
    const token = req.headers['authorization'].replace('Bearer ', '');
    let checkUser = await user.checkUser(token);

    if (checkUser.status === "ok") {
        let resUsr = await user.getUserDetail(id);
        res.json({
            data: resUsr.data,
            user: checkUser
        });
    } else {
        res.status(401);
        res.json(checkUser);
    }
};

const edit = async (req, res) => {
    let id = req.params.id;
    const token = req.headers['authorization'].replace('Bearer ', '');

    let checkUser = await user.checkUser(token);
    if (checkUser.status === "ok") {
        let detailEdit = await user.getDataEdit(id);

        res.json({
            status: detailEdit.status,
            data: detailEdit.data,
        });
    }else{
        res.status(401);
        res.json(checkUser);
    }

}

const getDataEdit = async (id) => {
    try {
        let result = await knex('tb_user as user')
            .join('tb_role as role', 'user.role_id', 'role.id_role')
            .select('user.user_id', 'user.user_username', 'user.role_id, role.nama')
            .where('user.user_id', id);

        return {
            status: "ok",
            data: result
        }
    }
    catch (e) {
        console.log(e);
        return {
            status: 'nok',
            data: e
        }
    }
}

const deleteUser = async (req, res) => {
    let id = req.params.id
    const token = req.headers['authorization'].replace('Bearer ', '');
    let checkUser = await user.checkUser(token);
    if (checkUser.status === "ok") {
        let result = await user.deleteUser(id, checkUser);

        res.json(result);
    } else {
        res.status(401);
        res.json(checkUser);
    }

}

const insert = async (req, res, next) => {
    let data = {
        username: req.body.add_username,
        password: req.body.add_password,
        role_id: req.body.add_role,
    };
    const token = req.headers['authorization'].replace('Bearer ', '');
    let checkUser = await user.checkUser(token);
    if (checkUser.status === "ok") {
        let result = await user.insert(data, checkUser);

        res.json(result);
    } else {
        res.status(401);
        res.json(checkUser);
    }

};

const update = async (req, res, next) => {
    console.log(req.body);
    let data = {
        username: req.body.edit_username,
        role_id: req.body.edit_role,
        user_id: req.body.edit_id
    };

    console.log(data);

    const token = req.headers['authorization'].replace('Bearer ', '');

    let checkUser = await user.checkUser(token);

    if (checkUser.status === "ok") {
        let result = await user.update(data, checkUser);

        res.json(result);
    } else {
        res.status(401);
        res.json(checkUser);
    }

};

const getDetailOrder = async (req, res, next) => {
    const token = req.headers['authorization'].replace('Bearer ', '');
    let checkUser = await user.checkUser(token);

    if(checkUser.status === "ok"){
        if(req.body.order_id) {
            let respData = await orderModel.getOrderByID(req.body.order_id);
            res.json({
                data: respData.data,
                user: checkUser
            });
        }else{
            res.json({
                data: "invalid order id",
                user: checkUser
            });
        }
    } else {
        res.status(401);
        res.json(checkUser);
    }
}

const updateOrder = async (req, res, next) => {
    console.log("==================================================");
    logger.logData(req.body);
    logger.logData(req.file);
    console.log("==================================================");

    const token = req.headers['authorization'].replace('Bearer ', '');
    let checkUser = await user.checkUser(token);
    if(checkUser.status == 'nok'){
        res.status(401);
        res.json(checkUser);
    }else{
        if(req.body.d_new_num && req.body.d_order_id && checkUser.data.user_id) {
            let orderParams = {
                t_user_id:checkUser.data.user_id,
                t_file_name:req.file.filename,
                t_new_number:req.body.d_new_num,
                t_order_id:req.body.d_order_id,
                t_old_number:req.body.d_old_num
            }

            orderModel.insertOrderAgentHistory(orderParams);

            res.json({
                status:"ok",
                data:"Data order berhasil diupdate"
            });
        }else{
            res.json({
                status:"ok",
                data:"Incomplete parameter"
            })
        }
    }

};

module.exports = {
    list,
    listDatatable,
    insert,
    detailUser,
    deleteUser,
    edit,
    update,
    getDataEdit,
    getDetailOrder,
    updateOrder
}

Raw Text