Built motion from commit 14588770.|2.5.38
[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 _0x9508=['UserProfileResource','status','sendStatus','error','name','index','fieldName','type','key','model','map','query','keys','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','filters','pick','filter','merge','where','SquareOdbc','includeAll','include','rows','rawAttributes','length','options','find','catch','create','body','role','user','update','test','params','openSync','dsn','closeSync','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','desk.js','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','end','offset','undefined','limit','count','set','Content-Range','json','apply','save','destroy','then','get','ODBC'];(function(_0x1cc8fe,_0x105328){var _0x230054=function(_0x1a1b56){while(--_0x1a1b56){_0x1cc8fe['push'](_0x1cc8fe['shift']());}};_0x230054(++_0x105328);}(_0x9508,0xd2));var _0x8950=function(_0x3f5895,_0x1d4960){_0x3f5895=_0x3f5895-0x0;var _0x154033=_0x9508[_0x3f5895];return _0x154033;};'use strict';var emlformat=require(_0x8950('0x0'));var rimraf=require(_0x8950('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x8950('0x2'));var rp=require(_0x8950('0x3'));var moment=require(_0x8950('0x4'));var BPromise=require(_0x8950('0x5'));var Mustache=require(_0x8950('0x6'));var util=require(_0x8950('0x7'));var path=require(_0x8950('0x8'));var sox=require('sox');var csv=require(_0x8950('0x9'));var ejs=require(_0x8950('0xa'));var fs=require('fs');var fs_extra=require(_0x8950('0xb'));var _=require(_0x8950('0xc'));var squel=require(_0x8950('0xd'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x8950('0xe'));var toCsv=require(_0x8950('0x9'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x8950('0xf'));var qs=require(_0x8950('0x10'));var as=require(_0x8950('0x11'));var hardwareService=require(_0x8950('0x12'));var logger=require(_0x8950('0x13'))(_0x8950('0x14'));var utils=require(_0x8950('0x15'));var config=require(_0x8950('0x16'));var licenseUtil=require(_0x8950('0x17'));var db=require(_0x8950('0x18'))['db'];function respondWithStatusCode(_0x4da134,_0x132446){_0x132446=_0x132446||0xcc;return function(_0x1c2b57){if(_0x1c2b57){return _0x4da134['sendStatus'](_0x132446);}return _0x4da134['status'](_0x132446)[_0x8950('0x19')]();};}function respondWithResult(_0x288133,_0x1acc9d){_0x1acc9d=_0x1acc9d||0xc8;return function(_0x3c4727){if(_0x3c4727){return _0x288133['status'](_0x1acc9d)['json'](_0x3c4727);}};}function respondWithFilteredResult(_0x22828d,_0x35170f){return function(_0x2cdc3e){if(_0x2cdc3e){var _0x182576=typeof _0x35170f[_0x8950('0x1a')]===_0x8950('0x1b')&&typeof _0x35170f[_0x8950('0x1c')]===_0x8950('0x1b');var _0x2411ad=_0x2cdc3e[_0x8950('0x1d')];var _0x1b7aa0=_0x182576?0x0:_0x35170f[_0x8950('0x1a')];var _0x19666a=_0x182576?_0x2cdc3e['count']:_0x35170f[_0x8950('0x1a')]+_0x35170f[_0x8950('0x1c')];var _0x1bfbb1;if(_0x19666a>=_0x2411ad){_0x19666a=_0x2411ad;_0x1bfbb1=0xc8;}else{_0x1bfbb1=0xce;}_0x22828d['status'](_0x1bfbb1);return _0x22828d[_0x8950('0x1e')](_0x8950('0x1f'),_0x1b7aa0+'-'+_0x19666a+'/'+_0x2411ad)[_0x8950('0x20')](_0x2cdc3e);}return null;};}function patchUpdates(_0x1ed486){return function(_0x1765db){try{jsonpatch[_0x8950('0x21')](_0x1765db,_0x1ed486,!![]);}catch(_0x49a5f4){return BPromise['reject'](_0x49a5f4);}return _0x1765db[_0x8950('0x22')]();};}function saveUpdates(_0x33ab4d,_0x5f58b5){return function(_0x5f4244){if(_0x5f4244){return _0x5f4244['update'](_0x33ab4d)['then'](function(_0x93d34){return _0x93d34;});}return null;};}function removeEntity(_0x1bbf68,_0xefb389){return function(_0xc31a46){if(_0xc31a46){return _0xc31a46[_0x8950('0x23')]()[_0x8950('0x24')](function(){var _0x5ecde0=_0xc31a46[_0x8950('0x25')]({'plain':!![]});var _0x53a8e4=_0x8950('0x26');return db[_0x8950('0x27')][_0x8950('0x23')]({'where':{'type':_0x53a8e4,'resourceId':_0x5ecde0['id']}})[_0x8950('0x24')](function(){return _0xc31a46;});})[_0x8950('0x24')](function(){_0x1bbf68[_0x8950('0x28')](0xcc)[_0x8950('0x19')]();});}};}function handleEntityNotFound(_0x27ba70,_0x5174e1){return function(_0x252f2a){if(!_0x252f2a){_0x27ba70[_0x8950('0x29')](0x194);}return _0x252f2a;};}function handleError(_0xa03bf5,_0x3b7c83){_0x3b7c83=_0x3b7c83||0x1f4;return function(_0x2005bd){logger[_0x8950('0x2a')](_0x2005bd['stack']);if(_0x2005bd[_0x8950('0x2b')]){delete _0x2005bd['name'];}_0xa03bf5['status'](_0x3b7c83)['send'](_0x2005bd);};}exports[_0x8950('0x2c')]=function(_0x50a910,_0x57002d){var _0x51c602={},_0x44aa11={},_0x2751b7={'count':0x0,'rows':[]};var _0x30821a=_['map'](db['SquareOdbc']['rawAttributes'],function(_0x204740){return{'name':_0x204740[_0x8950('0x2d')],'type':_0x204740[_0x8950('0x2e')][_0x8950('0x2f')]};});_0x44aa11[_0x8950('0x30')]=_[_0x8950('0x31')](_0x30821a,_0x8950('0x2b'));_0x44aa11[_0x8950('0x32')]=_[_0x8950('0x33')](_0x50a910[_0x8950('0x32')]);_0x44aa11['filters']=_[_0x8950('0x34')](_0x44aa11[_0x8950('0x30')],_0x44aa11[_0x8950('0x32')]);_0x51c602['attributes']=_[_0x8950('0x34')](_0x44aa11[_0x8950('0x30')],qs[_0x8950('0x35')](_0x50a910['query'][_0x8950('0x35')]));_0x51c602['attributes']=_0x51c602[_0x8950('0x36')]['length']?_0x51c602['attributes']:_0x44aa11[_0x8950('0x30')];if(!_0x50a910[_0x8950('0x32')][_0x8950('0x37')](_0x8950('0x38'))){_0x51c602['limit']=qs[_0x8950('0x1c')](_0x50a910[_0x8950('0x32')][_0x8950('0x1c')]);_0x51c602['offset']=qs[_0x8950('0x1a')](_0x50a910['query'][_0x8950('0x1a')]);}_0x51c602[_0x8950('0x39')]=qs[_0x8950('0x3a')](_0x50a910['query'][_0x8950('0x3a')]);_0x51c602['where']=qs[_0x8950('0x3b')](_[_0x8950('0x3c')](_0x50a910[_0x8950('0x32')],_0x44aa11[_0x8950('0x3b')]),_0x30821a);if(_0x50a910[_0x8950('0x32')][_0x8950('0x3d')]){_0x51c602['where']=_[_0x8950('0x3e')](_0x51c602[_0x8950('0x3f')],{'$or':_[_0x8950('0x31')](_0x30821a,function(_0x581445){if(_0x581445[_0x8950('0x2e')]!=='VIRTUAL'){var _0x380b3c={};_0x380b3c[_0x581445['name']]={'$like':'%'+_0x50a910[_0x8950('0x32')]['filter']+'%'};return _0x380b3c;}})});}_0x51c602=_['merge']({},_0x51c602,_0x50a910['options']);var _0x2bcca2={'where':_0x51c602[_0x8950('0x3f')]};return db[_0x8950('0x40')]['count'](_0x2bcca2)[_0x8950('0x24')](function(_0x4a4120){_0x2751b7[_0x8950('0x1d')]=_0x4a4120;if(_0x50a910[_0x8950('0x32')][_0x8950('0x41')]){_0x51c602[_0x8950('0x42')]=[{'all':!![]}];}return db[_0x8950('0x40')]['findAll'](_0x51c602);})[_0x8950('0x24')](function(_0x18531c){_0x2751b7[_0x8950('0x43')]=_0x18531c;return _0x2751b7;})[_0x8950('0x24')](respondWithFilteredResult(_0x57002d,_0x51c602))['catch'](handleError(_0x57002d,null));};exports['show']=function(_0x3e7b3d,_0x552b31){var _0x44c940={'raw':!![],'where':{'id':_0x3e7b3d['params']['id']}},_0x8c6e69={};_0x8c6e69[_0x8950('0x30')]=_[_0x8950('0x33')](db[_0x8950('0x40')][_0x8950('0x44')]);_0x8c6e69[_0x8950('0x32')]=_['keys'](_0x3e7b3d[_0x8950('0x32')]);_0x8c6e69['filters']=_[_0x8950('0x34')](_0x8c6e69['model'],_0x8c6e69['query']);_0x44c940[_0x8950('0x36')]=_[_0x8950('0x34')](_0x8c6e69[_0x8950('0x30')],qs[_0x8950('0x35')](_0x3e7b3d[_0x8950('0x32')]['fields']));_0x44c940[_0x8950('0x36')]=_0x44c940[_0x8950('0x36')][_0x8950('0x45')]?_0x44c940[_0x8950('0x36')]:_0x8c6e69[_0x8950('0x30')];if(_0x3e7b3d['query'][_0x8950('0x41')]){_0x44c940[_0x8950('0x42')]=[{'all':!![]}];}_0x44c940=_['merge']({},_0x44c940,_0x3e7b3d[_0x8950('0x46')]);return db[_0x8950('0x40')][_0x8950('0x47')](_0x44c940)[_0x8950('0x24')](handleEntityNotFound(_0x552b31,null))[_0x8950('0x24')](respondWithResult(_0x552b31,null))[_0x8950('0x48')](handleError(_0x552b31,null));};exports[_0x8950('0x49')]=function(_0x4f23f7,_0x5c9d29){return db['SquareOdbc'][_0x8950('0x49')](_0x4f23f7[_0x8950('0x4a')],{})[_0x8950('0x24')](function(_0x2d1efe){var _0x1debed=_0x4f23f7['user'][_0x8950('0x25')]({'plain':!![]});if(!_0x1debed)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x1debed[_0x8950('0x4b')]===_0x8950('0x4c')){var _0x10e367=_0x2d1efe['get']({'plain':!![]});var _0x90aa04=_0x8950('0x26');return db['UserProfileSection'][_0x8950('0x47')]({'where':{'name':_0x90aa04,'userProfileId':_0x1debed['userProfileId']},'raw':!![]})[_0x8950('0x24')](function(_0x211212){if(_0x211212&&_0x211212['autoAssociation']===0x0){return db['UserProfileResource'][_0x8950('0x49')]({'name':_0x10e367[_0x8950('0x2b')],'resourceId':_0x10e367['id'],'type':_0x211212['name'],'sectionId':_0x211212['id']},{})[_0x8950('0x24')](function(){return _0x2d1efe;});}else{return _0x2d1efe;}})[_0x8950('0x48')](function(_0x1ca028){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x1ca028);throw _0x1ca028;});}return _0x2d1efe;})['then'](respondWithResult(_0x5c9d29,0xc9))['catch'](handleError(_0x5c9d29,null));};exports[_0x8950('0x4d')]=function(_0x46ec68,_0x5a41c6){if(_0x46ec68['body']['id']){delete _0x46ec68[_0x8950('0x4a')]['id'];}return db['SquareOdbc'][_0x8950('0x47')]({'where':{'id':_0x46ec68['params']['id']}})['then'](handleEntityNotFound(_0x5a41c6,null))['then'](saveUpdates(_0x46ec68[_0x8950('0x4a')],null))[_0x8950('0x24')](respondWithResult(_0x5a41c6,null))[_0x8950('0x48')](handleError(_0x5a41c6,null));};exports[_0x8950('0x23')]=function(_0x478da2,_0x1ac18c){return db[_0x8950('0x40')][_0x8950('0x47')]({'where':{'id':_0x478da2['params']['id']}})['then'](handleEntityNotFound(_0x1ac18c,null))[_0x8950('0x24')](removeEntity(_0x1ac18c,null))[_0x8950('0x48')](handleError(_0x1ac18c,null));};exports[_0x8950('0x4e')]=function(_0xda1cc8,_0x2d473f,_0x538be6){var _0x42ceea;return db[_0x8950('0x40')][_0x8950('0x47')]({'where':{'id':_0xda1cc8[_0x8950('0x4f')]['id']},'attributes':['id','dsn']})[_0x8950('0x24')](handleEntityNotFound(_0x2d473f,null))[_0x8950('0x24')](function(_0x57d032){if(_0x57d032){var _0x366c73=require('odbc')();_0x366c73[_0x8950('0x50')](_0x57d032[_0x8950('0x51')]);_0x366c73[_0x8950('0x52')]();return _0x57d032;}})['then'](respondWithResult(_0x2d473f,null))['catch'](handleError(_0x2d473f,null));};