0b1b03318292bf9db108a83071ff19f54ed24205
[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 _0xc940=['lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','json','limit','count','offset','status','set','Content-Range','apply','reject','save','update','destroy','then','get','ODBC','UserProfileResource','end','stack','name','send','SquareOdbc','rawAttributes','type','model','map','query','attributes','fields','hasOwnProperty','nolimit','order','sort','where','filters','merge','VIRTUAL','filter','options','includeAll','include','findAll','show','params','keys','intersection','length','find','catch','create','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','userProfileId','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','test','dsn','odbc','openSync','closeSync','rimraf','fast-json-patch','request-promise','moment','bluebird','path','to-csv','ejs'];(function(_0x2c91e9,_0x2fb965){var _0x13f0ff=function(_0xb39edf){while(--_0xb39edf){_0x2c91e9['push'](_0x2c91e9['shift']());}};_0x13f0ff(++_0x2fb965);}(_0xc940,0x1ab));var _0x0c94=function(_0x25e94c,_0x5390be){_0x25e94c=_0x25e94c-0x0;var _0xccb68=_0xc940[_0x25e94c];return _0xccb68;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x0c94('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x0c94('0x1'));var rp=require(_0x0c94('0x2'));var moment=require(_0x0c94('0x3'));var BPromise=require(_0x0c94('0x4'));var Mustache=require('mustache');var util=require('util');var path=require(_0x0c94('0x5'));var sox=require('sox');var csv=require(_0x0c94('0x6'));var ejs=require(_0x0c94('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x0c94('0x8'));var squel=require(_0x0c94('0x9'));var crypto=require(_0x0c94('0xa'));var jsforce=require(_0x0c94('0xb'));var deskjs=require(_0x0c94('0xc'));var toCsv=require(_0x0c94('0x6'));var querystring=require(_0x0c94('0xd'));var Papa=require(_0x0c94('0xe'));var Redis=require(_0x0c94('0xf'));var authService=require(_0x0c94('0x10'));var qs=require(_0x0c94('0x11'));var as=require(_0x0c94('0x12'));var hardwareService=require(_0x0c94('0x13'));var logger=require(_0x0c94('0x14'))(_0x0c94('0x15'));var utils=require(_0x0c94('0x16'));var config=require(_0x0c94('0x17'));var licenseUtil=require(_0x0c94('0x18'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x4eda8f,_0x125bac){_0x125bac=_0x125bac||0xcc;return function(_0xa5291){if(_0xa5291){return _0x4eda8f[_0x0c94('0x19')](_0x125bac);}return _0x4eda8f['status'](_0x125bac)['end']();};}function respondWithResult(_0x76754,_0x39dbc2){_0x39dbc2=_0x39dbc2||0xc8;return function(_0x14d754){if(_0x14d754){return _0x76754['status'](_0x39dbc2)[_0x0c94('0x1a')](_0x14d754);}};}function respondWithFilteredResult(_0x3da91d,_0x3ae8c8){return function(_0x18ee1a){if(_0x18ee1a){var _0x177b53=typeof _0x3ae8c8['offset']==='undefined'&&typeof _0x3ae8c8[_0x0c94('0x1b')]==='undefined';var _0x1c34b6=_0x18ee1a[_0x0c94('0x1c')];var _0x3a236f=_0x177b53?0x0:_0x3ae8c8[_0x0c94('0x1d')];var _0x380f08=_0x177b53?_0x18ee1a['count']:_0x3ae8c8[_0x0c94('0x1d')]+_0x3ae8c8[_0x0c94('0x1b')];var _0x572af8;if(_0x380f08>=_0x1c34b6){_0x380f08=_0x1c34b6;_0x572af8=0xc8;}else{_0x572af8=0xce;}_0x3da91d[_0x0c94('0x1e')](_0x572af8);return _0x3da91d[_0x0c94('0x1f')](_0x0c94('0x20'),_0x3a236f+'-'+_0x380f08+'/'+_0x1c34b6)[_0x0c94('0x1a')](_0x18ee1a);}return null;};}function patchUpdates(_0x1e9360){return function(_0x48c3e6){try{jsonpatch[_0x0c94('0x21')](_0x48c3e6,_0x1e9360,!![]);}catch(_0x6a5b73){return BPromise[_0x0c94('0x22')](_0x6a5b73);}return _0x48c3e6[_0x0c94('0x23')]();};}function saveUpdates(_0x40921d,_0x592e9b){return function(_0x2a022c){if(_0x2a022c){return _0x2a022c[_0x0c94('0x24')](_0x40921d)['then'](function(_0x57242c){return _0x57242c;});}return null;};}function removeEntity(_0x4fcfc7,_0x364b63){return function(_0x103f5c){if(_0x103f5c){return _0x103f5c[_0x0c94('0x25')]()[_0x0c94('0x26')](function(){var _0x379101=_0x103f5c[_0x0c94('0x27')]({'plain':!![]});var _0x20c5e3=_0x0c94('0x28');return db[_0x0c94('0x29')][_0x0c94('0x25')]({'where':{'type':_0x20c5e3,'resourceId':_0x379101['id']}})[_0x0c94('0x26')](function(){return _0x103f5c;});})[_0x0c94('0x26')](function(){_0x4fcfc7[_0x0c94('0x1e')](0xcc)[_0x0c94('0x2a')]();});}};}function handleEntityNotFound(_0x5e0d63,_0x3c004c){return function(_0x1a2478){if(!_0x1a2478){_0x5e0d63['sendStatus'](0x194);}return _0x1a2478;};}function handleError(_0x200c9c,_0x1e58df){_0x1e58df=_0x1e58df||0x1f4;return function(_0x339c5a){logger['error'](_0x339c5a[_0x0c94('0x2b')]);if(_0x339c5a['name']){delete _0x339c5a[_0x0c94('0x2c')];}_0x200c9c[_0x0c94('0x1e')](_0x1e58df)[_0x0c94('0x2d')](_0x339c5a);};}exports['index']=function(_0x24531e,_0x2b7bd1){var _0x4cdcd1={},_0x2fcf3b={},_0x20ffec={'count':0x0,'rows':[]};var _0x37abd1=_['map'](db[_0x0c94('0x2e')][_0x0c94('0x2f')],function(_0x15a798){return{'name':_0x15a798['fieldName'],'type':_0x15a798[_0x0c94('0x30')]['key']};});_0x2fcf3b[_0x0c94('0x31')]=_[_0x0c94('0x32')](_0x37abd1,'name');_0x2fcf3b['query']=_['keys'](_0x24531e[_0x0c94('0x33')]);_0x2fcf3b['filters']=_['intersection'](_0x2fcf3b['model'],_0x2fcf3b[_0x0c94('0x33')]);_0x4cdcd1[_0x0c94('0x34')]=_['intersection'](_0x2fcf3b[_0x0c94('0x31')],qs['fields'](_0x24531e[_0x0c94('0x33')][_0x0c94('0x35')]));_0x4cdcd1['attributes']=_0x4cdcd1[_0x0c94('0x34')]['length']?_0x4cdcd1['attributes']:_0x2fcf3b[_0x0c94('0x31')];if(!_0x24531e[_0x0c94('0x33')][_0x0c94('0x36')](_0x0c94('0x37'))){_0x4cdcd1[_0x0c94('0x1b')]=qs[_0x0c94('0x1b')](_0x24531e[_0x0c94('0x33')][_0x0c94('0x1b')]);_0x4cdcd1['offset']=qs['offset'](_0x24531e['query'][_0x0c94('0x1d')]);}_0x4cdcd1[_0x0c94('0x38')]=qs[_0x0c94('0x39')](_0x24531e['query'][_0x0c94('0x39')]);_0x4cdcd1[_0x0c94('0x3a')]=qs[_0x0c94('0x3b')](_['pick'](_0x24531e[_0x0c94('0x33')],_0x2fcf3b['filters']),_0x37abd1);if(_0x24531e[_0x0c94('0x33')]['filter']){_0x4cdcd1['where']=_[_0x0c94('0x3c')](_0x4cdcd1[_0x0c94('0x3a')],{'$or':_[_0x0c94('0x32')](_0x37abd1,function(_0x18ec8c){if(_0x18ec8c[_0x0c94('0x30')]!==_0x0c94('0x3d')){var _0x3ad44={};_0x3ad44[_0x18ec8c['name']]={'$like':'%'+_0x24531e[_0x0c94('0x33')][_0x0c94('0x3e')]+'%'};return _0x3ad44;}})});}_0x4cdcd1=_[_0x0c94('0x3c')]({},_0x4cdcd1,_0x24531e[_0x0c94('0x3f')]);var _0x258b03={'where':_0x4cdcd1[_0x0c94('0x3a')]};return db[_0x0c94('0x2e')][_0x0c94('0x1c')](_0x258b03)['then'](function(_0x55e2b8){_0x20ffec[_0x0c94('0x1c')]=_0x55e2b8;if(_0x24531e['query'][_0x0c94('0x40')]){_0x4cdcd1[_0x0c94('0x41')]=[{'all':!![]}];}return db['SquareOdbc'][_0x0c94('0x42')](_0x4cdcd1);})['then'](function(_0x1b558b){_0x20ffec['rows']=_0x1b558b;return _0x20ffec;})[_0x0c94('0x26')](respondWithFilteredResult(_0x2b7bd1,_0x4cdcd1))['catch'](handleError(_0x2b7bd1,null));};exports[_0x0c94('0x43')]=function(_0x59e512,_0x638c7c){var _0x26cdf3={'raw':!![],'where':{'id':_0x59e512[_0x0c94('0x44')]['id']}},_0x445f97={};_0x445f97[_0x0c94('0x31')]=_['keys'](db[_0x0c94('0x2e')][_0x0c94('0x2f')]);_0x445f97[_0x0c94('0x33')]=_[_0x0c94('0x45')](_0x59e512[_0x0c94('0x33')]);_0x445f97['filters']=_[_0x0c94('0x46')](_0x445f97[_0x0c94('0x31')],_0x445f97['query']);_0x26cdf3[_0x0c94('0x34')]=_[_0x0c94('0x46')](_0x445f97[_0x0c94('0x31')],qs[_0x0c94('0x35')](_0x59e512['query'][_0x0c94('0x35')]));_0x26cdf3[_0x0c94('0x34')]=_0x26cdf3[_0x0c94('0x34')][_0x0c94('0x47')]?_0x26cdf3['attributes']:_0x445f97[_0x0c94('0x31')];if(_0x59e512[_0x0c94('0x33')][_0x0c94('0x40')]){_0x26cdf3[_0x0c94('0x41')]=[{'all':!![]}];}_0x26cdf3=_[_0x0c94('0x3c')]({},_0x26cdf3,_0x59e512[_0x0c94('0x3f')]);return db['SquareOdbc'][_0x0c94('0x48')](_0x26cdf3)['then'](handleEntityNotFound(_0x638c7c,null))['then'](respondWithResult(_0x638c7c,null))[_0x0c94('0x49')](handleError(_0x638c7c,null));};exports[_0x0c94('0x4a')]=function(_0x746ef8,_0x221c03){return db[_0x0c94('0x2e')][_0x0c94('0x4a')](_0x746ef8['body'],{})[_0x0c94('0x26')](function(_0x2c4243){var _0x114187=_0x746ef8['user'][_0x0c94('0x27')]({'plain':!![]});if(!_0x114187)throw new Error(_0x0c94('0x4b'));if(_0x114187['role']===_0x0c94('0x4c')){var _0x1e183e=_0x2c4243['get']({'plain':!![]});var _0xec078d=_0x0c94('0x28');return db[_0x0c94('0x4d')]['find']({'where':{'name':_0xec078d,'userProfileId':_0x114187[_0x0c94('0x4e')]},'raw':!![]})['then'](function(_0x2cf264){if(_0x2cf264&&_0x2cf264['autoAssociation']===0x0){return db['UserProfileResource']['create']({'name':_0x1e183e[_0x0c94('0x2c')],'resourceId':_0x1e183e['id'],'type':_0x2cf264[_0x0c94('0x2c')],'sectionId':_0x2cf264['id']},{})[_0x0c94('0x26')](function(){return _0x2c4243;});}else{return _0x2c4243;}})[_0x0c94('0x49')](function(_0x2e1249){logger[_0x0c94('0x4f')](_0x0c94('0x50'),_0x2e1249);throw _0x2e1249;});}return _0x2c4243;})[_0x0c94('0x26')](respondWithResult(_0x221c03,0xc9))[_0x0c94('0x49')](handleError(_0x221c03,null));};exports[_0x0c94('0x24')]=function(_0x214d05,_0x2d2595){if(_0x214d05[_0x0c94('0x51')]['id']){delete _0x214d05[_0x0c94('0x51')]['id'];}return db['SquareOdbc']['find']({'where':{'id':_0x214d05[_0x0c94('0x44')]['id']}})[_0x0c94('0x26')](handleEntityNotFound(_0x2d2595,null))['then'](saveUpdates(_0x214d05[_0x0c94('0x51')],null))[_0x0c94('0x26')](respondWithResult(_0x2d2595,null))[_0x0c94('0x49')](handleError(_0x2d2595,null));};exports[_0x0c94('0x25')]=function(_0x10b4df,_0x359f64){return db[_0x0c94('0x2e')][_0x0c94('0x48')]({'where':{'id':_0x10b4df[_0x0c94('0x44')]['id']}})[_0x0c94('0x26')](handleEntityNotFound(_0x359f64,null))[_0x0c94('0x26')](removeEntity(_0x359f64,null))[_0x0c94('0x49')](handleError(_0x359f64,null));};exports[_0x0c94('0x52')]=function(_0x26b16f,_0x3aceac,_0x2706e1){var _0x22e4e8;return db['SquareOdbc'][_0x0c94('0x48')]({'where':{'id':_0x26b16f[_0x0c94('0x44')]['id']},'attributes':['id',_0x0c94('0x53')]})[_0x0c94('0x26')](handleEntityNotFound(_0x3aceac,null))[_0x0c94('0x26')](function(_0x5d59eb){if(_0x5d59eb){var _0x22fbc8=require(_0x0c94('0x54'))();_0x22fbc8[_0x0c94('0x55')](_0x5d59eb[_0x0c94('0x53')]);_0x22fbc8[_0x0c94('0x56')]();return _0x5d59eb;}})[_0x0c94('0x26')](respondWithResult(_0x3aceac,null))[_0x0c94('0x49')](handleError(_0x3aceac,null));};