504942a194dc15d36b2c45d8267c4c7dff26b0dc
[motion2.git] / server / api / openchannelQueueReport / openchannelQueueReport.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 _0xe92a=['send','index','map','OpenchannelQueueReport','rawAttributes','fieldName','type','key','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','findAll','rows','catch','show','params','include','find','create','body','destroy','describe','rimraf','fast-json-patch','moment','mustache','util','to-csv','ejs','fs-extra','squel','jsforce','querystring','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','then','error','stack','name'];(function(_0x5b644e,_0x2e5e07){var _0x49c6bf=function(_0x3032d9){while(--_0x3032d9){_0x5b644e['push'](_0x5b644e['shift']());}};_0x49c6bf(++_0x2e5e07);}(_0xe92a,0x1dc));var _0xae92=function(_0x4338ea,_0x25a290){_0x4338ea=_0x4338ea-0x0;var _0x662e09=_0xe92a[_0x4338ea];return _0x662e09;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xae92('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0xae92('0x1'));var rp=require('request-promise');var moment=require(_0xae92('0x2'));var BPromise=require('bluebird');var Mustache=require(_0xae92('0x3'));var util=require(_0xae92('0x4'));var path=require('path');var sox=require('sox');var csv=require(_0xae92('0x5'));var ejs=require(_0xae92('0x6'));var fs=require('fs');var fs_extra=require(_0xae92('0x7'));var _=require('lodash');var squel=require(_0xae92('0x8'));var crypto=require('crypto');var jsforce=require(_0xae92('0x9'));var deskjs=require('desk.js');var toCsv=require(_0xae92('0x5'));var querystring=require(_0xae92('0xa'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xae92('0xb'));var qs=require(_0xae92('0xc'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xae92('0xd'));var logger=require(_0xae92('0xe'))('api');var utils=require(_0xae92('0xf'));var config=require(_0xae92('0x10'));var licenseUtil=require('../../config/license/util');var db=require(_0xae92('0x11'))['db'];function respondWithStatusCode(_0x3bf68f,_0x124f93){_0x124f93=_0x124f93||0xcc;return function(_0x2ec69e){if(_0x2ec69e){return _0x3bf68f[_0xae92('0x12')](_0x124f93);}return _0x3bf68f[_0xae92('0x13')](_0x124f93)[_0xae92('0x14')]();};}function respondWithResult(_0x9f80bb,_0x134e41){_0x134e41=_0x134e41||0xc8;return function(_0x41d0b2){if(_0x41d0b2){return _0x9f80bb[_0xae92('0x13')](_0x134e41)[_0xae92('0x15')](_0x41d0b2);}};}function respondWithFilteredResult(_0xa56077,_0x4a9dde){return function(_0xd7462d){if(_0xd7462d){var _0x177896=typeof _0x4a9dde[_0xae92('0x16')]===_0xae92('0x17')&&typeof _0x4a9dde[_0xae92('0x18')]==='undefined';var _0x2abbdb=_0xd7462d[_0xae92('0x19')];var _0x133493=_0x177896?0x0:_0x4a9dde[_0xae92('0x16')];var _0x198a25=_0x177896?_0xd7462d[_0xae92('0x19')]:_0x4a9dde[_0xae92('0x16')]+_0x4a9dde[_0xae92('0x18')];var _0xc6bb1b;if(_0x198a25>=_0x2abbdb){_0x198a25=_0x2abbdb;_0xc6bb1b=0xc8;}else{_0xc6bb1b=0xce;}_0xa56077['status'](_0xc6bb1b);return _0xa56077[_0xae92('0x1a')](_0xae92('0x1b'),_0x133493+'-'+_0x198a25+'/'+_0x2abbdb)['json'](_0xd7462d);}return null;};}function patchUpdates(_0x5a6a90){return function(_0x417903){try{jsonpatch[_0xae92('0x1c')](_0x417903,_0x5a6a90,!![]);}catch(_0x1e3418){return BPromise[_0xae92('0x1d')](_0x1e3418);}return _0x417903['save']();};}function saveUpdates(_0x336e8f,_0x1e7672){return function(_0x3f10b4){if(_0x3f10b4){return _0x3f10b4[_0xae92('0x1e')](_0x336e8f)['then'](function(_0xb5ef1e){return _0xb5ef1e;});}return null;};}function removeEntity(_0x4d4307,_0x5d291b){return function(_0x673e87){if(_0x673e87){return _0x673e87['destroy']()[_0xae92('0x1f')](function(){_0x4d4307['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x1802de,_0x229a68){return function(_0x57e19a){if(!_0x57e19a){_0x1802de[_0xae92('0x12')](0x194);}return _0x57e19a;};}function handleError(_0x32fd71,_0x1122e3){_0x1122e3=_0x1122e3||0x1f4;return function(_0x3c0e66){logger[_0xae92('0x20')](_0x3c0e66[_0xae92('0x21')]);if(_0x3c0e66[_0xae92('0x22')]){delete _0x3c0e66[_0xae92('0x22')];}_0x32fd71[_0xae92('0x13')](_0x1122e3)[_0xae92('0x23')](_0x3c0e66);};}exports[_0xae92('0x24')]=function(_0x3c2aa6,_0x20896c){var _0x45a6cd={},_0x11f27a={},_0x4b4890={'count':0x0,'rows':[]};var _0x19ca18=_[_0xae92('0x25')](db[_0xae92('0x26')][_0xae92('0x27')],function(_0xc5be5e){return{'name':_0xc5be5e[_0xae92('0x28')],'type':_0xc5be5e[_0xae92('0x29')][_0xae92('0x2a')]};});_0x11f27a['model']=_['map'](_0x19ca18,'name');_0x11f27a[_0xae92('0x2b')]=_[_0xae92('0x2c')](_0x3c2aa6['query']);_0x11f27a[_0xae92('0x2d')]=_[_0xae92('0x2e')](_0x11f27a[_0xae92('0x2f')],_0x11f27a[_0xae92('0x2b')]);_0x45a6cd[_0xae92('0x30')]=_['intersection'](_0x11f27a[_0xae92('0x2f')],qs[_0xae92('0x31')](_0x3c2aa6['query']['fields']));_0x45a6cd[_0xae92('0x30')]=_0x45a6cd['attributes'][_0xae92('0x32')]?_0x45a6cd[_0xae92('0x30')]:_0x11f27a[_0xae92('0x2f')];if(!_0x3c2aa6[_0xae92('0x2b')][_0xae92('0x33')](_0xae92('0x34'))){_0x45a6cd[_0xae92('0x18')]=qs[_0xae92('0x18')](_0x3c2aa6[_0xae92('0x2b')]['limit']);_0x45a6cd[_0xae92('0x16')]=qs['offset'](_0x3c2aa6[_0xae92('0x2b')]['offset']);}_0x45a6cd[_0xae92('0x35')]=qs[_0xae92('0x36')](_0x3c2aa6[_0xae92('0x2b')][_0xae92('0x36')]);_0x45a6cd[_0xae92('0x37')]=qs[_0xae92('0x2d')](_[_0xae92('0x38')](_0x3c2aa6['query'],_0x11f27a[_0xae92('0x2d')]),_0x19ca18);if(_0x3c2aa6[_0xae92('0x2b')][_0xae92('0x39')]){_0x45a6cd[_0xae92('0x37')]=_[_0xae92('0x3a')](_0x45a6cd[_0xae92('0x37')],{'$or':_['map'](_0x19ca18,function(_0x3cc79a){if(_0x3cc79a['type']!==_0xae92('0x3b')){var _0x1226e6={};_0x1226e6[_0x3cc79a[_0xae92('0x22')]]={'$like':'%'+_0x3c2aa6['query'][_0xae92('0x39')]+'%'};return _0x1226e6;}})});}_0x45a6cd=_[_0xae92('0x3a')]({},_0x45a6cd,_0x3c2aa6[_0xae92('0x3c')]);var _0xb35758={'where':_0x45a6cd[_0xae92('0x37')]};return db['OpenchannelQueueReport']['count'](_0xb35758)[_0xae92('0x1f')](function(_0x1bcd84){_0x4b4890[_0xae92('0x19')]=_0x1bcd84;if(_0x3c2aa6[_0xae92('0x2b')][_0xae92('0x3d')]){_0x45a6cd['include']=[{'all':!![]}];}return db[_0xae92('0x26')][_0xae92('0x3e')](_0x45a6cd);})[_0xae92('0x1f')](function(_0x3e6910){_0x4b4890[_0xae92('0x3f')]=_0x3e6910;return _0x4b4890;})[_0xae92('0x1f')](respondWithFilteredResult(_0x20896c,_0x45a6cd))[_0xae92('0x40')](handleError(_0x20896c,null));};exports[_0xae92('0x41')]=function(_0x33627e,_0x521397){var _0x44dd12={'raw':!![],'where':{'id':_0x33627e[_0xae92('0x42')]['id']}},_0x4b67e0={};_0x4b67e0[_0xae92('0x2f')]=_[_0xae92('0x2c')](db[_0xae92('0x26')][_0xae92('0x27')]);_0x4b67e0[_0xae92('0x2b')]=_[_0xae92('0x2c')](_0x33627e['query']);_0x4b67e0[_0xae92('0x2d')]=_[_0xae92('0x2e')](_0x4b67e0[_0xae92('0x2f')],_0x4b67e0[_0xae92('0x2b')]);_0x44dd12[_0xae92('0x30')]=_[_0xae92('0x2e')](_0x4b67e0[_0xae92('0x2f')],qs[_0xae92('0x31')](_0x33627e[_0xae92('0x2b')][_0xae92('0x31')]));_0x44dd12['attributes']=_0x44dd12[_0xae92('0x30')]['length']?_0x44dd12[_0xae92('0x30')]:_0x4b67e0['model'];if(_0x33627e[_0xae92('0x2b')]['includeAll']){_0x44dd12[_0xae92('0x43')]=[{'all':!![]}];}_0x44dd12=_[_0xae92('0x3a')]({},_0x44dd12,_0x33627e[_0xae92('0x3c')]);return db[_0xae92('0x26')][_0xae92('0x44')](_0x44dd12)[_0xae92('0x1f')](handleEntityNotFound(_0x521397,null))[_0xae92('0x1f')](respondWithResult(_0x521397,null))[_0xae92('0x40')](handleError(_0x521397,null));};exports[_0xae92('0x45')]=function(_0x5bceed,_0xfacdc7){return db['OpenchannelQueueReport'][_0xae92('0x45')](_0x5bceed[_0xae92('0x46')],{})[_0xae92('0x1f')](respondWithResult(_0xfacdc7,0xc9))[_0xae92('0x40')](handleError(_0xfacdc7,null));};exports[_0xae92('0x1e')]=function(_0x3463f0,_0x5dd8a9){if(_0x3463f0['body']['id']){delete _0x3463f0[_0xae92('0x46')]['id'];}return db[_0xae92('0x26')]['find']({'where':{'id':_0x3463f0[_0xae92('0x42')]['id']}})[_0xae92('0x1f')](handleEntityNotFound(_0x5dd8a9,null))[_0xae92('0x1f')](saveUpdates(_0x3463f0['body'],null))['then'](respondWithResult(_0x5dd8a9,null))[_0xae92('0x40')](handleError(_0x5dd8a9,null));};exports[_0xae92('0x47')]=function(_0x42ec5f,_0x53ebe1){return db['OpenchannelQueueReport'][_0xae92('0x44')]({'where':{'id':_0x42ec5f[_0xae92('0x42')]['id']}})[_0xae92('0x1f')](handleEntityNotFound(_0x53ebe1,null))[_0xae92('0x1f')](removeEntity(_0x53ebe1,null))[_0xae92('0x40')](handleError(_0x53ebe1,null));};exports[_0xae92('0x48')]=function(_0x452442,_0x48b5a5){return db[_0xae92('0x26')][_0xae92('0x48')]()[_0xae92('0x1f')](respondWithResult(_0x48b5a5,null))[_0xae92('0x40')](handleError(_0x48b5a5,null));};