dd0c53309b9676ef8b68aa206555cd5955e5706a
[motion2.git] / server / api / squareOdbc / squareOdbc.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 _0x2885=['length','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','includeAll','include','SquareOdbc','findAll','rows','catch','show','params','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','get','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','find','test','dsn','odbc','openSync','closeSync','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','end','status','offset','undefined','limit','count','Content-Range','apply','reject','save','update','then','destroy','ODBC','UserProfileResource','error','name','send','index','map','rawAttributes','fieldName','type','key','model','keys','query','filters','attributes','intersection','fields'];(function(_0x3843ea,_0x4fa30a){var _0x53e5c6=function(_0x1678be){while(--_0x1678be){_0x3843ea['push'](_0x3843ea['shift']());}};_0x53e5c6(++_0x4fa30a);}(_0x2885,0x120));var _0x5288=function(_0x1992f1,_0x5c61f0){_0x1992f1=_0x1992f1-0x0;var _0x413dfe=_0x2885[_0x1992f1];return _0x413dfe;};'use strict';var emlformat=require(_0x5288('0x0'));var rimraf=require(_0x5288('0x1'));var zipdir=require(_0x5288('0x2'));var jsonpatch=require(_0x5288('0x3'));var rp=require(_0x5288('0x4'));var moment=require(_0x5288('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x5288('0x6'));var util=require(_0x5288('0x7'));var path=require(_0x5288('0x8'));var sox=require(_0x5288('0x9'));var csv=require(_0x5288('0xa'));var ejs=require(_0x5288('0xb'));var fs=require('fs');var fs_extra=require(_0x5288('0xc'));var _=require('lodash');var squel=require(_0x5288('0xd'));var crypto=require(_0x5288('0xe'));var jsforce=require(_0x5288('0xf'));var deskjs=require(_0x5288('0x10'));var toCsv=require(_0x5288('0xa'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x5288('0x11'));var as=require(_0x5288('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x5288('0x13'))(_0x5288('0x14'));var utils=require(_0x5288('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0x5288('0x16'));var db=require(_0x5288('0x17'))['db'];function respondWithStatusCode(_0x4f6881,_0x4bab84){_0x4bab84=_0x4bab84||0xcc;return function(_0x4d6a5b){if(_0x4d6a5b){return _0x4f6881[_0x5288('0x18')](_0x4bab84);}return _0x4f6881['status'](_0x4bab84)[_0x5288('0x19')]();};}function respondWithResult(_0x343ea1,_0x326cb2){_0x326cb2=_0x326cb2||0xc8;return function(_0x2c7692){if(_0x2c7692){return _0x343ea1[_0x5288('0x1a')](_0x326cb2)['json'](_0x2c7692);}};}function respondWithFilteredResult(_0x4b795f,_0x4780ea){return function(_0x306fe6){if(_0x306fe6){var _0xefd886=typeof _0x4780ea[_0x5288('0x1b')]===_0x5288('0x1c')&&typeof _0x4780ea[_0x5288('0x1d')]==='undefined';var _0x46bebd=_0x306fe6[_0x5288('0x1e')];var _0x51f1d5=_0xefd886?0x0:_0x4780ea[_0x5288('0x1b')];var _0x213e9b=_0xefd886?_0x306fe6['count']:_0x4780ea[_0x5288('0x1b')]+_0x4780ea[_0x5288('0x1d')];var _0x43b674;if(_0x213e9b>=_0x46bebd){_0x213e9b=_0x46bebd;_0x43b674=0xc8;}else{_0x43b674=0xce;}_0x4b795f[_0x5288('0x1a')](_0x43b674);return _0x4b795f['set'](_0x5288('0x1f'),_0x51f1d5+'-'+_0x213e9b+'/'+_0x46bebd)['json'](_0x306fe6);}return null;};}function patchUpdates(_0x562cbf){return function(_0xe5a6c){try{jsonpatch[_0x5288('0x20')](_0xe5a6c,_0x562cbf,!![]);}catch(_0x3c20f5){return BPromise[_0x5288('0x21')](_0x3c20f5);}return _0xe5a6c[_0x5288('0x22')]();};}function saveUpdates(_0x5cbadf,_0x530922){return function(_0x1c3ffe){if(_0x1c3ffe){return _0x1c3ffe[_0x5288('0x23')](_0x5cbadf)[_0x5288('0x24')](function(_0x29e5f7){return _0x29e5f7;});}return null;};}function removeEntity(_0x562156,_0x4e71a9){return function(_0x2b801c){if(_0x2b801c){return _0x2b801c[_0x5288('0x25')]()[_0x5288('0x24')](function(){var _0x492afe=_0x2b801c['get']({'plain':!![]});var _0x24bc96=_0x5288('0x26');return db[_0x5288('0x27')]['destroy']({'where':{'type':_0x24bc96,'resourceId':_0x492afe['id']}})[_0x5288('0x24')](function(){return _0x2b801c;});})[_0x5288('0x24')](function(){_0x562156[_0x5288('0x1a')](0xcc)[_0x5288('0x19')]();});}};}function handleEntityNotFound(_0x482daa,_0xe5deda){return function(_0x3a56c7){if(!_0x3a56c7){_0x482daa['sendStatus'](0x194);}return _0x3a56c7;};}function handleError(_0x1efaa2,_0x2b1b28){_0x2b1b28=_0x2b1b28||0x1f4;return function(_0x285651){logger[_0x5288('0x28')](_0x285651['stack']);if(_0x285651['name']){delete _0x285651[_0x5288('0x29')];}_0x1efaa2['status'](_0x2b1b28)[_0x5288('0x2a')](_0x285651);};}exports[_0x5288('0x2b')]=function(_0x1db0d6,_0x49b87f){var _0x1db40d={},_0x11b2a1={},_0x403578={'count':0x0,'rows':[]};var _0x39d509=_[_0x5288('0x2c')](db['SquareOdbc'][_0x5288('0x2d')],function(_0x471871){return{'name':_0x471871[_0x5288('0x2e')],'type':_0x471871[_0x5288('0x2f')][_0x5288('0x30')]};});_0x11b2a1[_0x5288('0x31')]=_[_0x5288('0x2c')](_0x39d509,'name');_0x11b2a1['query']=_[_0x5288('0x32')](_0x1db0d6[_0x5288('0x33')]);_0x11b2a1[_0x5288('0x34')]=_['intersection'](_0x11b2a1[_0x5288('0x31')],_0x11b2a1[_0x5288('0x33')]);_0x1db40d[_0x5288('0x35')]=_[_0x5288('0x36')](_0x11b2a1['model'],qs['fields'](_0x1db0d6[_0x5288('0x33')][_0x5288('0x37')]));_0x1db40d[_0x5288('0x35')]=_0x1db40d[_0x5288('0x35')][_0x5288('0x38')]?_0x1db40d[_0x5288('0x35')]:_0x11b2a1[_0x5288('0x31')];if(!_0x1db0d6[_0x5288('0x33')][_0x5288('0x39')](_0x5288('0x3a'))){_0x1db40d[_0x5288('0x1d')]=qs['limit'](_0x1db0d6['query'][_0x5288('0x1d')]);_0x1db40d[_0x5288('0x1b')]=qs[_0x5288('0x1b')](_0x1db0d6[_0x5288('0x33')]['offset']);}_0x1db40d[_0x5288('0x3b')]=qs['sort'](_0x1db0d6[_0x5288('0x33')][_0x5288('0x3c')]);_0x1db40d[_0x5288('0x3d')]=qs[_0x5288('0x34')](_[_0x5288('0x3e')](_0x1db0d6[_0x5288('0x33')],_0x11b2a1[_0x5288('0x34')]),_0x39d509);if(_0x1db0d6[_0x5288('0x33')]['filter']){_0x1db40d[_0x5288('0x3d')]=_[_0x5288('0x3f')](_0x1db40d[_0x5288('0x3d')],{'$or':_[_0x5288('0x2c')](_0x39d509,function(_0x3866c7){if(_0x3866c7['type']!==_0x5288('0x40')){var _0x43ffbb={};_0x43ffbb[_0x3866c7['name']]={'$like':'%'+_0x1db0d6[_0x5288('0x33')]['filter']+'%'};return _0x43ffbb;}})});}_0x1db40d=_[_0x5288('0x3f')]({},_0x1db40d,_0x1db0d6['options']);var _0x54085f={'where':_0x1db40d[_0x5288('0x3d')]};return db['SquareOdbc']['count'](_0x54085f)[_0x5288('0x24')](function(_0x323c5f){_0x403578[_0x5288('0x1e')]=_0x323c5f;if(_0x1db0d6[_0x5288('0x33')][_0x5288('0x41')]){_0x1db40d[_0x5288('0x42')]=[{'all':!![]}];}return db[_0x5288('0x43')][_0x5288('0x44')](_0x1db40d);})[_0x5288('0x24')](function(_0x5a1d85){_0x403578[_0x5288('0x45')]=_0x5a1d85;return _0x403578;})[_0x5288('0x24')](respondWithFilteredResult(_0x49b87f,_0x1db40d))[_0x5288('0x46')](handleError(_0x49b87f,null));};exports[_0x5288('0x47')]=function(_0x3a3c54,_0x181897){var _0x21f20e={'raw':!![],'where':{'id':_0x3a3c54[_0x5288('0x48')]['id']}},_0x5ce2a0={};_0x5ce2a0[_0x5288('0x31')]=_[_0x5288('0x32')](db[_0x5288('0x43')][_0x5288('0x2d')]);_0x5ce2a0[_0x5288('0x33')]=_[_0x5288('0x32')](_0x3a3c54[_0x5288('0x33')]);_0x5ce2a0[_0x5288('0x34')]=_[_0x5288('0x36')](_0x5ce2a0['model'],_0x5ce2a0[_0x5288('0x33')]);_0x21f20e[_0x5288('0x35')]=_[_0x5288('0x36')](_0x5ce2a0[_0x5288('0x31')],qs[_0x5288('0x37')](_0x3a3c54[_0x5288('0x33')][_0x5288('0x37')]));_0x21f20e['attributes']=_0x21f20e[_0x5288('0x35')][_0x5288('0x38')]?_0x21f20e['attributes']:_0x5ce2a0[_0x5288('0x31')];if(_0x3a3c54['query'][_0x5288('0x41')]){_0x21f20e[_0x5288('0x42')]=[{'all':!![]}];}_0x21f20e=_[_0x5288('0x3f')]({},_0x21f20e,_0x3a3c54['options']);return db[_0x5288('0x43')]['find'](_0x21f20e)[_0x5288('0x24')](handleEntityNotFound(_0x181897,null))['then'](respondWithResult(_0x181897,null))[_0x5288('0x46')](handleError(_0x181897,null));};exports[_0x5288('0x49')]=function(_0x2a4fdb,_0x593be9){return db['SquareOdbc']['create'](_0x2a4fdb['body'],{})[_0x5288('0x24')](function(_0x5d29b0){var _0x14d48e=_0x2a4fdb[_0x5288('0x4a')]['get']({'plain':!![]});if(!_0x14d48e)throw new Error(_0x5288('0x4b'));if(_0x14d48e[_0x5288('0x4c')]===_0x5288('0x4a')){var _0x2c82e7=_0x5d29b0[_0x5288('0x4d')]({'plain':!![]});var _0xe95dd5=_0x5288('0x26');return db['UserProfileSection']['find']({'where':{'name':_0xe95dd5,'userProfileId':_0x14d48e['userProfileId']},'raw':!![]})[_0x5288('0x24')](function(_0x79419b){if(_0x79419b&&_0x79419b['autoAssociation']===0x0){return db[_0x5288('0x27')]['create']({'name':_0x2c82e7[_0x5288('0x29')],'resourceId':_0x2c82e7['id'],'type':_0x79419b[_0x5288('0x29')],'sectionId':_0x79419b['id']},{})[_0x5288('0x24')](function(){return _0x5d29b0;});}else{return _0x5d29b0;}})[_0x5288('0x46')](function(_0x4db433){logger[_0x5288('0x28')](_0x5288('0x4e'),_0x4db433);throw _0x4db433;});}return _0x5d29b0;})[_0x5288('0x24')](respondWithResult(_0x593be9,0xc9))['catch'](handleError(_0x593be9,null));};exports[_0x5288('0x23')]=function(_0x313891,_0x5c72b3){if(_0x313891[_0x5288('0x4f')]['id']){delete _0x313891[_0x5288('0x4f')]['id'];}return db[_0x5288('0x43')][_0x5288('0x50')]({'where':{'id':_0x313891['params']['id']}})[_0x5288('0x24')](handleEntityNotFound(_0x5c72b3,null))['then'](saveUpdates(_0x313891[_0x5288('0x4f')],null))[_0x5288('0x24')](respondWithResult(_0x5c72b3,null))[_0x5288('0x46')](handleError(_0x5c72b3,null));};exports[_0x5288('0x25')]=function(_0x16b2da,_0x3c2bac){return db[_0x5288('0x43')]['find']({'where':{'id':_0x16b2da[_0x5288('0x48')]['id']}})[_0x5288('0x24')](handleEntityNotFound(_0x3c2bac,null))[_0x5288('0x24')](removeEntity(_0x3c2bac,null))[_0x5288('0x46')](handleError(_0x3c2bac,null));};exports[_0x5288('0x51')]=function(_0x468c6a,_0x4ec1ba,_0x4b5736){var _0x437695;return db[_0x5288('0x43')]['find']({'where':{'id':_0x468c6a[_0x5288('0x48')]['id']},'attributes':['id',_0x5288('0x52')]})[_0x5288('0x24')](handleEntityNotFound(_0x4ec1ba,null))[_0x5288('0x24')](function(_0x4cf78b){if(_0x4cf78b){var _0x365d5c=require(_0x5288('0x53'))();_0x365d5c[_0x5288('0x54')](_0x4cf78b['dsn']);_0x365d5c[_0x5288('0x55')]();return _0x4cf78b;}})['then'](respondWithResult(_0x4ec1ba,null))[_0x5288('0x46')](handleError(_0x4ec1ba,null));};