26d6cb25bbc8f8c6aedbe1d59b205c46a00ea7dd
[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 _0x9aea=['query','keys','filters','attributes','intersection','fields','length','nolimit','order','sort','pick','filter','where','merge','options','includeAll','include','findAll','catch','show','params','find','create','body','describe','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','to-csv','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','count','offset','limit','set','Content-Range','json','apply','reject','update','then','destroy','end','error','name','send','map','ChatQueueReport','rawAttributes','fieldName','type','key','model'];(function(_0x4a9d1c,_0x122fba){var _0x5ef6e4=function(_0x453f22){while(--_0x453f22){_0x4a9d1c['push'](_0x4a9d1c['shift']());}};_0x5ef6e4(++_0x122fba);}(_0x9aea,0x139));var _0xa9ae=function(_0x1a9589,_0x43aef1){_0x1a9589=_0x1a9589-0x0;var _0x102906=_0x9aea[_0x1a9589];return _0x102906;};'use strict';var pdf=require(_0xa9ae('0x0'));var emlformat=require(_0xa9ae('0x1'));var rimraf=require(_0xa9ae('0x2'));var zipdir=require(_0xa9ae('0x3'));var jsonpatch=require(_0xa9ae('0x4'));var rp=require(_0xa9ae('0x5'));var moment=require(_0xa9ae('0x6'));var BPromise=require(_0xa9ae('0x7'));var Mustache=require(_0xa9ae('0x8'));var util=require('util');var path=require(_0xa9ae('0x9'));var sox=require('sox');var csv=require(_0xa9ae('0xa'));var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0xa9ae('0xb'));var crypto=require(_0xa9ae('0xc'));var jsforce=require(_0xa9ae('0xd'));var deskjs=require(_0xa9ae('0xe'));var toCsv=require(_0xa9ae('0xa'));var querystring=require(_0xa9ae('0xf'));var Papa=require(_0xa9ae('0x10'));var Redis=require(_0xa9ae('0x11'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xa9ae('0x12'));var logger=require('../../config/logger')('api');var utils=require(_0xa9ae('0x13'));var config=require(_0xa9ae('0x14'));var licenseUtil=require(_0xa9ae('0x15'));var db=require(_0xa9ae('0x16'))['db'];function respondWithStatusCode(_0xc4c434,_0x37bf91){_0x37bf91=_0x37bf91||0xcc;return function(_0xfca2ac){if(_0xfca2ac){return _0xc4c434[_0xa9ae('0x17')](_0x37bf91);}return _0xc4c434['status'](_0x37bf91)['end']();};}function respondWithResult(_0x49a4ad,_0x172d66){_0x172d66=_0x172d66||0xc8;return function(_0x41884e){if(_0x41884e){return _0x49a4ad[_0xa9ae('0x18')](_0x172d66)['json'](_0x41884e);}};}function respondWithFilteredResult(_0x3e5e04,_0x186ec9){return function(_0x4b0ab5){if(_0x4b0ab5){var _0x2d84dd=_0x4b0ab5[_0xa9ae('0x19')],_0x573534=_0x186ec9[_0xa9ae('0x1a')],_0x4e51d3=_0x186ec9[_0xa9ae('0x1a')]+_0x186ec9[_0xa9ae('0x1b')],_0x2ee279;if(_0x4e51d3>=_0x2d84dd){_0x4e51d3=_0x2d84dd;_0x2ee279=0xc8;}else{_0x2ee279=0xce;}_0x3e5e04['status'](_0x2ee279);return _0x3e5e04[_0xa9ae('0x1c')](_0xa9ae('0x1d'),_0x573534+'-'+_0x4e51d3+'/'+_0x2d84dd)[_0xa9ae('0x1e')](_0x4b0ab5);}return null;};}function patchUpdates(_0x8aaea){return function(_0x57215c){try{jsonpatch[_0xa9ae('0x1f')](_0x57215c,_0x8aaea,!![]);}catch(_0x518708){return BPromise[_0xa9ae('0x20')](_0x518708);}return _0x57215c['save']();};}function saveUpdates(_0x39481c,_0x413e1a){return function(_0x45ebc5){if(_0x45ebc5){return _0x45ebc5[_0xa9ae('0x21')](_0x39481c)[_0xa9ae('0x22')](function(_0x305b01){return _0x305b01;});}return null;};}function removeEntity(_0x406c3e,_0x11f29a){return function(_0x421faa){if(_0x421faa){return _0x421faa[_0xa9ae('0x23')]()['then'](function(){_0x406c3e['status'](0xcc)[_0xa9ae('0x24')]();});}};}function handleEntityNotFound(_0x55b61f,_0x27b65c){return function(_0x18cf13){if(!_0x18cf13){_0x55b61f['sendStatus'](0x194);}return _0x18cf13;};}function handleError(_0x55c6b0,_0x34d8d4){_0x34d8d4=_0x34d8d4||0x1f4;return function(_0x4c3096){logger[_0xa9ae('0x25')](_0x4c3096['stack']);if(_0x4c3096[_0xa9ae('0x26')]){delete _0x4c3096[_0xa9ae('0x26')];}_0x55c6b0[_0xa9ae('0x18')](_0x34d8d4)[_0xa9ae('0x27')](_0x4c3096);};}exports['index']=function(_0x179157,_0x1f209a){var _0x2dbc49={},_0x2f8426={},_0x35079c={'count':0x0,'rows':[]};var _0x4bb429=_[_0xa9ae('0x28')](db[_0xa9ae('0x29')][_0xa9ae('0x2a')],function(_0xea9e09){return{'name':_0xea9e09[_0xa9ae('0x2b')],'type':_0xea9e09[_0xa9ae('0x2c')][_0xa9ae('0x2d')]};});_0x2f8426[_0xa9ae('0x2e')]=_[_0xa9ae('0x28')](_0x4bb429,_0xa9ae('0x26'));_0x2f8426[_0xa9ae('0x2f')]=_[_0xa9ae('0x30')](_0x179157[_0xa9ae('0x2f')]);_0x2f8426[_0xa9ae('0x31')]=_['intersection'](_0x2f8426[_0xa9ae('0x2e')],_0x2f8426['query']);_0x2dbc49[_0xa9ae('0x32')]=_[_0xa9ae('0x33')](_0x2f8426[_0xa9ae('0x2e')],qs['fields'](_0x179157[_0xa9ae('0x2f')][_0xa9ae('0x34')]));_0x2dbc49[_0xa9ae('0x32')]=_0x2dbc49['attributes'][_0xa9ae('0x35')]?_0x2dbc49['attributes']:_0x2f8426[_0xa9ae('0x2e')];if(!_0x179157[_0xa9ae('0x2f')]['hasOwnProperty'](_0xa9ae('0x36'))){_0x2dbc49[_0xa9ae('0x1b')]=qs['limit'](_0x179157[_0xa9ae('0x2f')][_0xa9ae('0x1b')]);_0x2dbc49[_0xa9ae('0x1a')]=qs['offset'](_0x179157[_0xa9ae('0x2f')][_0xa9ae('0x1a')]);}_0x2dbc49[_0xa9ae('0x37')]=qs[_0xa9ae('0x38')](_0x179157['query']['sort']);_0x2dbc49['where']=qs['filters'](_[_0xa9ae('0x39')](_0x179157[_0xa9ae('0x2f')],_0x2f8426[_0xa9ae('0x31')]),_0x4bb429);if(_0x179157[_0xa9ae('0x2f')][_0xa9ae('0x3a')]){_0x2dbc49[_0xa9ae('0x3b')]=_[_0xa9ae('0x3c')](_0x2dbc49['where'],{'$or':_[_0xa9ae('0x28')](_0x4bb429,function(_0x30c05b){if(_0x30c05b['type']!=='VIRTUAL'){var _0x4237d3={};_0x4237d3[_0x30c05b[_0xa9ae('0x26')]]={'$like':'%'+_0x179157[_0xa9ae('0x2f')][_0xa9ae('0x3a')]+'%'};return _0x4237d3;}})});}_0x2dbc49=_[_0xa9ae('0x3c')]({},_0x2dbc49,_0x179157[_0xa9ae('0x3d')]);var _0x4ad6be={'where':_0x2dbc49[_0xa9ae('0x3b')]};return db['ChatQueueReport'][_0xa9ae('0x19')](_0x4ad6be)[_0xa9ae('0x22')](function(_0x1b6a47){_0x35079c[_0xa9ae('0x19')]=_0x1b6a47;if(_0x179157['query'][_0xa9ae('0x3e')]){_0x2dbc49[_0xa9ae('0x3f')]=[{'all':!![]}];}return db[_0xa9ae('0x29')][_0xa9ae('0x40')](_0x2dbc49);})[_0xa9ae('0x22')](function(_0xbcdfe4){_0x35079c['rows']=_0xbcdfe4;return _0x35079c;})[_0xa9ae('0x22')](respondWithFilteredResult(_0x1f209a,_0x2dbc49))[_0xa9ae('0x41')](handleError(_0x1f209a,null));};exports[_0xa9ae('0x42')]=function(_0x223f0d,_0x3aa2d6){var _0x462da6={'raw':!![],'where':{'id':_0x223f0d[_0xa9ae('0x43')]['id']}},_0x4d29f2={};_0x4d29f2[_0xa9ae('0x2e')]=_['keys'](db[_0xa9ae('0x29')][_0xa9ae('0x2a')]);_0x4d29f2[_0xa9ae('0x2f')]=_['keys'](_0x223f0d[_0xa9ae('0x2f')]);_0x4d29f2['filters']=_['intersection'](_0x4d29f2[_0xa9ae('0x2e')],_0x4d29f2[_0xa9ae('0x2f')]);_0x462da6[_0xa9ae('0x32')]=_[_0xa9ae('0x33')](_0x4d29f2[_0xa9ae('0x2e')],qs[_0xa9ae('0x34')](_0x223f0d[_0xa9ae('0x2f')]['fields']));_0x462da6['attributes']=_0x462da6[_0xa9ae('0x32')]['length']?_0x462da6[_0xa9ae('0x32')]:_0x4d29f2['model'];if(_0x223f0d[_0xa9ae('0x2f')][_0xa9ae('0x3e')]){_0x462da6['include']=[{'all':!![]}];}_0x462da6=_[_0xa9ae('0x3c')]({},_0x462da6,_0x223f0d[_0xa9ae('0x3d')]);return db['ChatQueueReport'][_0xa9ae('0x44')](_0x462da6)[_0xa9ae('0x22')](handleEntityNotFound(_0x3aa2d6,null))[_0xa9ae('0x22')](respondWithResult(_0x3aa2d6,null))[_0xa9ae('0x41')](handleError(_0x3aa2d6,null));};exports[_0xa9ae('0x45')]=function(_0x454398,_0x42b876){return db[_0xa9ae('0x29')]['create'](_0x454398[_0xa9ae('0x46')],{})[_0xa9ae('0x22')](respondWithResult(_0x42b876,0xc9))[_0xa9ae('0x41')](handleError(_0x42b876,null));};exports[_0xa9ae('0x21')]=function(_0x5f3d53,_0x11fc05){if(_0x5f3d53['body']['id']){delete _0x5f3d53[_0xa9ae('0x46')]['id'];}return db['ChatQueueReport'][_0xa9ae('0x44')]({'where':{'id':_0x5f3d53['params']['id']}})[_0xa9ae('0x22')](handleEntityNotFound(_0x11fc05,null))[_0xa9ae('0x22')](saveUpdates(_0x5f3d53[_0xa9ae('0x46')],null))[_0xa9ae('0x22')](respondWithResult(_0x11fc05,null))[_0xa9ae('0x41')](handleError(_0x11fc05,null));};exports['destroy']=function(_0x4552ca,_0x48cec6){return db['ChatQueueReport'][_0xa9ae('0x44')]({'where':{'id':_0x4552ca[_0xa9ae('0x43')]['id']}})[_0xa9ae('0x22')](handleEntityNotFound(_0x48cec6,null))[_0xa9ae('0x22')](removeEntity(_0x48cec6,null))[_0xa9ae('0x41')](handleError(_0x48cec6,null));};exports[_0xa9ae('0x47')]=function(_0x77c22b,_0x105786){return db[_0xa9ae('0x29')]['describe']()[_0xa9ae('0x22')](respondWithResult(_0x105786,null))[_0xa9ae('0x41')](handleError(_0x105786,null));};