3f2343706cf39bc062882b49df521766ca2551b4
[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 _0x6efc=['index','map','SquareOdbc','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','limit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','length','find','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','userProfileId','UserProfileResource','create','error','body','params','test','dsn','odbc','openSync','closeSync','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','querystring','ioredis','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','sendStatus','status','end','offset','undefined','count','set','Content-Range','json','reject','save','update','then','destroy','ODBC','name'];(function(_0xa8ecbf,_0x191870){var _0x889648=function(_0x49f80d){while(--_0x49f80d){_0xa8ecbf['push'](_0xa8ecbf['shift']());}};_0x889648(++_0x191870);}(_0x6efc,0x1d9));var _0xc6ef=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x6efc[_0x321bb2];return _0x9c12ed;};'use strict';var emlformat=require(_0xc6ef('0x0'));var rimraf=require(_0xc6ef('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xc6ef('0x2'));var rp=require('request-promise');var moment=require(_0xc6ef('0x3'));var BPromise=require(_0xc6ef('0x4'));var Mustache=require(_0xc6ef('0x5'));var util=require('util');var path=require(_0xc6ef('0x6'));var sox=require(_0xc6ef('0x7'));var csv=require(_0xc6ef('0x8'));var ejs=require(_0xc6ef('0x9'));var fs=require('fs');var fs_extra=require(_0xc6ef('0xa'));var _=require(_0xc6ef('0xb'));var squel=require('squel');var crypto=require(_0xc6ef('0xc'));var jsforce=require(_0xc6ef('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xc6ef('0x8'));var querystring=require(_0xc6ef('0xe'));var Papa=require('papaparse');var Redis=require(_0xc6ef('0xf'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xc6ef('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xc6ef('0x11'))(_0xc6ef('0x12'));var utils=require('../../config/utils');var config=require(_0xc6ef('0x13'));var licenseUtil=require(_0xc6ef('0x14'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x406bb6,_0x6d0768){_0x6d0768=_0x6d0768||0xcc;return function(_0x2d6317){if(_0x2d6317){return _0x406bb6[_0xc6ef('0x15')](_0x6d0768);}return _0x406bb6[_0xc6ef('0x16')](_0x6d0768)[_0xc6ef('0x17')]();};}function respondWithResult(_0x5cc5b0,_0xc92753){_0xc92753=_0xc92753||0xc8;return function(_0x448783){if(_0x448783){return _0x5cc5b0['status'](_0xc92753)['json'](_0x448783);}};}function respondWithFilteredResult(_0x37265b,_0x37a183){return function(_0x19f671){if(_0x19f671){var _0x550fa6=typeof _0x37a183[_0xc6ef('0x18')]===_0xc6ef('0x19')&&typeof _0x37a183['limit']===_0xc6ef('0x19');var _0x2e8970=_0x19f671[_0xc6ef('0x1a')];var _0x56e1be=_0x550fa6?0x0:_0x37a183[_0xc6ef('0x18')];var _0x16e58e=_0x550fa6?_0x19f671[_0xc6ef('0x1a')]:_0x37a183['offset']+_0x37a183['limit'];var _0x45a11c;if(_0x16e58e>=_0x2e8970){_0x16e58e=_0x2e8970;_0x45a11c=0xc8;}else{_0x45a11c=0xce;}_0x37265b[_0xc6ef('0x16')](_0x45a11c);return _0x37265b[_0xc6ef('0x1b')](_0xc6ef('0x1c'),_0x56e1be+'-'+_0x16e58e+'/'+_0x2e8970)[_0xc6ef('0x1d')](_0x19f671);}return null;};}function patchUpdates(_0x1e39c4){return function(_0x5bd417){try{jsonpatch['apply'](_0x5bd417,_0x1e39c4,!![]);}catch(_0x308eb6){return BPromise[_0xc6ef('0x1e')](_0x308eb6);}return _0x5bd417[_0xc6ef('0x1f')]();};}function saveUpdates(_0x55bba1,_0x2d4912){return function(_0x5b244f){if(_0x5b244f){return _0x5b244f[_0xc6ef('0x20')](_0x55bba1)[_0xc6ef('0x21')](function(_0x486c03){return _0x486c03;});}return null;};}function removeEntity(_0x244b0d,_0x27fe81){return function(_0x15e779){if(_0x15e779){return _0x15e779[_0xc6ef('0x22')]()['then'](function(){var _0x18902a=_0x15e779['get']({'plain':!![]});var _0x1ade16=_0xc6ef('0x23');return db['UserProfileResource'][_0xc6ef('0x22')]({'where':{'type':_0x1ade16,'resourceId':_0x18902a['id']}})[_0xc6ef('0x21')](function(){return _0x15e779;});})[_0xc6ef('0x21')](function(){_0x244b0d['status'](0xcc)[_0xc6ef('0x17')]();});}};}function handleEntityNotFound(_0x11f66f,_0xb65a7b){return function(_0x286665){if(!_0x286665){_0x11f66f[_0xc6ef('0x15')](0x194);}return _0x286665;};}function handleError(_0x258c53,_0x3badc4){_0x3badc4=_0x3badc4||0x1f4;return function(_0x468bdb){logger['error'](_0x468bdb['stack']);if(_0x468bdb[_0xc6ef('0x24')]){delete _0x468bdb[_0xc6ef('0x24')];}_0x258c53[_0xc6ef('0x16')](_0x3badc4)['send'](_0x468bdb);};}exports[_0xc6ef('0x25')]=function(_0x5d5056,_0x29bfe4){var _0x414b0f={},_0x24e176={},_0x110b63={'count':0x0,'rows':[]};var _0x1eea98=_[_0xc6ef('0x26')](db[_0xc6ef('0x27')][_0xc6ef('0x28')],function(_0x3639d9){return{'name':_0x3639d9[_0xc6ef('0x29')],'type':_0x3639d9[_0xc6ef('0x2a')]['key']};});_0x24e176[_0xc6ef('0x2b')]=_['map'](_0x1eea98,'name');_0x24e176[_0xc6ef('0x2c')]=_[_0xc6ef('0x2d')](_0x5d5056['query']);_0x24e176[_0xc6ef('0x2e')]=_[_0xc6ef('0x2f')](_0x24e176[_0xc6ef('0x2b')],_0x24e176[_0xc6ef('0x2c')]);_0x414b0f[_0xc6ef('0x30')]=_[_0xc6ef('0x2f')](_0x24e176[_0xc6ef('0x2b')],qs[_0xc6ef('0x31')](_0x5d5056[_0xc6ef('0x2c')][_0xc6ef('0x31')]));_0x414b0f['attributes']=_0x414b0f[_0xc6ef('0x30')]['length']?_0x414b0f[_0xc6ef('0x30')]:_0x24e176[_0xc6ef('0x2b')];if(!_0x5d5056['query'][_0xc6ef('0x32')](_0xc6ef('0x33'))){_0x414b0f[_0xc6ef('0x34')]=qs[_0xc6ef('0x34')](_0x5d5056[_0xc6ef('0x2c')][_0xc6ef('0x34')]);_0x414b0f['offset']=qs[_0xc6ef('0x18')](_0x5d5056[_0xc6ef('0x2c')][_0xc6ef('0x18')]);}_0x414b0f[_0xc6ef('0x35')]=qs[_0xc6ef('0x36')](_0x5d5056[_0xc6ef('0x2c')][_0xc6ef('0x36')]);_0x414b0f[_0xc6ef('0x37')]=qs[_0xc6ef('0x2e')](_[_0xc6ef('0x38')](_0x5d5056[_0xc6ef('0x2c')],_0x24e176[_0xc6ef('0x2e')]),_0x1eea98);if(_0x5d5056[_0xc6ef('0x2c')][_0xc6ef('0x39')]){_0x414b0f['where']=_[_0xc6ef('0x3a')](_0x414b0f['where'],{'$or':_['map'](_0x1eea98,function(_0x2e0581){if(_0x2e0581[_0xc6ef('0x2a')]!==_0xc6ef('0x3b')){var _0x54bca8={};_0x54bca8[_0x2e0581['name']]={'$like':'%'+_0x5d5056['query'][_0xc6ef('0x39')]+'%'};return _0x54bca8;}})});}_0x414b0f=_['merge']({},_0x414b0f,_0x5d5056[_0xc6ef('0x3c')]);var _0x5715f7={'where':_0x414b0f[_0xc6ef('0x37')]};return db[_0xc6ef('0x27')]['count'](_0x5715f7)[_0xc6ef('0x21')](function(_0x40cff8){_0x110b63[_0xc6ef('0x1a')]=_0x40cff8;if(_0x5d5056[_0xc6ef('0x2c')][_0xc6ef('0x3d')]){_0x414b0f[_0xc6ef('0x3e')]=[{'all':!![]}];}return db[_0xc6ef('0x27')][_0xc6ef('0x3f')](_0x414b0f);})[_0xc6ef('0x21')](function(_0x30a834){_0x110b63[_0xc6ef('0x40')]=_0x30a834;return _0x110b63;})['then'](respondWithFilteredResult(_0x29bfe4,_0x414b0f))[_0xc6ef('0x41')](handleError(_0x29bfe4,null));};exports[_0xc6ef('0x42')]=function(_0x1c2980,_0xe584c8){var _0x42be19={'raw':!![],'where':{'id':_0x1c2980['params']['id']}},_0x39850a={};_0x39850a[_0xc6ef('0x2b')]=_[_0xc6ef('0x2d')](db[_0xc6ef('0x27')][_0xc6ef('0x28')]);_0x39850a['query']=_['keys'](_0x1c2980[_0xc6ef('0x2c')]);_0x39850a[_0xc6ef('0x2e')]=_[_0xc6ef('0x2f')](_0x39850a[_0xc6ef('0x2b')],_0x39850a[_0xc6ef('0x2c')]);_0x42be19['attributes']=_[_0xc6ef('0x2f')](_0x39850a[_0xc6ef('0x2b')],qs[_0xc6ef('0x31')](_0x1c2980[_0xc6ef('0x2c')][_0xc6ef('0x31')]));_0x42be19[_0xc6ef('0x30')]=_0x42be19['attributes'][_0xc6ef('0x43')]?_0x42be19[_0xc6ef('0x30')]:_0x39850a[_0xc6ef('0x2b')];if(_0x1c2980[_0xc6ef('0x2c')][_0xc6ef('0x3d')]){_0x42be19[_0xc6ef('0x3e')]=[{'all':!![]}];}_0x42be19=_[_0xc6ef('0x3a')]({},_0x42be19,_0x1c2980[_0xc6ef('0x3c')]);return db['SquareOdbc'][_0xc6ef('0x44')](_0x42be19)[_0xc6ef('0x21')](handleEntityNotFound(_0xe584c8,null))[_0xc6ef('0x21')](respondWithResult(_0xe584c8,null))[_0xc6ef('0x41')](handleError(_0xe584c8,null));};exports['create']=function(_0x26a95d,_0x54d379){return db['SquareOdbc']['create'](_0x26a95d['body'],{})[_0xc6ef('0x21')](function(_0x2af04d){var _0x275129=_0x26a95d['user'][_0xc6ef('0x45')]({'plain':!![]});if(!_0x275129)throw new Error(_0xc6ef('0x46'));if(_0x275129[_0xc6ef('0x47')]===_0xc6ef('0x48')){var _0x180563=_0x2af04d[_0xc6ef('0x45')]({'plain':!![]});var _0x5c4f19=_0xc6ef('0x23');return db[_0xc6ef('0x49')][_0xc6ef('0x44')]({'where':{'name':_0x5c4f19,'userProfileId':_0x275129[_0xc6ef('0x4a')]},'raw':!![]})['then'](function(_0x1791d0){if(_0x1791d0&&_0x1791d0['autoAssociation']===0x0){return db[_0xc6ef('0x4b')][_0xc6ef('0x4c')]({'name':_0x180563[_0xc6ef('0x24')],'resourceId':_0x180563['id'],'type':_0x1791d0[_0xc6ef('0x24')],'sectionId':_0x1791d0['id']},{})['then'](function(){return _0x2af04d;});}else{return _0x2af04d;}})[_0xc6ef('0x41')](function(_0x3ca0b4){logger[_0xc6ef('0x4d')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x3ca0b4);throw _0x3ca0b4;});}return _0x2af04d;})[_0xc6ef('0x21')](respondWithResult(_0x54d379,0xc9))['catch'](handleError(_0x54d379,null));};exports[_0xc6ef('0x20')]=function(_0x563b07,_0x487702){if(_0x563b07['body']['id']){delete _0x563b07[_0xc6ef('0x4e')]['id'];}return db[_0xc6ef('0x27')][_0xc6ef('0x44')]({'where':{'id':_0x563b07[_0xc6ef('0x4f')]['id']}})['then'](handleEntityNotFound(_0x487702,null))['then'](saveUpdates(_0x563b07['body'],null))[_0xc6ef('0x21')](respondWithResult(_0x487702,null))[_0xc6ef('0x41')](handleError(_0x487702,null));};exports[_0xc6ef('0x22')]=function(_0x15c8eb,_0x48be7b){return db[_0xc6ef('0x27')]['find']({'where':{'id':_0x15c8eb[_0xc6ef('0x4f')]['id']}})[_0xc6ef('0x21')](handleEntityNotFound(_0x48be7b,null))[_0xc6ef('0x21')](removeEntity(_0x48be7b,null))[_0xc6ef('0x41')](handleError(_0x48be7b,null));};exports[_0xc6ef('0x50')]=function(_0x40e26c,_0x175f9b,_0x1171e2){var _0x4ea278;return db['SquareOdbc'][_0xc6ef('0x44')]({'where':{'id':_0x40e26c[_0xc6ef('0x4f')]['id']},'attributes':['id',_0xc6ef('0x51')]})['then'](handleEntityNotFound(_0x175f9b,null))[_0xc6ef('0x21')](function(_0x146a11){if(_0x146a11){var _0x19f4a1=require(_0xc6ef('0x52'))();_0x19f4a1[_0xc6ef('0x53')](_0x146a11[_0xc6ef('0x51')]);_0x19f4a1[_0xc6ef('0x54')]();return _0x146a11;}})['then'](respondWithResult(_0x175f9b,null))['catch'](handleError(_0x175f9b,null));};