3114bf65c4ddd1d41cefb3bfd3cfb10c1823658a
[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 _0xfa62=['key','model','query','keys','intersection','attributes','fields','length','order','sort','filters','pick','filter','where','merge','options','ChatQueueReport','includeAll','include','catch','show','params','create','find','describe','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','offset','undefined','count','limit','Content-Range','json','apply','reject','save','update','then','sendStatus','error','stack','name','render','body','message','agent','interaction','account','index','map','rawAttributes','fieldName','type'];(function(_0xcd5d83,_0x20d556){var _0x3e52c0=function(_0x5d70cd){while(--_0x5d70cd){_0xcd5d83['push'](_0xcd5d83['shift']());}};_0x3e52c0(++_0x20d556);}(_0xfa62,0x106));var _0x2fa6=function(_0x44101d,_0xd7b68b){_0x44101d=_0x44101d-0x0;var _0x1525f9=_0xfa62[_0x44101d];return _0x1525f9;};'use strict';var emlformat=require(_0x2fa6('0x0'));var rimraf=require(_0x2fa6('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x2fa6('0x2'));var rp=require(_0x2fa6('0x3'));var moment=require(_0x2fa6('0x4'));var BPromise=require(_0x2fa6('0x5'));var Mustache=require(_0x2fa6('0x6'));var util=require(_0x2fa6('0x7'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x2fa6('0x8'));var fs=require('fs');var fs_extra=require(_0x2fa6('0x9'));var _=require(_0x2fa6('0xa'));var squel=require(_0x2fa6('0xb'));var crypto=require(_0x2fa6('0xc'));var jsforce=require(_0x2fa6('0xd'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x2fa6('0xe'));var Papa=require(_0x2fa6('0xf'));var Redis=require(_0x2fa6('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x2fa6('0x11'));var as=require(_0x2fa6('0x12'));var hardwareService=require(_0x2fa6('0x13'));var logger=require(_0x2fa6('0x14'))(_0x2fa6('0x15'));var utils=require(_0x2fa6('0x16'));var config=require(_0x2fa6('0x17'));var licenseUtil=require(_0x2fa6('0x18'));var db=require(_0x2fa6('0x19'))['db'];function respondWithStatusCode(_0x5eaecc,_0x2f1f15){_0x2f1f15=_0x2f1f15||0xcc;return function(_0x15d96c){if(_0x15d96c){return _0x5eaecc['sendStatus'](_0x2f1f15);}return _0x5eaecc[_0x2fa6('0x1a')](_0x2f1f15)[_0x2fa6('0x1b')]();};}function respondWithResult(_0x1d3b59,_0x315070){_0x315070=_0x315070||0xc8;return function(_0x562001){if(_0x562001){return _0x1d3b59['status'](_0x315070)['json'](_0x562001);}};}function respondWithFilteredResult(_0x3b79fa,_0x548d60){return function(_0x2ad485){if(_0x2ad485){var _0x42def4=typeof _0x548d60[_0x2fa6('0x1c')]===_0x2fa6('0x1d')&&typeof _0x548d60['limit']===_0x2fa6('0x1d');var _0x4d00db=_0x2ad485[_0x2fa6('0x1e')];var _0x10e9a8=_0x42def4?0x0:_0x548d60['offset'];var _0x102aa0=_0x42def4?_0x2ad485[_0x2fa6('0x1e')]:_0x548d60['offset']+_0x548d60[_0x2fa6('0x1f')];var _0x2de3cf;if(_0x102aa0>=_0x4d00db){_0x102aa0=_0x4d00db;_0x2de3cf=0xc8;}else{_0x2de3cf=0xce;}_0x3b79fa['status'](_0x2de3cf);return _0x3b79fa['set'](_0x2fa6('0x20'),_0x10e9a8+'-'+_0x102aa0+'/'+_0x4d00db)[_0x2fa6('0x21')](_0x2ad485);}return null;};}function patchUpdates(_0x226247){return function(_0x4786cc){try{jsonpatch[_0x2fa6('0x22')](_0x4786cc,_0x226247,!![]);}catch(_0xcb5e29){return BPromise[_0x2fa6('0x23')](_0xcb5e29);}return _0x4786cc[_0x2fa6('0x24')]();};}function saveUpdates(_0x45ee65,_0xccc68a){return function(_0x4b6840){if(_0x4b6840){return _0x4b6840[_0x2fa6('0x25')](_0x45ee65)['then'](function(_0x3803d6){return _0x3803d6;});}return null;};}function removeEntity(_0x120bd0,_0x5e9fd5){return function(_0x5a86a9){if(_0x5a86a9){return _0x5a86a9['destroy']()[_0x2fa6('0x26')](function(){_0x120bd0['status'](0xcc)[_0x2fa6('0x1b')]();});}};}function handleEntityNotFound(_0x3e5502,_0x512bb1){return function(_0x415e64){if(!_0x415e64){_0x3e5502[_0x2fa6('0x27')](0x194);}return _0x415e64;};}function handleError(_0x212652,_0x31ff5c){_0x31ff5c=_0x31ff5c||0x1f4;return function(_0x4b386e){logger[_0x2fa6('0x28')](_0x4b386e[_0x2fa6('0x29')]);if(_0x4b386e['name']){delete _0x4b386e[_0x2fa6('0x2a')];}_0x212652[_0x2fa6('0x1a')](_0x31ff5c)['send'](_0x4b386e);};}function getMustacheRender(_0x581ec8,_0x1b1f18){return Mustache[_0x2fa6('0x2b')](_0x581ec8,_['merge'](_0x1b1f18[_0x2fa6('0x2c')],{'contact':_0x1b1f18['contact'],'message':_0x1b1f18[_0x2fa6('0x2d')],'agent':_0x1b1f18[_0x2fa6('0x2e')],'interaction':_0x1b1f18[_0x2fa6('0x2f')],'account':_0x1b1f18[_0x2fa6('0x30')]}))||'';}exports[_0x2fa6('0x31')]=function(_0x12aea2,_0x34a8fe){var _0xb32924={},_0x1dd972={},_0x326c32={'count':0x0,'rows':[]};var _0x28073c=_[_0x2fa6('0x32')](db['ChatQueueReport'][_0x2fa6('0x33')],function(_0x2ab1da){return{'name':_0x2ab1da[_0x2fa6('0x34')],'type':_0x2ab1da[_0x2fa6('0x35')][_0x2fa6('0x36')]};});_0x1dd972[_0x2fa6('0x37')]=_['map'](_0x28073c,_0x2fa6('0x2a'));_0x1dd972[_0x2fa6('0x38')]=_[_0x2fa6('0x39')](_0x12aea2[_0x2fa6('0x38')]);_0x1dd972['filters']=_[_0x2fa6('0x3a')](_0x1dd972[_0x2fa6('0x37')],_0x1dd972[_0x2fa6('0x38')]);_0xb32924[_0x2fa6('0x3b')]=_[_0x2fa6('0x3a')](_0x1dd972[_0x2fa6('0x37')],qs[_0x2fa6('0x3c')](_0x12aea2[_0x2fa6('0x38')]['fields']));_0xb32924[_0x2fa6('0x3b')]=_0xb32924[_0x2fa6('0x3b')][_0x2fa6('0x3d')]?_0xb32924[_0x2fa6('0x3b')]:_0x1dd972[_0x2fa6('0x37')];if(!_0x12aea2[_0x2fa6('0x38')]['hasOwnProperty']('nolimit')){_0xb32924['limit']=qs['limit'](_0x12aea2['query'][_0x2fa6('0x1f')]);_0xb32924['offset']=qs['offset'](_0x12aea2[_0x2fa6('0x38')][_0x2fa6('0x1c')]);}_0xb32924[_0x2fa6('0x3e')]=qs['sort'](_0x12aea2[_0x2fa6('0x38')][_0x2fa6('0x3f')]);_0xb32924['where']=qs[_0x2fa6('0x40')](_[_0x2fa6('0x41')](_0x12aea2[_0x2fa6('0x38')],_0x1dd972[_0x2fa6('0x40')]),_0x28073c);if(_0x12aea2[_0x2fa6('0x38')][_0x2fa6('0x42')]){_0xb32924[_0x2fa6('0x43')]=_['merge'](_0xb32924[_0x2fa6('0x43')],{'$or':_[_0x2fa6('0x32')](_0x28073c,function(_0xe00134){if(_0xe00134[_0x2fa6('0x35')]!=='VIRTUAL'){var _0x1aff0d={};_0x1aff0d[_0xe00134[_0x2fa6('0x2a')]]={'$like':'%'+_0x12aea2['query']['filter']+'%'};return _0x1aff0d;}})});}_0xb32924=_[_0x2fa6('0x44')]({},_0xb32924,_0x12aea2[_0x2fa6('0x45')]);var _0x292054={'where':_0xb32924['where']};return db[_0x2fa6('0x46')][_0x2fa6('0x1e')](_0x292054)[_0x2fa6('0x26')](function(_0x278f81){_0x326c32[_0x2fa6('0x1e')]=_0x278f81;if(_0x12aea2[_0x2fa6('0x38')][_0x2fa6('0x47')]){_0xb32924[_0x2fa6('0x48')]=[{'all':!![]}];}return db[_0x2fa6('0x46')]['findAll'](_0xb32924);})[_0x2fa6('0x26')](function(_0x349cbf){_0x326c32['rows']=_0x349cbf;return _0x326c32;})[_0x2fa6('0x26')](respondWithFilteredResult(_0x34a8fe,_0xb32924))[_0x2fa6('0x49')](handleError(_0x34a8fe,null));};exports[_0x2fa6('0x4a')]=function(_0x4c4e3f,_0x19ab79){var _0x8e5a1b={'raw':!![],'where':{'id':_0x4c4e3f[_0x2fa6('0x4b')]['id']}},_0x3c6627={};_0x3c6627[_0x2fa6('0x37')]=_['keys'](db['ChatQueueReport'][_0x2fa6('0x33')]);_0x3c6627[_0x2fa6('0x38')]=_[_0x2fa6('0x39')](_0x4c4e3f[_0x2fa6('0x38')]);_0x3c6627[_0x2fa6('0x40')]=_['intersection'](_0x3c6627[_0x2fa6('0x37')],_0x3c6627[_0x2fa6('0x38')]);_0x8e5a1b[_0x2fa6('0x3b')]=_['intersection'](_0x3c6627[_0x2fa6('0x37')],qs[_0x2fa6('0x3c')](_0x4c4e3f['query']['fields']));_0x8e5a1b['attributes']=_0x8e5a1b[_0x2fa6('0x3b')][_0x2fa6('0x3d')]?_0x8e5a1b[_0x2fa6('0x3b')]:_0x3c6627[_0x2fa6('0x37')];if(_0x4c4e3f[_0x2fa6('0x38')]['includeAll']){_0x8e5a1b[_0x2fa6('0x48')]=[{'all':!![]}];}_0x8e5a1b=_[_0x2fa6('0x44')]({},_0x8e5a1b,_0x4c4e3f['options']);return db[_0x2fa6('0x46')]['find'](_0x8e5a1b)[_0x2fa6('0x26')](handleEntityNotFound(_0x19ab79,null))[_0x2fa6('0x26')](respondWithResult(_0x19ab79,null))[_0x2fa6('0x49')](handleError(_0x19ab79,null));};exports[_0x2fa6('0x4c')]=function(_0x5ae853,_0x508f39){return db[_0x2fa6('0x46')][_0x2fa6('0x4c')](_0x5ae853[_0x2fa6('0x2c')],{})[_0x2fa6('0x26')](respondWithResult(_0x508f39,0xc9))[_0x2fa6('0x49')](handleError(_0x508f39,null));};exports['update']=function(_0x20462b,_0x3fc98a){if(_0x20462b['body']['id']){delete _0x20462b[_0x2fa6('0x2c')]['id'];}return db[_0x2fa6('0x46')][_0x2fa6('0x4d')]({'where':{'id':_0x20462b[_0x2fa6('0x4b')]['id']}})[_0x2fa6('0x26')](handleEntityNotFound(_0x3fc98a,null))['then'](saveUpdates(_0x20462b[_0x2fa6('0x2c')],null))[_0x2fa6('0x26')](respondWithResult(_0x3fc98a,null))[_0x2fa6('0x49')](handleError(_0x3fc98a,null));};exports['destroy']=function(_0x50dc78,_0x313227){return db[_0x2fa6('0x46')][_0x2fa6('0x4d')]({'where':{'id':_0x50dc78[_0x2fa6('0x4b')]['id']}})[_0x2fa6('0x26')](handleEntityNotFound(_0x313227,null))[_0x2fa6('0x26')](removeEntity(_0x313227,null))['catch'](handleError(_0x313227,null));};exports[_0x2fa6('0x4e')]=function(_0x4fba37,_0x58a36a){return db['ChatQueueReport'][_0x2fa6('0x4e')]()['then'](respondWithResult(_0x58a36a,null))[_0x2fa6('0x49')](handleError(_0x58a36a,null));};