4637520687ad979582863c537b9da0337a5b6889
[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 _0x4fb4=['map','SquareOdbc','rawAttributes','fieldName','type','key','model','name','filters','intersection','query','attributes','length','nolimit','order','sort','where','pick','VIRTUAL','filter','options','includeAll','include','rows','keys','fields','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','UserProfileResource','catch','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','odbc','openSync','dsn','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','count','limit','reject','save','update','then','get','ODBC','destroy','sendStatus','error','merge','body','contact','message','agent','index'];(function(_0x2641f9,_0x26715f){var _0x585741=function(_0x2d1462){while(--_0x2d1462){_0x2641f9['push'](_0x2641f9['shift']());}};_0x585741(++_0x26715f);}(_0x4fb4,0x190));var _0x44fb=function(_0x12f334,_0x3c0c82){_0x12f334=_0x12f334-0x0;var _0x304af7=_0x4fb4[_0x12f334];return _0x304af7;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x44fb('0x0'));var zipdir=require(_0x44fb('0x1'));var jsonpatch=require(_0x44fb('0x2'));var rp=require(_0x44fb('0x3'));var moment=require(_0x44fb('0x4'));var BPromise=require(_0x44fb('0x5'));var Mustache=require('mustache');var util=require(_0x44fb('0x6'));var path=require(_0x44fb('0x7'));var sox=require(_0x44fb('0x8'));var csv=require(_0x44fb('0x9'));var ejs=require(_0x44fb('0xa'));var fs=require('fs');var fs_extra=require(_0x44fb('0xb'));var _=require(_0x44fb('0xc'));var squel=require(_0x44fb('0xd'));var crypto=require('crypto');var jsforce=require(_0x44fb('0xe'));var deskjs=require(_0x44fb('0xf'));var toCsv=require('to-csv');var querystring=require(_0x44fb('0x10'));var Papa=require(_0x44fb('0x11'));var Redis=require(_0x44fb('0x12'));var authService=require(_0x44fb('0x13'));var qs=require(_0x44fb('0x14'));var as=require(_0x44fb('0x15'));var hardwareService=require(_0x44fb('0x16'));var logger=require(_0x44fb('0x17'))(_0x44fb('0x18'));var utils=require(_0x44fb('0x19'));var config=require('../../config/environment');var licenseUtil=require(_0x44fb('0x1a'));var db=require(_0x44fb('0x1b'))['db'];function respondWithStatusCode(_0x40cb86,_0x103b56){_0x103b56=_0x103b56||0xcc;return function(_0x1c1cbc){if(_0x1c1cbc){return _0x40cb86['sendStatus'](_0x103b56);}return _0x40cb86[_0x44fb('0x1c')](_0x103b56)[_0x44fb('0x1d')]();};}function respondWithResult(_0x39fb83,_0x449150){_0x449150=_0x449150||0xc8;return function(_0x9a367d){if(_0x9a367d){return _0x39fb83['status'](_0x449150)[_0x44fb('0x1e')](_0x9a367d);}};}function respondWithFilteredResult(_0x18268c,_0x472658){return function(_0x147fe0){if(_0x147fe0){var _0x550b32=typeof _0x472658[_0x44fb('0x1f')]===_0x44fb('0x20')&&typeof _0x472658['limit']===_0x44fb('0x20');var _0x21886d=_0x147fe0[_0x44fb('0x21')];var _0x13cf75=_0x550b32?0x0:_0x472658[_0x44fb('0x1f')];var _0x22c2eb=_0x550b32?_0x147fe0[_0x44fb('0x21')]:_0x472658[_0x44fb('0x1f')]+_0x472658[_0x44fb('0x22')];var _0x1fc48c;if(_0x22c2eb>=_0x21886d){_0x22c2eb=_0x21886d;_0x1fc48c=0xc8;}else{_0x1fc48c=0xce;}_0x18268c['status'](_0x1fc48c);return _0x18268c['set']('Content-Range',_0x13cf75+'-'+_0x22c2eb+'/'+_0x21886d)[_0x44fb('0x1e')](_0x147fe0);}return null;};}function patchUpdates(_0xca80c){return function(_0x2dd412){try{jsonpatch['apply'](_0x2dd412,_0xca80c,!![]);}catch(_0x52507a){return BPromise[_0x44fb('0x23')](_0x52507a);}return _0x2dd412[_0x44fb('0x24')]();};}function saveUpdates(_0x5adc98,_0x558283){return function(_0x38e834){if(_0x38e834){return _0x38e834[_0x44fb('0x25')](_0x5adc98)[_0x44fb('0x26')](function(_0x4fc66d){return _0x4fc66d;});}return null;};}function removeEntity(_0x954b1d,_0x3563a6){return function(_0x1f3d5c){if(_0x1f3d5c){return _0x1f3d5c['destroy']()['then'](function(){var _0x105b88=_0x1f3d5c[_0x44fb('0x27')]({'plain':!![]});var _0x1c831e=_0x44fb('0x28');return db['UserProfileResource'][_0x44fb('0x29')]({'where':{'type':_0x1c831e,'resourceId':_0x105b88['id']}})[_0x44fb('0x26')](function(){return _0x1f3d5c;});})['then'](function(){_0x954b1d['status'](0xcc)[_0x44fb('0x1d')]();});}};}function handleEntityNotFound(_0x2611d6,_0x1560eb){return function(_0x1f5d4c){if(!_0x1f5d4c){_0x2611d6[_0x44fb('0x2a')](0x194);}return _0x1f5d4c;};}function handleError(_0x15e748,_0x2ce72d){_0x2ce72d=_0x2ce72d||0x1f4;return function(_0x35652e){logger[_0x44fb('0x2b')](_0x35652e['stack']);if(_0x35652e['name']){delete _0x35652e['name'];}_0x15e748[_0x44fb('0x1c')](_0x2ce72d)['send'](_0x35652e);};}function getMustacheRender(_0x14099b,_0x253e16){return Mustache['render'](_0x14099b,_[_0x44fb('0x2c')](_0x253e16[_0x44fb('0x2d')],{'contact':_0x253e16[_0x44fb('0x2e')],'message':_0x253e16[_0x44fb('0x2f')],'agent':_0x253e16[_0x44fb('0x30')],'interaction':_0x253e16['interaction'],'account':_0x253e16['account']}))||'';}exports[_0x44fb('0x31')]=function(_0x5bf5dc,_0x14fb90){var _0x8afe2={},_0x15aa21={},_0x3ef07c={'count':0x0,'rows':[]};var _0x288490=_[_0x44fb('0x32')](db[_0x44fb('0x33')][_0x44fb('0x34')],function(_0x3a7c7b){return{'name':_0x3a7c7b[_0x44fb('0x35')],'type':_0x3a7c7b[_0x44fb('0x36')][_0x44fb('0x37')]};});_0x15aa21[_0x44fb('0x38')]=_[_0x44fb('0x32')](_0x288490,_0x44fb('0x39'));_0x15aa21['query']=_['keys'](_0x5bf5dc['query']);_0x15aa21[_0x44fb('0x3a')]=_[_0x44fb('0x3b')](_0x15aa21[_0x44fb('0x38')],_0x15aa21[_0x44fb('0x3c')]);_0x8afe2['attributes']=_[_0x44fb('0x3b')](_0x15aa21[_0x44fb('0x38')],qs['fields'](_0x5bf5dc[_0x44fb('0x3c')]['fields']));_0x8afe2[_0x44fb('0x3d')]=_0x8afe2['attributes'][_0x44fb('0x3e')]?_0x8afe2['attributes']:_0x15aa21[_0x44fb('0x38')];if(!_0x5bf5dc['query']['hasOwnProperty'](_0x44fb('0x3f'))){_0x8afe2[_0x44fb('0x22')]=qs[_0x44fb('0x22')](_0x5bf5dc[_0x44fb('0x3c')][_0x44fb('0x22')]);_0x8afe2[_0x44fb('0x1f')]=qs[_0x44fb('0x1f')](_0x5bf5dc[_0x44fb('0x3c')][_0x44fb('0x1f')]);}_0x8afe2[_0x44fb('0x40')]=qs['sort'](_0x5bf5dc[_0x44fb('0x3c')][_0x44fb('0x41')]);_0x8afe2[_0x44fb('0x42')]=qs[_0x44fb('0x3a')](_[_0x44fb('0x43')](_0x5bf5dc['query'],_0x15aa21[_0x44fb('0x3a')]),_0x288490);if(_0x5bf5dc[_0x44fb('0x3c')]['filter']){_0x8afe2['where']=_[_0x44fb('0x2c')](_0x8afe2[_0x44fb('0x42')],{'$or':_[_0x44fb('0x32')](_0x288490,function(_0x5dbf27){if(_0x5dbf27[_0x44fb('0x36')]!==_0x44fb('0x44')){var _0x3fdd9d={};_0x3fdd9d[_0x5dbf27[_0x44fb('0x39')]]={'$like':'%'+_0x5bf5dc[_0x44fb('0x3c')][_0x44fb('0x45')]+'%'};return _0x3fdd9d;}})});}_0x8afe2=_['merge']({},_0x8afe2,_0x5bf5dc[_0x44fb('0x46')]);var _0x537535={'where':_0x8afe2[_0x44fb('0x42')]};return db[_0x44fb('0x33')][_0x44fb('0x21')](_0x537535)[_0x44fb('0x26')](function(_0x51b0d8){_0x3ef07c[_0x44fb('0x21')]=_0x51b0d8;if(_0x5bf5dc[_0x44fb('0x3c')][_0x44fb('0x47')]){_0x8afe2[_0x44fb('0x48')]=[{'all':!![]}];}return db[_0x44fb('0x33')]['findAll'](_0x8afe2);})[_0x44fb('0x26')](function(_0x1df108){_0x3ef07c[_0x44fb('0x49')]=_0x1df108;return _0x3ef07c;})[_0x44fb('0x26')](respondWithFilteredResult(_0x14fb90,_0x8afe2))['catch'](handleError(_0x14fb90,null));};exports['show']=function(_0x332fbf,_0x439725){var _0x4a0b9e={'raw':!![],'where':{'id':_0x332fbf['params']['id']}},_0x1a3136={};_0x1a3136['model']=_['keys'](db['SquareOdbc'][_0x44fb('0x34')]);_0x1a3136[_0x44fb('0x3c')]=_[_0x44fb('0x4a')](_0x332fbf[_0x44fb('0x3c')]);_0x1a3136['filters']=_[_0x44fb('0x3b')](_0x1a3136[_0x44fb('0x38')],_0x1a3136[_0x44fb('0x3c')]);_0x4a0b9e[_0x44fb('0x3d')]=_[_0x44fb('0x3b')](_0x1a3136[_0x44fb('0x38')],qs[_0x44fb('0x4b')](_0x332fbf[_0x44fb('0x3c')]['fields']));_0x4a0b9e[_0x44fb('0x3d')]=_0x4a0b9e['attributes']['length']?_0x4a0b9e[_0x44fb('0x3d')]:_0x1a3136[_0x44fb('0x38')];if(_0x332fbf[_0x44fb('0x3c')]['includeAll']){_0x4a0b9e[_0x44fb('0x48')]=[{'all':!![]}];}_0x4a0b9e=_[_0x44fb('0x2c')]({},_0x4a0b9e,_0x332fbf[_0x44fb('0x46')]);return db[_0x44fb('0x33')][_0x44fb('0x4c')](_0x4a0b9e)[_0x44fb('0x26')](handleEntityNotFound(_0x439725,null))[_0x44fb('0x26')](respondWithResult(_0x439725,null))['catch'](handleError(_0x439725,null));};exports[_0x44fb('0x4d')]=function(_0x51454e,_0x13e77b){return db['SquareOdbc'][_0x44fb('0x4d')](_0x51454e[_0x44fb('0x2d')],{})[_0x44fb('0x26')](function(_0x82975){var _0x5847e8=_0x51454e[_0x44fb('0x4e')][_0x44fb('0x27')]({'plain':!![]});if(!_0x5847e8)throw new Error(_0x44fb('0x4f'));if(_0x5847e8[_0x44fb('0x50')]===_0x44fb('0x4e')){var _0x32b166=_0x82975[_0x44fb('0x27')]({'plain':!![]});var _0x145c03=_0x44fb('0x28');return db[_0x44fb('0x51')][_0x44fb('0x4c')]({'where':{'name':_0x145c03,'userProfileId':_0x5847e8[_0x44fb('0x52')]},'raw':!![]})['then'](function(_0x2dcdf6){if(_0x2dcdf6&&_0x2dcdf6['autoAssociation']===0x0){return db[_0x44fb('0x53')][_0x44fb('0x4d')]({'name':_0x32b166['name'],'resourceId':_0x32b166['id'],'type':_0x2dcdf6['name'],'sectionId':_0x2dcdf6['id']},{})['then'](function(){return _0x82975;});}else{return _0x82975;}})[_0x44fb('0x54')](function(_0x43aa27){logger[_0x44fb('0x2b')](_0x44fb('0x55'),_0x43aa27);throw _0x43aa27;});}return _0x82975;})[_0x44fb('0x26')](respondWithResult(_0x13e77b,0xc9))[_0x44fb('0x54')](handleError(_0x13e77b,null));};exports[_0x44fb('0x25')]=function(_0x3c0c8c,_0x37cf0b){if(_0x3c0c8c[_0x44fb('0x2d')]['id']){delete _0x3c0c8c[_0x44fb('0x2d')]['id'];}return db[_0x44fb('0x33')][_0x44fb('0x4c')]({'where':{'id':_0x3c0c8c[_0x44fb('0x56')]['id']}})[_0x44fb('0x26')](handleEntityNotFound(_0x37cf0b,null))[_0x44fb('0x26')](saveUpdates(_0x3c0c8c[_0x44fb('0x2d')],null))[_0x44fb('0x26')](respondWithResult(_0x37cf0b,null))[_0x44fb('0x54')](handleError(_0x37cf0b,null));};exports['destroy']=function(_0x493f2a,_0x16ed5e){return db['SquareOdbc']['find']({'where':{'id':_0x493f2a['params']['id']}})[_0x44fb('0x26')](handleEntityNotFound(_0x16ed5e,null))[_0x44fb('0x26')](removeEntity(_0x16ed5e,null))[_0x44fb('0x54')](handleError(_0x16ed5e,null));};exports['test']=function(_0x986ca,_0x5ad3af,_0x215837){var _0x59d1a8;return db[_0x44fb('0x33')][_0x44fb('0x4c')]({'where':{'id':_0x986ca[_0x44fb('0x56')]['id']},'attributes':['id','dsn']})[_0x44fb('0x26')](handleEntityNotFound(_0x5ad3af,null))[_0x44fb('0x26')](function(_0x9a88fe){if(_0x9a88fe){var _0x5844d1=require(_0x44fb('0x57'))();_0x5844d1[_0x44fb('0x58')](_0x9a88fe[_0x44fb('0x59')]);_0x5844d1['closeSync']();return _0x9a88fe;}})['then'](respondWithResult(_0x5ad3af,null))[_0x44fb('0x54')](handleError(_0x5ad3af,null));};