5e82c8775c931dddfe3b3f407d4e123ab9551855
[motion2.git] / server / api / squareReport / squareReport.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 _0xa0bf=['fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','status','end','json','offset','undefined','count','limit','set','reject','update','then','destroy','sendStatus','send','index','map','SquareReport','rawAttributes','fieldName','key','model','name','query','keys','filters','intersection','attributes','fields','length','nolimit','order','sort','where','pick','filter','merge','type','options','findAll','rows','catch','show','params','include','create','body','find','describe','eml-format','zip-dir'];(function(_0x23573d,_0x3bf86f){var _0xc85c6a=function(_0x4bece1){while(--_0x4bece1){_0x23573d['push'](_0x23573d['shift']());}};_0xc85c6a(++_0x3bf86f);}(_0xa0bf,0x1a8));var _0xfa0b=function(_0x5d2ab5,_0x129816){_0x5d2ab5=_0x5d2ab5-0x0;var _0x4cec78=_0xa0bf[_0x5d2ab5];return _0x4cec78;};'use strict';var emlformat=require(_0xfa0b('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xfa0b('0x1'));var jsonpatch=require(_0xfa0b('0x2'));var rp=require(_0xfa0b('0x3'));var moment=require(_0xfa0b('0x4'));var BPromise=require(_0xfa0b('0x5'));var Mustache=require(_0xfa0b('0x6'));var util=require(_0xfa0b('0x7'));var path=require('path');var sox=require(_0xfa0b('0x8'));var csv=require(_0xfa0b('0x9'));var ejs=require(_0xfa0b('0xa'));var fs=require('fs');var fs_extra=require(_0xfa0b('0xb'));var _=require(_0xfa0b('0xc'));var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xfa0b('0x9'));var querystring=require(_0xfa0b('0xd'));var Papa=require(_0xfa0b('0xe'));var Redis=require(_0xfa0b('0xf'));var authService=require(_0xfa0b('0x10'));var qs=require(_0xfa0b('0x11'));var as=require(_0xfa0b('0x12'));var hardwareService=require(_0xfa0b('0x13'));var logger=require(_0xfa0b('0x14'))('api');var utils=require(_0xfa0b('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0xfa0b('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x457477,_0x5b0b13){_0x5b0b13=_0x5b0b13||0xcc;return function(_0x380533){if(_0x380533){return _0x457477['sendStatus'](_0x5b0b13);}return _0x457477[_0xfa0b('0x17')](_0x5b0b13)[_0xfa0b('0x18')]();};}function respondWithResult(_0x480c35,_0x2e62db){_0x2e62db=_0x2e62db||0xc8;return function(_0xac88f1){if(_0xac88f1){return _0x480c35[_0xfa0b('0x17')](_0x2e62db)[_0xfa0b('0x19')](_0xac88f1);}};}function respondWithFilteredResult(_0x16a946,_0x8c2599){return function(_0x5bcfa0){if(_0x5bcfa0){var _0x40602a=typeof _0x8c2599[_0xfa0b('0x1a')]===_0xfa0b('0x1b')&&typeof _0x8c2599['limit']===_0xfa0b('0x1b');var _0x5c00b6=_0x5bcfa0['count'];var _0x165ca1=_0x40602a?0x0:_0x8c2599[_0xfa0b('0x1a')];var _0x3efc49=_0x40602a?_0x5bcfa0[_0xfa0b('0x1c')]:_0x8c2599[_0xfa0b('0x1a')]+_0x8c2599[_0xfa0b('0x1d')];var _0x4c7d67;if(_0x3efc49>=_0x5c00b6){_0x3efc49=_0x5c00b6;_0x4c7d67=0xc8;}else{_0x4c7d67=0xce;}_0x16a946['status'](_0x4c7d67);return _0x16a946[_0xfa0b('0x1e')]('Content-Range',_0x165ca1+'-'+_0x3efc49+'/'+_0x5c00b6)[_0xfa0b('0x19')](_0x5bcfa0);}return null;};}function patchUpdates(_0x787635){return function(_0x3b754d){try{jsonpatch['apply'](_0x3b754d,_0x787635,!![]);}catch(_0x70573a){return BPromise[_0xfa0b('0x1f')](_0x70573a);}return _0x3b754d['save']();};}function saveUpdates(_0x3f0f27,_0x2c15db){return function(_0x33d68a){if(_0x33d68a){return _0x33d68a[_0xfa0b('0x20')](_0x3f0f27)[_0xfa0b('0x21')](function(_0x261a3c){return _0x261a3c;});}return null;};}function removeEntity(_0x5973e4,_0xa71c1b){return function(_0x3be7f7){if(_0x3be7f7){return _0x3be7f7[_0xfa0b('0x22')]()['then'](function(){_0x5973e4[_0xfa0b('0x17')](0xcc)[_0xfa0b('0x18')]();});}};}function handleEntityNotFound(_0x1a6bf3,_0x4da003){return function(_0x21969d){if(!_0x21969d){_0x1a6bf3[_0xfa0b('0x23')](0x194);}return _0x21969d;};}function handleError(_0x48d261,_0xf83a0c){_0xf83a0c=_0xf83a0c||0x1f4;return function(_0xa0895e){logger['error'](_0xa0895e['stack']);if(_0xa0895e['name']){delete _0xa0895e['name'];}_0x48d261[_0xfa0b('0x17')](_0xf83a0c)[_0xfa0b('0x24')](_0xa0895e);};}exports[_0xfa0b('0x25')]=function(_0x46dc50,_0x36d788){var _0xbb55c8={},_0x2736f6={},_0x31f20f={'count':0x0,'rows':[]};var _0x3805f9=_[_0xfa0b('0x26')](db[_0xfa0b('0x27')][_0xfa0b('0x28')],function(_0x419392){return{'name':_0x419392[_0xfa0b('0x29')],'type':_0x419392['type'][_0xfa0b('0x2a')]};});_0x2736f6[_0xfa0b('0x2b')]=_[_0xfa0b('0x26')](_0x3805f9,_0xfa0b('0x2c'));_0x2736f6[_0xfa0b('0x2d')]=_[_0xfa0b('0x2e')](_0x46dc50[_0xfa0b('0x2d')]);_0x2736f6[_0xfa0b('0x2f')]=_[_0xfa0b('0x30')](_0x2736f6[_0xfa0b('0x2b')],_0x2736f6[_0xfa0b('0x2d')]);_0xbb55c8[_0xfa0b('0x31')]=_[_0xfa0b('0x30')](_0x2736f6[_0xfa0b('0x2b')],qs[_0xfa0b('0x32')](_0x46dc50['query']['fields']));_0xbb55c8['attributes']=_0xbb55c8[_0xfa0b('0x31')][_0xfa0b('0x33')]?_0xbb55c8[_0xfa0b('0x31')]:_0x2736f6[_0xfa0b('0x2b')];if(!_0x46dc50[_0xfa0b('0x2d')]['hasOwnProperty'](_0xfa0b('0x34'))){_0xbb55c8['limit']=qs['limit'](_0x46dc50[_0xfa0b('0x2d')][_0xfa0b('0x1d')]);_0xbb55c8[_0xfa0b('0x1a')]=qs['offset'](_0x46dc50[_0xfa0b('0x2d')][_0xfa0b('0x1a')]);}_0xbb55c8[_0xfa0b('0x35')]=qs['sort'](_0x46dc50['query'][_0xfa0b('0x36')]);_0xbb55c8[_0xfa0b('0x37')]=qs['filters'](_[_0xfa0b('0x38')](_0x46dc50[_0xfa0b('0x2d')],_0x2736f6[_0xfa0b('0x2f')]),_0x3805f9);if(_0x46dc50[_0xfa0b('0x2d')][_0xfa0b('0x39')]){_0xbb55c8[_0xfa0b('0x37')]=_[_0xfa0b('0x3a')](_0xbb55c8['where'],{'$or':_[_0xfa0b('0x26')](_0x3805f9,function(_0x47d7a4){if(_0x47d7a4[_0xfa0b('0x3b')]!=='VIRTUAL'){var _0x2e3cec={};_0x2e3cec[_0x47d7a4[_0xfa0b('0x2c')]]={'$like':'%'+_0x46dc50[_0xfa0b('0x2d')][_0xfa0b('0x39')]+'%'};return _0x2e3cec;}})});}_0xbb55c8=_[_0xfa0b('0x3a')]({},_0xbb55c8,_0x46dc50[_0xfa0b('0x3c')]);var _0x2ca877={'where':_0xbb55c8[_0xfa0b('0x37')]};return db[_0xfa0b('0x27')][_0xfa0b('0x1c')](_0x2ca877)[_0xfa0b('0x21')](function(_0x594566){_0x31f20f[_0xfa0b('0x1c')]=_0x594566;if(_0x46dc50[_0xfa0b('0x2d')]['includeAll']){_0xbb55c8['include']=[{'all':!![]}];}return db[_0xfa0b('0x27')][_0xfa0b('0x3d')](_0xbb55c8);})[_0xfa0b('0x21')](function(_0x1675c0){_0x31f20f[_0xfa0b('0x3e')]=_0x1675c0;return _0x31f20f;})['then'](respondWithFilteredResult(_0x36d788,_0xbb55c8))[_0xfa0b('0x3f')](handleError(_0x36d788,null));};exports[_0xfa0b('0x40')]=function(_0x24c950,_0x11b130){var _0x485157={'raw':!![],'where':{'id':_0x24c950[_0xfa0b('0x41')]['id']}},_0x1c54a3={};_0x1c54a3[_0xfa0b('0x2b')]=_['keys'](db['SquareReport'][_0xfa0b('0x28')]);_0x1c54a3[_0xfa0b('0x2d')]=_[_0xfa0b('0x2e')](_0x24c950[_0xfa0b('0x2d')]);_0x1c54a3[_0xfa0b('0x2f')]=_['intersection'](_0x1c54a3[_0xfa0b('0x2b')],_0x1c54a3[_0xfa0b('0x2d')]);_0x485157[_0xfa0b('0x31')]=_['intersection'](_0x1c54a3['model'],qs[_0xfa0b('0x32')](_0x24c950[_0xfa0b('0x2d')]['fields']));_0x485157[_0xfa0b('0x31')]=_0x485157[_0xfa0b('0x31')][_0xfa0b('0x33')]?_0x485157['attributes']:_0x1c54a3[_0xfa0b('0x2b')];if(_0x24c950[_0xfa0b('0x2d')]['includeAll']){_0x485157[_0xfa0b('0x42')]=[{'all':!![]}];}_0x485157=_[_0xfa0b('0x3a')]({},_0x485157,_0x24c950['options']);return db[_0xfa0b('0x27')]['find'](_0x485157)['then'](handleEntityNotFound(_0x11b130,null))[_0xfa0b('0x21')](respondWithResult(_0x11b130,null))[_0xfa0b('0x3f')](handleError(_0x11b130,null));};exports[_0xfa0b('0x43')]=function(_0x303c85,_0x449e16){return db['SquareReport']['create'](_0x303c85[_0xfa0b('0x44')],{})[_0xfa0b('0x21')](respondWithResult(_0x449e16,0xc9))[_0xfa0b('0x3f')](handleError(_0x449e16,null));};exports[_0xfa0b('0x20')]=function(_0x2ef3e,_0x3085d4){if(_0x2ef3e[_0xfa0b('0x44')]['id']){delete _0x2ef3e['body']['id'];}return db[_0xfa0b('0x27')][_0xfa0b('0x45')]({'where':{'id':_0x2ef3e[_0xfa0b('0x41')]['id']}})['then'](handleEntityNotFound(_0x3085d4,null))['then'](saveUpdates(_0x2ef3e[_0xfa0b('0x44')],null))[_0xfa0b('0x21')](respondWithResult(_0x3085d4,null))[_0xfa0b('0x3f')](handleError(_0x3085d4,null));};exports[_0xfa0b('0x22')]=function(_0x3e25cd,_0x1eaf70){return db[_0xfa0b('0x27')]['find']({'where':{'id':_0x3e25cd[_0xfa0b('0x41')]['id']}})[_0xfa0b('0x21')](handleEntityNotFound(_0x1eaf70,null))[_0xfa0b('0x21')](removeEntity(_0x1eaf70,null))['catch'](handleError(_0x1eaf70,null));};exports[_0xfa0b('0x46')]=function(_0x430b92,_0x1740a0){return db[_0xfa0b('0x27')][_0xfa0b('0x46')]()['then'](respondWithResult(_0x1740a0,null))['catch'](handleError(_0x1740a0,null));};