8238829758e7723a81da100461669edb8e685d37
[motion2.git] / server / api / chatQueueReport / chatQueueReport.controller.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0x0ef4=['jsforce','desk.js','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','undefined','limit','offset','Content-Range','json','apply','save','update','then','destroy','name','map','rawAttributes','fieldName','type','key','model','query','keys','intersection','fields','attributes','hasOwnProperty','sort','where','filters','pick','filter','VIRTUAL','ChatQueueReport','count','includeAll','include','findAll','catch','show','params','length','merge','options','create','body','describe','rimraf','zip-dir','fast-json-patch','bluebird','mustache','util','sox','fs-extra','lodash','squel','crypto'];(function(_0x472caf,_0x42c3d5){var _0x16cd58=function(_0x42d6fc){while(--_0x42d6fc){_0x472caf['push'](_0x472caf['shift']());}};_0x16cd58(++_0x42c3d5);}(_0x0ef4,0xc7));var _0x40ef=function(_0x26b5ff,_0x92009a){_0x26b5ff=_0x26b5ff-0x0;var _0x58603e=_0x0ef4[_0x26b5ff];return _0x58603e;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x40ef('0x0'));var zipdir=require(_0x40ef('0x1'));var jsonpatch=require(_0x40ef('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x40ef('0x3'));var Mustache=require(_0x40ef('0x4'));var util=require(_0x40ef('0x5'));var path=require('path');var sox=require(_0x40ef('0x6'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x40ef('0x7'));var _=require(_0x40ef('0x8'));var squel=require(_0x40ef('0x9'));var crypto=require(_0x40ef('0xa'));var jsforce=require(_0x40ef('0xb'));var deskjs=require(_0x40ef('0xc'));var toCsv=require(_0x40ef('0xd'));var querystring=require(_0x40ef('0xe'));var Papa=require(_0x40ef('0xf'));var Redis=require('ioredis');var authService=require(_0x40ef('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x40ef('0x11'));var hardwareService=require(_0x40ef('0x12'));var logger=require(_0x40ef('0x13'))(_0x40ef('0x14'));var utils=require('../../config/utils');var config=require(_0x40ef('0x15'));var licenseUtil=require(_0x40ef('0x16'));var db=require(_0x40ef('0x17'))['db'];function respondWithStatusCode(_0x3d44c7,_0x1c4ed4){_0x1c4ed4=_0x1c4ed4||0xcc;return function(_0x136ccd){if(_0x136ccd){return _0x3d44c7[_0x40ef('0x18')](_0x1c4ed4);}return _0x3d44c7[_0x40ef('0x19')](_0x1c4ed4)[_0x40ef('0x1a')]();};}function respondWithResult(_0x3d5a16,_0xaf0020){_0xaf0020=_0xaf0020||0xc8;return function(_0x256142){if(_0x256142){return _0x3d5a16['status'](_0xaf0020)['json'](_0x256142);}};}function respondWithFilteredResult(_0x1ab3ba,_0x5010b3){return function(_0x39d022){if(_0x39d022){var _0xdb24fd=typeof _0x5010b3['offset']===_0x40ef('0x1b')&&typeof _0x5010b3[_0x40ef('0x1c')]==='undefined';var _0x3ddcf0=_0x39d022['count'];var _0x3a3ba2=_0xdb24fd?0x0:_0x5010b3[_0x40ef('0x1d')];var _0x3573bd=_0xdb24fd?_0x39d022['count']:_0x5010b3['offset']+_0x5010b3[_0x40ef('0x1c')];var _0x54c35d;if(_0x3573bd>=_0x3ddcf0){_0x3573bd=_0x3ddcf0;_0x54c35d=0xc8;}else{_0x54c35d=0xce;}_0x1ab3ba[_0x40ef('0x19')](_0x54c35d);return _0x1ab3ba['set'](_0x40ef('0x1e'),_0x3a3ba2+'-'+_0x3573bd+'/'+_0x3ddcf0)[_0x40ef('0x1f')](_0x39d022);}return null;};}function patchUpdates(_0x514263){return function(_0x2f6fd5){try{jsonpatch[_0x40ef('0x20')](_0x2f6fd5,_0x514263,!![]);}catch(_0xa60df3){return BPromise['reject'](_0xa60df3);}return _0x2f6fd5[_0x40ef('0x21')]();};}function saveUpdates(_0x4cef12,_0x3fb29c){return function(_0x5d2d53){if(_0x5d2d53){return _0x5d2d53[_0x40ef('0x22')](_0x4cef12)[_0x40ef('0x23')](function(_0x33ffdf){return _0x33ffdf;});}return null;};}function removeEntity(_0x362c81,_0x98d8ef){return function(_0x3d5266){if(_0x3d5266){return _0x3d5266[_0x40ef('0x24')]()[_0x40ef('0x23')](function(){_0x362c81[_0x40ef('0x19')](0xcc)[_0x40ef('0x1a')]();});}};}function handleEntityNotFound(_0x1df9e1,_0x435ce2){return function(_0x14f620){if(!_0x14f620){_0x1df9e1[_0x40ef('0x18')](0x194);}return _0x14f620;};}function handleError(_0x48cfb0,_0x3539bc){_0x3539bc=_0x3539bc||0x1f4;return function(_0x336c03){logger['error'](_0x336c03['stack']);if(_0x336c03[_0x40ef('0x25')]){delete _0x336c03[_0x40ef('0x25')];}_0x48cfb0['status'](_0x3539bc)['send'](_0x336c03);};}exports['index']=function(_0x7a3c7c,_0x570145){var _0x5c87c9={},_0xa1846c={},_0xd4338d={'count':0x0,'rows':[]};var _0x5b541d=_[_0x40ef('0x26')](db['ChatQueueReport'][_0x40ef('0x27')],function(_0x13552e){return{'name':_0x13552e[_0x40ef('0x28')],'type':_0x13552e[_0x40ef('0x29')][_0x40ef('0x2a')]};});_0xa1846c[_0x40ef('0x2b')]=_[_0x40ef('0x26')](_0x5b541d,_0x40ef('0x25'));_0xa1846c[_0x40ef('0x2c')]=_[_0x40ef('0x2d')](_0x7a3c7c['query']);_0xa1846c['filters']=_[_0x40ef('0x2e')](_0xa1846c[_0x40ef('0x2b')],_0xa1846c['query']);_0x5c87c9['attributes']=_['intersection'](_0xa1846c[_0x40ef('0x2b')],qs['fields'](_0x7a3c7c['query'][_0x40ef('0x2f')]));_0x5c87c9[_0x40ef('0x30')]=_0x5c87c9[_0x40ef('0x30')]['length']?_0x5c87c9[_0x40ef('0x30')]:_0xa1846c[_0x40ef('0x2b')];if(!_0x7a3c7c[_0x40ef('0x2c')][_0x40ef('0x31')]('nolimit')){_0x5c87c9['limit']=qs[_0x40ef('0x1c')](_0x7a3c7c['query']['limit']);_0x5c87c9[_0x40ef('0x1d')]=qs[_0x40ef('0x1d')](_0x7a3c7c['query'][_0x40ef('0x1d')]);}_0x5c87c9['order']=qs[_0x40ef('0x32')](_0x7a3c7c['query'][_0x40ef('0x32')]);_0x5c87c9[_0x40ef('0x33')]=qs[_0x40ef('0x34')](_[_0x40ef('0x35')](_0x7a3c7c['query'],_0xa1846c[_0x40ef('0x34')]),_0x5b541d);if(_0x7a3c7c['query'][_0x40ef('0x36')]){_0x5c87c9['where']=_['merge'](_0x5c87c9[_0x40ef('0x33')],{'$or':_[_0x40ef('0x26')](_0x5b541d,function(_0x159a28){if(_0x159a28['type']!==_0x40ef('0x37')){var _0x54345f={};_0x54345f[_0x159a28[_0x40ef('0x25')]]={'$like':'%'+_0x7a3c7c[_0x40ef('0x2c')]['filter']+'%'};return _0x54345f;}})});}_0x5c87c9=_['merge']({},_0x5c87c9,_0x7a3c7c['options']);var _0x1b68d3={'where':_0x5c87c9[_0x40ef('0x33')]};return db[_0x40ef('0x38')][_0x40ef('0x39')](_0x1b68d3)[_0x40ef('0x23')](function(_0x221006){_0xd4338d[_0x40ef('0x39')]=_0x221006;if(_0x7a3c7c[_0x40ef('0x2c')][_0x40ef('0x3a')]){_0x5c87c9[_0x40ef('0x3b')]=[{'all':!![]}];}return db[_0x40ef('0x38')][_0x40ef('0x3c')](_0x5c87c9);})[_0x40ef('0x23')](function(_0x5bf9f3){_0xd4338d['rows']=_0x5bf9f3;return _0xd4338d;})[_0x40ef('0x23')](respondWithFilteredResult(_0x570145,_0x5c87c9))[_0x40ef('0x3d')](handleError(_0x570145,null));};exports[_0x40ef('0x3e')]=function(_0x32e749,_0x2e7971){var _0x5583d3={'raw':!![],'where':{'id':_0x32e749[_0x40ef('0x3f')]['id']}},_0xd75ebe={};_0xd75ebe[_0x40ef('0x2b')]=_[_0x40ef('0x2d')](db[_0x40ef('0x38')]['rawAttributes']);_0xd75ebe[_0x40ef('0x2c')]=_[_0x40ef('0x2d')](_0x32e749[_0x40ef('0x2c')]);_0xd75ebe[_0x40ef('0x34')]=_[_0x40ef('0x2e')](_0xd75ebe[_0x40ef('0x2b')],_0xd75ebe[_0x40ef('0x2c')]);_0x5583d3[_0x40ef('0x30')]=_['intersection'](_0xd75ebe[_0x40ef('0x2b')],qs[_0x40ef('0x2f')](_0x32e749[_0x40ef('0x2c')]['fields']));_0x5583d3[_0x40ef('0x30')]=_0x5583d3[_0x40ef('0x30')][_0x40ef('0x40')]?_0x5583d3['attributes']:_0xd75ebe[_0x40ef('0x2b')];if(_0x32e749[_0x40ef('0x2c')]['includeAll']){_0x5583d3[_0x40ef('0x3b')]=[{'all':!![]}];}_0x5583d3=_[_0x40ef('0x41')]({},_0x5583d3,_0x32e749[_0x40ef('0x42')]);return db[_0x40ef('0x38')]['find'](_0x5583d3)[_0x40ef('0x23')](handleEntityNotFound(_0x2e7971,null))['then'](respondWithResult(_0x2e7971,null))[_0x40ef('0x3d')](handleError(_0x2e7971,null));};exports[_0x40ef('0x43')]=function(_0x1ccc24,_0x407f23){return db[_0x40ef('0x38')]['create'](_0x1ccc24[_0x40ef('0x44')],{})[_0x40ef('0x23')](respondWithResult(_0x407f23,0xc9))[_0x40ef('0x3d')](handleError(_0x407f23,null));};exports['update']=function(_0x10e2a7,_0x1e5190){if(_0x10e2a7[_0x40ef('0x44')]['id']){delete _0x10e2a7[_0x40ef('0x44')]['id'];}return db[_0x40ef('0x38')]['find']({'where':{'id':_0x10e2a7[_0x40ef('0x3f')]['id']}})[_0x40ef('0x23')](handleEntityNotFound(_0x1e5190,null))[_0x40ef('0x23')](saveUpdates(_0x10e2a7[_0x40ef('0x44')],null))[_0x40ef('0x23')](respondWithResult(_0x1e5190,null))[_0x40ef('0x3d')](handleError(_0x1e5190,null));};exports[_0x40ef('0x24')]=function(_0x4a5446,_0xc5306a){return db[_0x40ef('0x38')]['find']({'where':{'id':_0x4a5446[_0x40ef('0x3f')]['id']}})[_0x40ef('0x23')](handleEntityNotFound(_0xc5306a,null))[_0x40ef('0x23')](removeEntity(_0xc5306a,null))[_0x40ef('0x3d')](handleError(_0xc5306a,null));};exports['describe']=function(_0x232c44,_0x844a9c){return db['ChatQueueReport'][_0x40ef('0x45')]()['then'](respondWithResult(_0x844a9c,null))[_0x40ef('0x3d')](handleError(_0x844a9c,null));};