785e89aca564feada649d9053bf931340aa8063e
[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 _0x0bab=['then','get','ODBC','UserProfileResource','destroy','name','send','index','map','SquareOdbc','fieldName','type','key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','pick','where','merge','VIRTUAL','filter','include','findAll','rows','catch','params','keys','rawAttributes','includeAll','options','find','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','create','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','test','dsn','closeSync','eml-format','rimraf','zip-dir','fast-json-patch','bluebird','mustache','util','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','save','update'];(function(_0x4d0df6,_0x4634f3){var _0x4e2615=function(_0x5285e2){while(--_0x5285e2){_0x4d0df6['push'](_0x4d0df6['shift']());}};_0x4e2615(++_0x4634f3);}(_0x0bab,0x19f));var _0xb0ba=function(_0x350744,_0x7d9b13){_0x350744=_0x350744-0x0;var _0x14ad39=_0x0bab[_0x350744];return _0x14ad39;};'use strict';var emlformat=require(_0xb0ba('0x0'));var rimraf=require(_0xb0ba('0x1'));var zipdir=require(_0xb0ba('0x2'));var jsonpatch=require(_0xb0ba('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xb0ba('0x4'));var Mustache=require(_0xb0ba('0x5'));var util=require(_0xb0ba('0x6'));var path=require('path');var sox=require(_0xb0ba('0x7'));var csv=require(_0xb0ba('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xb0ba('0x9'));var _=require(_0xb0ba('0xa'));var squel=require(_0xb0ba('0xb'));var crypto=require(_0xb0ba('0xc'));var jsforce=require(_0xb0ba('0xd'));var deskjs=require(_0xb0ba('0xe'));var toCsv=require('to-csv');var querystring=require(_0xb0ba('0xf'));var Papa=require(_0xb0ba('0x10'));var Redis=require(_0xb0ba('0x11'));var authService=require(_0xb0ba('0x12'));var qs=require(_0xb0ba('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xb0ba('0x14'));var logger=require(_0xb0ba('0x15'))(_0xb0ba('0x16'));var utils=require(_0xb0ba('0x17'));var config=require(_0xb0ba('0x18'));var licenseUtil=require(_0xb0ba('0x19'));var db=require(_0xb0ba('0x1a'))['db'];function respondWithStatusCode(_0x411935,_0x19570f){_0x19570f=_0x19570f||0xcc;return function(_0x526c48){if(_0x526c48){return _0x411935[_0xb0ba('0x1b')](_0x19570f);}return _0x411935[_0xb0ba('0x1c')](_0x19570f)[_0xb0ba('0x1d')]();};}function respondWithResult(_0x2c97d4,_0x17e8d9){_0x17e8d9=_0x17e8d9||0xc8;return function(_0x24aae2){if(_0x24aae2){return _0x2c97d4['status'](_0x17e8d9)[_0xb0ba('0x1e')](_0x24aae2);}};}function respondWithFilteredResult(_0x4e113c,_0x40745f){return function(_0x4b9129){if(_0x4b9129){var _0x2b7b3b=typeof _0x40745f[_0xb0ba('0x1f')]===_0xb0ba('0x20')&&typeof _0x40745f['limit']===_0xb0ba('0x20');var _0x1823c9=_0x4b9129[_0xb0ba('0x21')];var _0x3b9b45=_0x2b7b3b?0x0:_0x40745f[_0xb0ba('0x1f')];var _0x2f0f39=_0x2b7b3b?_0x4b9129['count']:_0x40745f[_0xb0ba('0x1f')]+_0x40745f[_0xb0ba('0x22')];var _0x483784;if(_0x2f0f39>=_0x1823c9){_0x2f0f39=_0x1823c9;_0x483784=0xc8;}else{_0x483784=0xce;}_0x4e113c['status'](_0x483784);return _0x4e113c[_0xb0ba('0x23')](_0xb0ba('0x24'),_0x3b9b45+'-'+_0x2f0f39+'/'+_0x1823c9)['json'](_0x4b9129);}return null;};}function patchUpdates(_0x15cdb6){return function(_0x46d3f2){try{jsonpatch[_0xb0ba('0x25')](_0x46d3f2,_0x15cdb6,!![]);}catch(_0xc45c9){return BPromise['reject'](_0xc45c9);}return _0x46d3f2[_0xb0ba('0x26')]();};}function saveUpdates(_0x22539b,_0x2bf4a8){return function(_0x1a2298){if(_0x1a2298){return _0x1a2298[_0xb0ba('0x27')](_0x22539b)[_0xb0ba('0x28')](function(_0xe39cf8){return _0xe39cf8;});}return null;};}function removeEntity(_0x2d2200,_0x3e0736){return function(_0x1fecdd){if(_0x1fecdd){return _0x1fecdd['destroy']()[_0xb0ba('0x28')](function(){var _0xf891a=_0x1fecdd[_0xb0ba('0x29')]({'plain':!![]});var _0x3318f5=_0xb0ba('0x2a');return db[_0xb0ba('0x2b')][_0xb0ba('0x2c')]({'where':{'type':_0x3318f5,'resourceId':_0xf891a['id']}})[_0xb0ba('0x28')](function(){return _0x1fecdd;});})[_0xb0ba('0x28')](function(){_0x2d2200['status'](0xcc)[_0xb0ba('0x1d')]();});}};}function handleEntityNotFound(_0x150bb6,_0x28d40e){return function(_0x1f25ce){if(!_0x1f25ce){_0x150bb6[_0xb0ba('0x1b')](0x194);}return _0x1f25ce;};}function handleError(_0x427f97,_0x254057){_0x254057=_0x254057||0x1f4;return function(_0xadc516){logger['error'](_0xadc516['stack']);if(_0xadc516[_0xb0ba('0x2d')]){delete _0xadc516[_0xb0ba('0x2d')];}_0x427f97[_0xb0ba('0x1c')](_0x254057)[_0xb0ba('0x2e')](_0xadc516);};}exports[_0xb0ba('0x2f')]=function(_0x1cf7a2,_0xb855a0){var _0x11ea13={},_0x1a0f50={},_0x44c731={'count':0x0,'rows':[]};var _0x2aed03=_[_0xb0ba('0x30')](db[_0xb0ba('0x31')]['rawAttributes'],function(_0x398988){return{'name':_0x398988[_0xb0ba('0x32')],'type':_0x398988[_0xb0ba('0x33')][_0xb0ba('0x34')]};});_0x1a0f50[_0xb0ba('0x35')]=_['map'](_0x2aed03,'name');_0x1a0f50[_0xb0ba('0x36')]=_['keys'](_0x1cf7a2[_0xb0ba('0x36')]);_0x1a0f50[_0xb0ba('0x37')]=_[_0xb0ba('0x38')](_0x1a0f50[_0xb0ba('0x35')],_0x1a0f50['query']);_0x11ea13[_0xb0ba('0x39')]=_[_0xb0ba('0x38')](_0x1a0f50[_0xb0ba('0x35')],qs[_0xb0ba('0x3a')](_0x1cf7a2[_0xb0ba('0x36')][_0xb0ba('0x3a')]));_0x11ea13['attributes']=_0x11ea13[_0xb0ba('0x39')][_0xb0ba('0x3b')]?_0x11ea13['attributes']:_0x1a0f50['model'];if(!_0x1cf7a2[_0xb0ba('0x36')][_0xb0ba('0x3c')]('nolimit')){_0x11ea13['limit']=qs[_0xb0ba('0x22')](_0x1cf7a2[_0xb0ba('0x36')][_0xb0ba('0x22')]);_0x11ea13[_0xb0ba('0x1f')]=qs[_0xb0ba('0x1f')](_0x1cf7a2[_0xb0ba('0x36')][_0xb0ba('0x1f')]);}_0x11ea13[_0xb0ba('0x3d')]=qs['sort'](_0x1cf7a2['query'][_0xb0ba('0x3e')]);_0x11ea13['where']=qs[_0xb0ba('0x37')](_[_0xb0ba('0x3f')](_0x1cf7a2['query'],_0x1a0f50['filters']),_0x2aed03);if(_0x1cf7a2[_0xb0ba('0x36')]['filter']){_0x11ea13[_0xb0ba('0x40')]=_[_0xb0ba('0x41')](_0x11ea13[_0xb0ba('0x40')],{'$or':_[_0xb0ba('0x30')](_0x2aed03,function(_0x4c4cce){if(_0x4c4cce['type']!==_0xb0ba('0x42')){var _0x5de952={};_0x5de952[_0x4c4cce['name']]={'$like':'%'+_0x1cf7a2[_0xb0ba('0x36')][_0xb0ba('0x43')]+'%'};return _0x5de952;}})});}_0x11ea13=_[_0xb0ba('0x41')]({},_0x11ea13,_0x1cf7a2['options']);var _0x347e08={'where':_0x11ea13[_0xb0ba('0x40')]};return db[_0xb0ba('0x31')][_0xb0ba('0x21')](_0x347e08)[_0xb0ba('0x28')](function(_0x4f2ddd){_0x44c731['count']=_0x4f2ddd;if(_0x1cf7a2[_0xb0ba('0x36')]['includeAll']){_0x11ea13[_0xb0ba('0x44')]=[{'all':!![]}];}return db['SquareOdbc'][_0xb0ba('0x45')](_0x11ea13);})['then'](function(_0x5dac04){_0x44c731[_0xb0ba('0x46')]=_0x5dac04;return _0x44c731;})[_0xb0ba('0x28')](respondWithFilteredResult(_0xb855a0,_0x11ea13))[_0xb0ba('0x47')](handleError(_0xb855a0,null));};exports['show']=function(_0x3ee564,_0x5e1421){var _0x141737={'raw':!![],'where':{'id':_0x3ee564[_0xb0ba('0x48')]['id']}},_0x5d9283={};_0x5d9283[_0xb0ba('0x35')]=_[_0xb0ba('0x49')](db[_0xb0ba('0x31')][_0xb0ba('0x4a')]);_0x5d9283[_0xb0ba('0x36')]=_['keys'](_0x3ee564['query']);_0x5d9283[_0xb0ba('0x37')]=_[_0xb0ba('0x38')](_0x5d9283[_0xb0ba('0x35')],_0x5d9283['query']);_0x141737[_0xb0ba('0x39')]=_[_0xb0ba('0x38')](_0x5d9283[_0xb0ba('0x35')],qs[_0xb0ba('0x3a')](_0x3ee564[_0xb0ba('0x36')][_0xb0ba('0x3a')]));_0x141737[_0xb0ba('0x39')]=_0x141737[_0xb0ba('0x39')][_0xb0ba('0x3b')]?_0x141737['attributes']:_0x5d9283[_0xb0ba('0x35')];if(_0x3ee564[_0xb0ba('0x36')][_0xb0ba('0x4b')]){_0x141737[_0xb0ba('0x44')]=[{'all':!![]}];}_0x141737=_['merge']({},_0x141737,_0x3ee564[_0xb0ba('0x4c')]);return db['SquareOdbc'][_0xb0ba('0x4d')](_0x141737)[_0xb0ba('0x28')](handleEntityNotFound(_0x5e1421,null))[_0xb0ba('0x28')](respondWithResult(_0x5e1421,null))[_0xb0ba('0x47')](handleError(_0x5e1421,null));};exports['create']=function(_0x40e566,_0x5bedb6){return db[_0xb0ba('0x31')]['create'](_0x40e566['body'],{})[_0xb0ba('0x28')](function(_0x3f454d){var _0x255b69=_0x40e566[_0xb0ba('0x4e')][_0xb0ba('0x29')]({'plain':!![]});if(!_0x255b69)throw new Error(_0xb0ba('0x4f'));if(_0x255b69[_0xb0ba('0x50')]===_0xb0ba('0x4e')){var _0xd25c7c=_0x3f454d['get']({'plain':!![]});var _0x97119b=_0xb0ba('0x2a');return db[_0xb0ba('0x51')]['find']({'where':{'name':_0x97119b,'userProfileId':_0x255b69[_0xb0ba('0x52')]},'raw':!![]})[_0xb0ba('0x28')](function(_0xc2c632){if(_0xc2c632&&_0xc2c632[_0xb0ba('0x53')]===0x0){return db[_0xb0ba('0x2b')][_0xb0ba('0x54')]({'name':_0xd25c7c['name'],'resourceId':_0xd25c7c['id'],'type':_0xc2c632[_0xb0ba('0x2d')],'sectionId':_0xc2c632['id']},{})[_0xb0ba('0x28')](function(){return _0x3f454d;});}else{return _0x3f454d;}})[_0xb0ba('0x47')](function(_0x50218e){logger[_0xb0ba('0x55')](_0xb0ba('0x56'),_0x50218e);throw _0x50218e;});}return _0x3f454d;})[_0xb0ba('0x28')](respondWithResult(_0x5bedb6,0xc9))[_0xb0ba('0x47')](handleError(_0x5bedb6,null));};exports[_0xb0ba('0x27')]=function(_0x3ca42e,_0x5ea7a4){if(_0x3ca42e[_0xb0ba('0x57')]['id']){delete _0x3ca42e['body']['id'];}return db[_0xb0ba('0x31')][_0xb0ba('0x4d')]({'where':{'id':_0x3ca42e[_0xb0ba('0x48')]['id']}})[_0xb0ba('0x28')](handleEntityNotFound(_0x5ea7a4,null))['then'](saveUpdates(_0x3ca42e[_0xb0ba('0x57')],null))[_0xb0ba('0x28')](respondWithResult(_0x5ea7a4,null))[_0xb0ba('0x47')](handleError(_0x5ea7a4,null));};exports[_0xb0ba('0x2c')]=function(_0x2e68ed,_0x67d314){return db[_0xb0ba('0x31')]['find']({'where':{'id':_0x2e68ed['params']['id']}})['then'](handleEntityNotFound(_0x67d314,null))[_0xb0ba('0x28')](removeEntity(_0x67d314,null))[_0xb0ba('0x47')](handleError(_0x67d314,null));};exports[_0xb0ba('0x58')]=function(_0xa81735,_0x39f8cd,_0x335a69){var _0x4f3bf7;return db[_0xb0ba('0x31')][_0xb0ba('0x4d')]({'where':{'id':_0xa81735[_0xb0ba('0x48')]['id']},'attributes':['id',_0xb0ba('0x59')]})[_0xb0ba('0x28')](handleEntityNotFound(_0x39f8cd,null))['then'](function(_0x53a174){if(_0x53a174){var _0x4038a0=require('odbc')();_0x4038a0['openSync'](_0x53a174[_0xb0ba('0x59')]);_0x4038a0[_0xb0ba('0x5a')]();return _0x53a174;}})['then'](respondWithResult(_0x39f8cd,null))[_0xb0ba('0x47')](handleError(_0x39f8cd,null));};