Built motion from commit 85328c08.|2.5.50
[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 _0x4d2a=['../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','json','apply','update','then','destroy','get','ODBC','UserProfileResource','error','name','map','SquareOdbc','rawAttributes','fieldName','type','query','keys','filters','intersection','attributes','model','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','findAll','rows','include','create','body','user','role','UserProfileSection','find','autoAssociation','catch','params','test','odbc','openSync','dsn','eml-format','rimraf','zip-dir','request-promise','bluebird','util','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment'];(function(_0x320f44,_0x2619b8){var _0x460136=function(_0x49b981){while(--_0x49b981){_0x320f44['push'](_0x320f44['shift']());}};_0x460136(++_0x2619b8);}(_0x4d2a,0x1cf));var _0xa4d2=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x4d2a[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0xa4d2('0x0'));var rimraf=require(_0xa4d2('0x1'));var zipdir=require(_0xa4d2('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xa4d2('0x3'));var moment=require('moment');var BPromise=require(_0xa4d2('0x4'));var Mustache=require('mustache');var util=require(_0xa4d2('0x5'));var path=require(_0xa4d2('0x6'));var sox=require(_0xa4d2('0x7'));var csv=require('to-csv');var ejs=require(_0xa4d2('0x8'));var fs=require('fs');var fs_extra=require(_0xa4d2('0x9'));var _=require(_0xa4d2('0xa'));var squel=require(_0xa4d2('0xb'));var crypto=require(_0xa4d2('0xc'));var jsforce=require(_0xa4d2('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xa4d2('0xe'));var querystring=require(_0xa4d2('0xf'));var Papa=require(_0xa4d2('0x10'));var Redis=require('ioredis');var authService=require(_0xa4d2('0x11'));var qs=require(_0xa4d2('0x12'));var as=require(_0xa4d2('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xa4d2('0x14'))(_0xa4d2('0x15'));var utils=require('../../config/utils');var config=require(_0xa4d2('0x16'));var licenseUtil=require(_0xa4d2('0x17'));var db=require(_0xa4d2('0x18'))['db'];function respondWithStatusCode(_0x5cde54,_0x36e34a){_0x36e34a=_0x36e34a||0xcc;return function(_0x16e782){if(_0x16e782){return _0x5cde54[_0xa4d2('0x19')](_0x36e34a);}return _0x5cde54[_0xa4d2('0x1a')](_0x36e34a)[_0xa4d2('0x1b')]();};}function respondWithResult(_0x55e1da,_0x4d9a1b){_0x4d9a1b=_0x4d9a1b||0xc8;return function(_0x2f2ba9){if(_0x2f2ba9){return _0x55e1da[_0xa4d2('0x1a')](_0x4d9a1b)['json'](_0x2f2ba9);}};}function respondWithFilteredResult(_0x511578,_0x2e1e78){return function(_0x2451d9){if(_0x2451d9){var _0x7ca645=typeof _0x2e1e78[_0xa4d2('0x1c')]===_0xa4d2('0x1d')&&typeof _0x2e1e78[_0xa4d2('0x1e')]===_0xa4d2('0x1d');var _0x4b853b=_0x2451d9['count'];var _0x1102df=_0x7ca645?0x0:_0x2e1e78[_0xa4d2('0x1c')];var _0x5d66e2=_0x7ca645?_0x2451d9[_0xa4d2('0x1f')]:_0x2e1e78['offset']+_0x2e1e78[_0xa4d2('0x1e')];var _0x165357;if(_0x5d66e2>=_0x4b853b){_0x5d66e2=_0x4b853b;_0x165357=0xc8;}else{_0x165357=0xce;}_0x511578[_0xa4d2('0x1a')](_0x165357);return _0x511578['set']('Content-Range',_0x1102df+'-'+_0x5d66e2+'/'+_0x4b853b)[_0xa4d2('0x20')](_0x2451d9);}return null;};}function patchUpdates(_0x32e397){return function(_0x8fbc62){try{jsonpatch[_0xa4d2('0x21')](_0x8fbc62,_0x32e397,!![]);}catch(_0x488500){return BPromise['reject'](_0x488500);}return _0x8fbc62['save']();};}function saveUpdates(_0x2f64e3,_0x44c653){return function(_0x321b33){if(_0x321b33){return _0x321b33[_0xa4d2('0x22')](_0x2f64e3)[_0xa4d2('0x23')](function(_0x48f506){return _0x48f506;});}return null;};}function removeEntity(_0x183d11,_0x1fe757){return function(_0x3f4f91){if(_0x3f4f91){return _0x3f4f91[_0xa4d2('0x24')]()[_0xa4d2('0x23')](function(){var _0x48b474=_0x3f4f91[_0xa4d2('0x25')]({'plain':!![]});var _0x6da3c4=_0xa4d2('0x26');return db[_0xa4d2('0x27')][_0xa4d2('0x24')]({'where':{'type':_0x6da3c4,'resourceId':_0x48b474['id']}})[_0xa4d2('0x23')](function(){return _0x3f4f91;});})[_0xa4d2('0x23')](function(){_0x183d11[_0xa4d2('0x1a')](0xcc)[_0xa4d2('0x1b')]();});}};}function handleEntityNotFound(_0x1a9118,_0x7bc4e6){return function(_0x58c532){if(!_0x58c532){_0x1a9118[_0xa4d2('0x19')](0x194);}return _0x58c532;};}function handleError(_0x328a7f,_0x38f4b0){_0x38f4b0=_0x38f4b0||0x1f4;return function(_0x2fd3b4){logger[_0xa4d2('0x28')](_0x2fd3b4['stack']);if(_0x2fd3b4[_0xa4d2('0x29')]){delete _0x2fd3b4[_0xa4d2('0x29')];}_0x328a7f[_0xa4d2('0x1a')](_0x38f4b0)['send'](_0x2fd3b4);};}exports['index']=function(_0x4b372d,_0x4fcec0){var _0x100dc7={},_0x4acf66={},_0x405b3b={'count':0x0,'rows':[]};var _0x31a4da=_[_0xa4d2('0x2a')](db[_0xa4d2('0x2b')][_0xa4d2('0x2c')],function(_0x179864){return{'name':_0x179864[_0xa4d2('0x2d')],'type':_0x179864[_0xa4d2('0x2e')]['key']};});_0x4acf66['model']=_[_0xa4d2('0x2a')](_0x31a4da,_0xa4d2('0x29'));_0x4acf66[_0xa4d2('0x2f')]=_[_0xa4d2('0x30')](_0x4b372d[_0xa4d2('0x2f')]);_0x4acf66[_0xa4d2('0x31')]=_[_0xa4d2('0x32')](_0x4acf66['model'],_0x4acf66['query']);_0x100dc7[_0xa4d2('0x33')]=_[_0xa4d2('0x32')](_0x4acf66[_0xa4d2('0x34')],qs[_0xa4d2('0x35')](_0x4b372d[_0xa4d2('0x2f')][_0xa4d2('0x35')]));_0x100dc7[_0xa4d2('0x33')]=_0x100dc7['attributes'][_0xa4d2('0x36')]?_0x100dc7[_0xa4d2('0x33')]:_0x4acf66[_0xa4d2('0x34')];if(!_0x4b372d[_0xa4d2('0x2f')][_0xa4d2('0x37')](_0xa4d2('0x38'))){_0x100dc7[_0xa4d2('0x1e')]=qs['limit'](_0x4b372d[_0xa4d2('0x2f')][_0xa4d2('0x1e')]);_0x100dc7[_0xa4d2('0x1c')]=qs[_0xa4d2('0x1c')](_0x4b372d[_0xa4d2('0x2f')][_0xa4d2('0x1c')]);}_0x100dc7['order']=qs['sort'](_0x4b372d[_0xa4d2('0x2f')][_0xa4d2('0x39')]);_0x100dc7[_0xa4d2('0x3a')]=qs[_0xa4d2('0x31')](_[_0xa4d2('0x3b')](_0x4b372d[_0xa4d2('0x2f')],_0x4acf66[_0xa4d2('0x31')]),_0x31a4da);if(_0x4b372d[_0xa4d2('0x2f')][_0xa4d2('0x3c')]){_0x100dc7[_0xa4d2('0x3a')]=_[_0xa4d2('0x3d')](_0x100dc7[_0xa4d2('0x3a')],{'$or':_[_0xa4d2('0x2a')](_0x31a4da,function(_0x13f960){if(_0x13f960['type']!==_0xa4d2('0x3e')){var _0x401ee8={};_0x401ee8[_0x13f960['name']]={'$like':'%'+_0x4b372d['query'][_0xa4d2('0x3c')]+'%'};return _0x401ee8;}})});}_0x100dc7=_[_0xa4d2('0x3d')]({},_0x100dc7,_0x4b372d[_0xa4d2('0x3f')]);var _0x48bdfa={'where':_0x100dc7[_0xa4d2('0x3a')]};return db[_0xa4d2('0x2b')][_0xa4d2('0x1f')](_0x48bdfa)['then'](function(_0x2f1cd0){_0x405b3b[_0xa4d2('0x1f')]=_0x2f1cd0;if(_0x4b372d[_0xa4d2('0x2f')][_0xa4d2('0x40')]){_0x100dc7['include']=[{'all':!![]}];}return db[_0xa4d2('0x2b')][_0xa4d2('0x41')](_0x100dc7);})[_0xa4d2('0x23')](function(_0x46e8c2){_0x405b3b[_0xa4d2('0x42')]=_0x46e8c2;return _0x405b3b;})[_0xa4d2('0x23')](respondWithFilteredResult(_0x4fcec0,_0x100dc7))['catch'](handleError(_0x4fcec0,null));};exports['show']=function(_0x75b7e7,_0x476945){var _0x1f2938={'raw':!![],'where':{'id':_0x75b7e7['params']['id']}},_0x5fb36={};_0x5fb36[_0xa4d2('0x34')]=_['keys'](db[_0xa4d2('0x2b')][_0xa4d2('0x2c')]);_0x5fb36[_0xa4d2('0x2f')]=_[_0xa4d2('0x30')](_0x75b7e7[_0xa4d2('0x2f')]);_0x5fb36['filters']=_[_0xa4d2('0x32')](_0x5fb36[_0xa4d2('0x34')],_0x5fb36[_0xa4d2('0x2f')]);_0x1f2938[_0xa4d2('0x33')]=_['intersection'](_0x5fb36[_0xa4d2('0x34')],qs['fields'](_0x75b7e7[_0xa4d2('0x2f')][_0xa4d2('0x35')]));_0x1f2938['attributes']=_0x1f2938[_0xa4d2('0x33')][_0xa4d2('0x36')]?_0x1f2938['attributes']:_0x5fb36[_0xa4d2('0x34')];if(_0x75b7e7['query']['includeAll']){_0x1f2938[_0xa4d2('0x43')]=[{'all':!![]}];}_0x1f2938=_[_0xa4d2('0x3d')]({},_0x1f2938,_0x75b7e7['options']);return db[_0xa4d2('0x2b')]['find'](_0x1f2938)[_0xa4d2('0x23')](handleEntityNotFound(_0x476945,null))[_0xa4d2('0x23')](respondWithResult(_0x476945,null))['catch'](handleError(_0x476945,null));};exports[_0xa4d2('0x44')]=function(_0xca14ff,_0x14d8c1){return db['SquareOdbc']['create'](_0xca14ff[_0xa4d2('0x45')],{})[_0xa4d2('0x23')](function(_0x25dd5f){var _0x51f4ea=_0xca14ff[_0xa4d2('0x46')][_0xa4d2('0x25')]({'plain':!![]});if(!_0x51f4ea)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x51f4ea[_0xa4d2('0x47')]===_0xa4d2('0x46')){var _0xdb1fe0=_0x25dd5f[_0xa4d2('0x25')]({'plain':!![]});var _0x15eee5=_0xa4d2('0x26');return db[_0xa4d2('0x48')][_0xa4d2('0x49')]({'where':{'name':_0x15eee5,'userProfileId':_0x51f4ea['userProfileId']},'raw':!![]})['then'](function(_0x1273ab){if(_0x1273ab&&_0x1273ab[_0xa4d2('0x4a')]===0x0){return db[_0xa4d2('0x27')]['create']({'name':_0xdb1fe0[_0xa4d2('0x29')],'resourceId':_0xdb1fe0['id'],'type':_0x1273ab[_0xa4d2('0x29')],'sectionId':_0x1273ab['id']},{})[_0xa4d2('0x23')](function(){return _0x25dd5f;});}else{return _0x25dd5f;}})[_0xa4d2('0x4b')](function(_0x26f2ab){logger[_0xa4d2('0x28')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x26f2ab);throw _0x26f2ab;});}return _0x25dd5f;})['then'](respondWithResult(_0x14d8c1,0xc9))['catch'](handleError(_0x14d8c1,null));};exports[_0xa4d2('0x22')]=function(_0x30aca0,_0x31d108){if(_0x30aca0[_0xa4d2('0x45')]['id']){delete _0x30aca0[_0xa4d2('0x45')]['id'];}return db[_0xa4d2('0x2b')][_0xa4d2('0x49')]({'where':{'id':_0x30aca0[_0xa4d2('0x4c')]['id']}})[_0xa4d2('0x23')](handleEntityNotFound(_0x31d108,null))[_0xa4d2('0x23')](saveUpdates(_0x30aca0[_0xa4d2('0x45')],null))[_0xa4d2('0x23')](respondWithResult(_0x31d108,null))['catch'](handleError(_0x31d108,null));};exports[_0xa4d2('0x24')]=function(_0x2808b7,_0xf3ed84){return db[_0xa4d2('0x2b')][_0xa4d2('0x49')]({'where':{'id':_0x2808b7[_0xa4d2('0x4c')]['id']}})[_0xa4d2('0x23')](handleEntityNotFound(_0xf3ed84,null))[_0xa4d2('0x23')](removeEntity(_0xf3ed84,null))['catch'](handleError(_0xf3ed84,null));};exports[_0xa4d2('0x4d')]=function(_0x54b7e7,_0x2588bf,_0x4afa53){var _0x2c33c2;return db[_0xa4d2('0x2b')]['find']({'where':{'id':_0x54b7e7[_0xa4d2('0x4c')]['id']},'attributes':['id','dsn']})[_0xa4d2('0x23')](handleEntityNotFound(_0x2588bf,null))[_0xa4d2('0x23')](function(_0x30849b){if(_0x30849b){var _0x10afa8=require(_0xa4d2('0x4e'))();_0x10afa8[_0xa4d2('0x4f')](_0x30849b[_0xa4d2('0x50')]);_0x10afa8['closeSync']();return _0x30849b;}})[_0xa4d2('0x23')](respondWithResult(_0x2588bf,null))[_0xa4d2('0x4b')](handleError(_0x2588bf,null));};