5a1608b36494d74b47a7ebe0cb4509f1605a3807
[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 _0xe635=['ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','sendStatus','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','destroy','then','status','error','stack','send','index','map','ChatQueueReport','rawAttributes','fieldName','type','model','name','keys','query','filters','intersection','fields','attributes','hasOwnProperty','order','sort','where','pick','VIRTUAL','merge','options','includeAll','include','findAll','rows','catch','params','find','create','body','update','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','path','sox','to-csv'];(function(_0x49818b,_0x11f5b9){var _0x58ec37=function(_0x56a59b){while(--_0x56a59b){_0x49818b['push'](_0x49818b['shift']());}};_0x58ec37(++_0x11f5b9);}(_0xe635,0x1be));var _0x5e63=function(_0x28e3d3,_0x54fb1b){_0x28e3d3=_0x28e3d3-0x0;var _0x257607=_0xe635[_0x28e3d3];return _0x257607;};'use strict';var emlformat=require(_0x5e63('0x0'));var rimraf=require(_0x5e63('0x1'));var zipdir=require(_0x5e63('0x2'));var jsonpatch=require(_0x5e63('0x3'));var rp=require(_0x5e63('0x4'));var moment=require(_0x5e63('0x5'));var BPromise=require(_0x5e63('0x6'));var Mustache=require('mustache');var util=require('util');var path=require(_0x5e63('0x7'));var sox=require(_0x5e63('0x8'));var csv=require(_0x5e63('0x9'));var ejs=require(_0x5e63('0xa'));var fs=require('fs');var fs_extra=require(_0x5e63('0xb'));var _=require(_0x5e63('0xc'));var squel=require(_0x5e63('0xd'));var crypto=require(_0x5e63('0xe'));var jsforce=require(_0x5e63('0xf'));var deskjs=require(_0x5e63('0x10'));var toCsv=require('to-csv');var querystring=require(_0x5e63('0x11'));var Papa=require(_0x5e63('0x12'));var Redis=require(_0x5e63('0x13'));var authService=require(_0x5e63('0x14'));var qs=require('../../components/parsers/qs');var as=require(_0x5e63('0x15'));var hardwareService=require(_0x5e63('0x16'));var logger=require('../../config/logger')(_0x5e63('0x17'));var utils=require(_0x5e63('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0x5e63('0x19'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1dcbf4,_0x23c833){_0x23c833=_0x23c833||0xcc;return function(_0x3bc901){if(_0x3bc901){return _0x1dcbf4[_0x5e63('0x1a')](_0x23c833);}return _0x1dcbf4['status'](_0x23c833)['end']();};}function respondWithResult(_0x560fee,_0x187e2e){_0x187e2e=_0x187e2e||0xc8;return function(_0x1fc0f8){if(_0x1fc0f8){return _0x560fee['status'](_0x187e2e)[_0x5e63('0x1b')](_0x1fc0f8);}};}function respondWithFilteredResult(_0x1f7149,_0x3c5d47){return function(_0x491e27){if(_0x491e27){var _0x42a714=typeof _0x3c5d47[_0x5e63('0x1c')]===_0x5e63('0x1d')&&typeof _0x3c5d47[_0x5e63('0x1e')]===_0x5e63('0x1d');var _0x578c68=_0x491e27[_0x5e63('0x1f')];var _0x42b370=_0x42a714?0x0:_0x3c5d47[_0x5e63('0x1c')];var _0xbdcef0=_0x42a714?_0x491e27[_0x5e63('0x1f')]:_0x3c5d47['offset']+_0x3c5d47[_0x5e63('0x1e')];var _0x566514;if(_0xbdcef0>=_0x578c68){_0xbdcef0=_0x578c68;_0x566514=0xc8;}else{_0x566514=0xce;}_0x1f7149['status'](_0x566514);return _0x1f7149[_0x5e63('0x20')](_0x5e63('0x21'),_0x42b370+'-'+_0xbdcef0+'/'+_0x578c68)[_0x5e63('0x1b')](_0x491e27);}return null;};}function patchUpdates(_0x2ba2f0){return function(_0x239d37){try{jsonpatch[_0x5e63('0x22')](_0x239d37,_0x2ba2f0,!![]);}catch(_0x464b76){return BPromise[_0x5e63('0x23')](_0x464b76);}return _0x239d37[_0x5e63('0x24')]();};}function saveUpdates(_0x3fdabb,_0x4c52f9){return function(_0x11c00f){if(_0x11c00f){return _0x11c00f['update'](_0x3fdabb)['then'](function(_0xeeff0e){return _0xeeff0e;});}return null;};}function removeEntity(_0x3ff002,_0x2d9387){return function(_0x9dc630){if(_0x9dc630){return _0x9dc630[_0x5e63('0x25')]()[_0x5e63('0x26')](function(){_0x3ff002[_0x5e63('0x27')](0xcc)['end']();});}};}function handleEntityNotFound(_0x275715,_0x58628a){return function(_0xeef6b7){if(!_0xeef6b7){_0x275715[_0x5e63('0x1a')](0x194);}return _0xeef6b7;};}function handleError(_0x5b468d,_0x3f9440){_0x3f9440=_0x3f9440||0x1f4;return function(_0x4fe1b3){logger[_0x5e63('0x28')](_0x4fe1b3[_0x5e63('0x29')]);if(_0x4fe1b3['name']){delete _0x4fe1b3['name'];}_0x5b468d[_0x5e63('0x27')](_0x3f9440)[_0x5e63('0x2a')](_0x4fe1b3);};}exports[_0x5e63('0x2b')]=function(_0x395bb2,_0x38da60){var _0x25c635={},_0x4b3e42={},_0x104694={'count':0x0,'rows':[]};var _0x56a105=_[_0x5e63('0x2c')](db[_0x5e63('0x2d')][_0x5e63('0x2e')],function(_0x2bd382){return{'name':_0x2bd382[_0x5e63('0x2f')],'type':_0x2bd382[_0x5e63('0x30')]['key']};});_0x4b3e42[_0x5e63('0x31')]=_[_0x5e63('0x2c')](_0x56a105,_0x5e63('0x32'));_0x4b3e42['query']=_[_0x5e63('0x33')](_0x395bb2[_0x5e63('0x34')]);_0x4b3e42[_0x5e63('0x35')]=_[_0x5e63('0x36')](_0x4b3e42['model'],_0x4b3e42['query']);_0x25c635['attributes']=_['intersection'](_0x4b3e42[_0x5e63('0x31')],qs[_0x5e63('0x37')](_0x395bb2[_0x5e63('0x34')]['fields']));_0x25c635[_0x5e63('0x38')]=_0x25c635[_0x5e63('0x38')]['length']?_0x25c635[_0x5e63('0x38')]:_0x4b3e42[_0x5e63('0x31')];if(!_0x395bb2[_0x5e63('0x34')][_0x5e63('0x39')]('nolimit')){_0x25c635[_0x5e63('0x1e')]=qs['limit'](_0x395bb2['query'][_0x5e63('0x1e')]);_0x25c635[_0x5e63('0x1c')]=qs[_0x5e63('0x1c')](_0x395bb2[_0x5e63('0x34')]['offset']);}_0x25c635[_0x5e63('0x3a')]=qs[_0x5e63('0x3b')](_0x395bb2[_0x5e63('0x34')][_0x5e63('0x3b')]);_0x25c635[_0x5e63('0x3c')]=qs[_0x5e63('0x35')](_[_0x5e63('0x3d')](_0x395bb2[_0x5e63('0x34')],_0x4b3e42['filters']),_0x56a105);if(_0x395bb2[_0x5e63('0x34')]['filter']){_0x25c635[_0x5e63('0x3c')]=_['merge'](_0x25c635[_0x5e63('0x3c')],{'$or':_[_0x5e63('0x2c')](_0x56a105,function(_0x5555fc){if(_0x5555fc[_0x5e63('0x30')]!==_0x5e63('0x3e')){var _0x14a660={};_0x14a660[_0x5555fc[_0x5e63('0x32')]]={'$like':'%'+_0x395bb2['query']['filter']+'%'};return _0x14a660;}})});}_0x25c635=_[_0x5e63('0x3f')]({},_0x25c635,_0x395bb2[_0x5e63('0x40')]);var _0x288ab1={'where':_0x25c635[_0x5e63('0x3c')]};return db['ChatQueueReport']['count'](_0x288ab1)['then'](function(_0x416f30){_0x104694[_0x5e63('0x1f')]=_0x416f30;if(_0x395bb2[_0x5e63('0x34')][_0x5e63('0x41')]){_0x25c635[_0x5e63('0x42')]=[{'all':!![]}];}return db['ChatQueueReport'][_0x5e63('0x43')](_0x25c635);})[_0x5e63('0x26')](function(_0x51b36c){_0x104694[_0x5e63('0x44')]=_0x51b36c;return _0x104694;})['then'](respondWithFilteredResult(_0x38da60,_0x25c635))[_0x5e63('0x45')](handleError(_0x38da60,null));};exports['show']=function(_0x286266,_0x3c544c){var _0x14861f={'raw':!![],'where':{'id':_0x286266[_0x5e63('0x46')]['id']}},_0x4d1bf1={};_0x4d1bf1[_0x5e63('0x31')]=_[_0x5e63('0x33')](db[_0x5e63('0x2d')][_0x5e63('0x2e')]);_0x4d1bf1[_0x5e63('0x34')]=_['keys'](_0x286266[_0x5e63('0x34')]);_0x4d1bf1[_0x5e63('0x35')]=_[_0x5e63('0x36')](_0x4d1bf1[_0x5e63('0x31')],_0x4d1bf1[_0x5e63('0x34')]);_0x14861f['attributes']=_[_0x5e63('0x36')](_0x4d1bf1[_0x5e63('0x31')],qs['fields'](_0x286266['query'][_0x5e63('0x37')]));_0x14861f['attributes']=_0x14861f[_0x5e63('0x38')]['length']?_0x14861f['attributes']:_0x4d1bf1[_0x5e63('0x31')];if(_0x286266[_0x5e63('0x34')][_0x5e63('0x41')]){_0x14861f[_0x5e63('0x42')]=[{'all':!![]}];}_0x14861f=_[_0x5e63('0x3f')]({},_0x14861f,_0x286266[_0x5e63('0x40')]);return db[_0x5e63('0x2d')][_0x5e63('0x47')](_0x14861f)[_0x5e63('0x26')](handleEntityNotFound(_0x3c544c,null))[_0x5e63('0x26')](respondWithResult(_0x3c544c,null))[_0x5e63('0x45')](handleError(_0x3c544c,null));};exports[_0x5e63('0x48')]=function(_0x266493,_0x571e6d){return db[_0x5e63('0x2d')][_0x5e63('0x48')](_0x266493[_0x5e63('0x49')],{})[_0x5e63('0x26')](respondWithResult(_0x571e6d,0xc9))[_0x5e63('0x45')](handleError(_0x571e6d,null));};exports[_0x5e63('0x4a')]=function(_0x4aad13,_0x2968bd){if(_0x4aad13['body']['id']){delete _0x4aad13[_0x5e63('0x49')]['id'];}return db['ChatQueueReport'][_0x5e63('0x47')]({'where':{'id':_0x4aad13[_0x5e63('0x46')]['id']}})['then'](handleEntityNotFound(_0x2968bd,null))['then'](saveUpdates(_0x4aad13['body'],null))[_0x5e63('0x26')](respondWithResult(_0x2968bd,null))['catch'](handleError(_0x2968bd,null));};exports[_0x5e63('0x25')]=function(_0x4be837,_0x43001f){return db[_0x5e63('0x2d')][_0x5e63('0x47')]({'where':{'id':_0x4be837['params']['id']}})['then'](handleEntityNotFound(_0x43001f,null))[_0x5e63('0x26')](removeEntity(_0x43001f,null))['catch'](handleError(_0x43001f,null));};exports[_0x5e63('0x4b')]=function(_0x24426f,_0x82e226){return db['ChatQueueReport'][_0x5e63('0x4b')]()['then'](respondWithResult(_0x82e226,null))[_0x5e63('0x45')](handleError(_0x82e226,null));};