0c223239711c4995a2489a34b25ecac0eb1c8eae
[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 _0x96e0=['ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','limit','undefined','count','Content-Range','reject','save','update','destroy','then','sendStatus','stack','name','send','map','ChatQueueReport','rawAttributes','fieldName','type','key','model','query','filters','intersection','attributes','fields','length','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','show','params','keys','include','options','catch','create','body','describe','eml-format','zip-dir','moment','bluebird','mustache','util','ejs','fs-extra','lodash','squel','crypto','jsforce','to-csv','papaparse'];(function(_0x2dcbb4,_0x5101ee){var _0x1cd307=function(_0x1516e9){while(--_0x1516e9){_0x2dcbb4['push'](_0x2dcbb4['shift']());}};_0x1cd307(++_0x5101ee);}(_0x96e0,0x7e));var _0x096e=function(_0x4e6e10,_0x15cb03){_0x4e6e10=_0x4e6e10-0x0;var _0x375671=_0x96e0[_0x4e6e10];return _0x375671;};'use strict';var emlformat=require(_0x096e('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x096e('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x096e('0x2'));var BPromise=require(_0x096e('0x3'));var Mustache=require(_0x096e('0x4'));var util=require(_0x096e('0x5'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x096e('0x6'));var fs=require('fs');var fs_extra=require(_0x096e('0x7'));var _=require(_0x096e('0x8'));var squel=require(_0x096e('0x9'));var crypto=require(_0x096e('0xa'));var jsforce=require(_0x096e('0xb'));var deskjs=require('desk.js');var toCsv=require(_0x096e('0xc'));var querystring=require('querystring');var Papa=require(_0x096e('0xd'));var Redis=require(_0x096e('0xe'));var authService=require(_0x096e('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0x096e('0x10'));var hardwareService=require(_0x096e('0x11'));var logger=require(_0x096e('0x12'))('api');var utils=require(_0x096e('0x13'));var config=require(_0x096e('0x14'));var licenseUtil=require(_0x096e('0x15'));var db=require(_0x096e('0x16'))['db'];function respondWithStatusCode(_0x1b5058,_0xdf4398){_0xdf4398=_0xdf4398||0xcc;return function(_0xaf8fce){if(_0xaf8fce){return _0x1b5058['sendStatus'](_0xdf4398);}return _0x1b5058[_0x096e('0x17')](_0xdf4398)[_0x096e('0x18')]();};}function respondWithResult(_0x597d9c,_0x73ac62){_0x73ac62=_0x73ac62||0xc8;return function(_0x18fe8f){if(_0x18fe8f){return _0x597d9c[_0x096e('0x17')](_0x73ac62)[_0x096e('0x19')](_0x18fe8f);}};}function respondWithFilteredResult(_0x5df693,_0x1da677){return function(_0xbf0294){if(_0xbf0294){var _0x53e483=typeof _0x1da677[_0x096e('0x1a')]==='undefined'&&typeof _0x1da677[_0x096e('0x1b')]===_0x096e('0x1c');var _0x1bf7c5=_0xbf0294[_0x096e('0x1d')];var _0x396f57=_0x53e483?0x0:_0x1da677[_0x096e('0x1a')];var _0x32da71=_0x53e483?_0xbf0294['count']:_0x1da677['offset']+_0x1da677['limit'];var _0x29a380;if(_0x32da71>=_0x1bf7c5){_0x32da71=_0x1bf7c5;_0x29a380=0xc8;}else{_0x29a380=0xce;}_0x5df693[_0x096e('0x17')](_0x29a380);return _0x5df693['set'](_0x096e('0x1e'),_0x396f57+'-'+_0x32da71+'/'+_0x1bf7c5)[_0x096e('0x19')](_0xbf0294);}return null;};}function patchUpdates(_0x4fdbcd){return function(_0x3a99fb){try{jsonpatch['apply'](_0x3a99fb,_0x4fdbcd,!![]);}catch(_0x4c92ab){return BPromise[_0x096e('0x1f')](_0x4c92ab);}return _0x3a99fb[_0x096e('0x20')]();};}function saveUpdates(_0x508663,_0x22e788){return function(_0x63bce1){if(_0x63bce1){return _0x63bce1[_0x096e('0x21')](_0x508663)['then'](function(_0x508232){return _0x508232;});}return null;};}function removeEntity(_0x310556,_0x4124b8){return function(_0x2affa2){if(_0x2affa2){return _0x2affa2[_0x096e('0x22')]()[_0x096e('0x23')](function(){_0x310556['status'](0xcc)[_0x096e('0x18')]();});}};}function handleEntityNotFound(_0x5f5189,_0x2a368a){return function(_0xccfaac){if(!_0xccfaac){_0x5f5189[_0x096e('0x24')](0x194);}return _0xccfaac;};}function handleError(_0x4d2941,_0xdb7a74){_0xdb7a74=_0xdb7a74||0x1f4;return function(_0x56a2c3){logger['error'](_0x56a2c3[_0x096e('0x25')]);if(_0x56a2c3[_0x096e('0x26')]){delete _0x56a2c3[_0x096e('0x26')];}_0x4d2941[_0x096e('0x17')](_0xdb7a74)[_0x096e('0x27')](_0x56a2c3);};}exports['index']=function(_0x3cbcac,_0x3a9d96){var _0x3686d7={},_0xe9a941={},_0x579c81={'count':0x0,'rows':[]};var _0x59c684=_[_0x096e('0x28')](db[_0x096e('0x29')][_0x096e('0x2a')],function(_0x686649){return{'name':_0x686649[_0x096e('0x2b')],'type':_0x686649[_0x096e('0x2c')][_0x096e('0x2d')]};});_0xe9a941[_0x096e('0x2e')]=_['map'](_0x59c684,_0x096e('0x26'));_0xe9a941[_0x096e('0x2f')]=_['keys'](_0x3cbcac[_0x096e('0x2f')]);_0xe9a941[_0x096e('0x30')]=_[_0x096e('0x31')](_0xe9a941[_0x096e('0x2e')],_0xe9a941['query']);_0x3686d7[_0x096e('0x32')]=_[_0x096e('0x31')](_0xe9a941[_0x096e('0x2e')],qs[_0x096e('0x33')](_0x3cbcac[_0x096e('0x2f')]['fields']));_0x3686d7[_0x096e('0x32')]=_0x3686d7[_0x096e('0x32')][_0x096e('0x34')]?_0x3686d7['attributes']:_0xe9a941[_0x096e('0x2e')];if(!_0x3cbcac['query']['hasOwnProperty']('nolimit')){_0x3686d7[_0x096e('0x1b')]=qs[_0x096e('0x1b')](_0x3cbcac[_0x096e('0x2f')][_0x096e('0x1b')]);_0x3686d7[_0x096e('0x1a')]=qs[_0x096e('0x1a')](_0x3cbcac['query'][_0x096e('0x1a')]);}_0x3686d7[_0x096e('0x35')]=qs['sort'](_0x3cbcac[_0x096e('0x2f')][_0x096e('0x36')]);_0x3686d7[_0x096e('0x37')]=qs['filters'](_[_0x096e('0x38')](_0x3cbcac['query'],_0xe9a941[_0x096e('0x30')]),_0x59c684);if(_0x3cbcac[_0x096e('0x2f')][_0x096e('0x39')]){_0x3686d7[_0x096e('0x37')]=_[_0x096e('0x3a')](_0x3686d7[_0x096e('0x37')],{'$or':_[_0x096e('0x28')](_0x59c684,function(_0x277b56){if(_0x277b56[_0x096e('0x2c')]!==_0x096e('0x3b')){var _0x5c8006={};_0x5c8006[_0x277b56[_0x096e('0x26')]]={'$like':'%'+_0x3cbcac['query'][_0x096e('0x39')]+'%'};return _0x5c8006;}})});}_0x3686d7=_['merge']({},_0x3686d7,_0x3cbcac['options']);var _0x7a4d5a={'where':_0x3686d7['where']};return db[_0x096e('0x29')][_0x096e('0x1d')](_0x7a4d5a)['then'](function(_0x101550){_0x579c81[_0x096e('0x1d')]=_0x101550;if(_0x3cbcac[_0x096e('0x2f')][_0x096e('0x3c')]){_0x3686d7['include']=[{'all':!![]}];}return db[_0x096e('0x29')]['findAll'](_0x3686d7);})[_0x096e('0x23')](function(_0x3dc295){_0x579c81['rows']=_0x3dc295;return _0x579c81;})[_0x096e('0x23')](respondWithFilteredResult(_0x3a9d96,_0x3686d7))['catch'](handleError(_0x3a9d96,null));};exports[_0x096e('0x3d')]=function(_0x8317c1,_0x4b1618){var _0x4f9794={'raw':!![],'where':{'id':_0x8317c1[_0x096e('0x3e')]['id']}},_0x5bd8d3={};_0x5bd8d3[_0x096e('0x2e')]=_[_0x096e('0x3f')](db[_0x096e('0x29')][_0x096e('0x2a')]);_0x5bd8d3[_0x096e('0x2f')]=_[_0x096e('0x3f')](_0x8317c1[_0x096e('0x2f')]);_0x5bd8d3['filters']=_[_0x096e('0x31')](_0x5bd8d3[_0x096e('0x2e')],_0x5bd8d3[_0x096e('0x2f')]);_0x4f9794[_0x096e('0x32')]=_[_0x096e('0x31')](_0x5bd8d3[_0x096e('0x2e')],qs[_0x096e('0x33')](_0x8317c1['query'][_0x096e('0x33')]));_0x4f9794[_0x096e('0x32')]=_0x4f9794[_0x096e('0x32')]['length']?_0x4f9794[_0x096e('0x32')]:_0x5bd8d3[_0x096e('0x2e')];if(_0x8317c1[_0x096e('0x2f')]['includeAll']){_0x4f9794[_0x096e('0x40')]=[{'all':!![]}];}_0x4f9794=_['merge']({},_0x4f9794,_0x8317c1[_0x096e('0x41')]);return db[_0x096e('0x29')]['find'](_0x4f9794)[_0x096e('0x23')](handleEntityNotFound(_0x4b1618,null))['then'](respondWithResult(_0x4b1618,null))[_0x096e('0x42')](handleError(_0x4b1618,null));};exports[_0x096e('0x43')]=function(_0x2e6997,_0x1db2ae){return db['ChatQueueReport'][_0x096e('0x43')](_0x2e6997[_0x096e('0x44')],{})[_0x096e('0x23')](respondWithResult(_0x1db2ae,0xc9))[_0x096e('0x42')](handleError(_0x1db2ae,null));};exports[_0x096e('0x21')]=function(_0x2a849b,_0x1becda){if(_0x2a849b[_0x096e('0x44')]['id']){delete _0x2a849b[_0x096e('0x44')]['id'];}return db[_0x096e('0x29')]['find']({'where':{'id':_0x2a849b[_0x096e('0x3e')]['id']}})[_0x096e('0x23')](handleEntityNotFound(_0x1becda,null))['then'](saveUpdates(_0x2a849b[_0x096e('0x44')],null))['then'](respondWithResult(_0x1becda,null))[_0x096e('0x42')](handleError(_0x1becda,null));};exports[_0x096e('0x22')]=function(_0x43cebc,_0x4609bb){return db[_0x096e('0x29')]['find']({'where':{'id':_0x43cebc[_0x096e('0x3e')]['id']}})[_0x096e('0x23')](handleEntityNotFound(_0x4609bb,null))[_0x096e('0x23')](removeEntity(_0x4609bb,null))[_0x096e('0x42')](handleError(_0x4609bb,null));};exports['describe']=function(_0x19c6f4,_0x1d4640){return db['ChatQueueReport'][_0x096e('0x45')]()[_0x096e('0x23')](respondWithResult(_0x1d4640,null))['catch'](handleError(_0x1d4640,null));};