bf443bc7008ad1b0dfabe8d8ef00186245afa138
[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 _0xfbfd=['params','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','ODBC','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','test','dsn','odbc','openSync','closeSync','eml-format','moment','bluebird','util','path','sox','fs-extra','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','status','end','offset','limit','count','set','Content-Range','json','apply','reject','save','update','then','get','destroy','sendStatus','error','stack','name','send','index','map','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','pick','filter','merge','where','VIRTUAL','options','SquareOdbc','includeAll','include','findAll','rows','catch'];(function(_0x37deac,_0xe425d0){var _0x5d944c=function(_0x278e8c){while(--_0x278e8c){_0x37deac['push'](_0x37deac['shift']());}};_0x5d944c(++_0xe425d0);}(_0xfbfd,0xc4));var _0xdfbf=function(_0x50c3ff,_0x5eca99){_0x50c3ff=_0x50c3ff-0x0;var _0x18a9b3=_0xfbfd[_0x50c3ff];return _0x18a9b3;};'use strict';var emlformat=require(_0xdfbf('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xdfbf('0x1'));var BPromise=require(_0xdfbf('0x2'));var Mustache=require('mustache');var util=require(_0xdfbf('0x3'));var path=require(_0xdfbf('0x4'));var sox=require(_0xdfbf('0x5'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xdfbf('0x6'));var _=require('lodash');var squel=require(_0xdfbf('0x7'));var crypto=require(_0xdfbf('0x8'));var jsforce=require(_0xdfbf('0x9'));var deskjs=require(_0xdfbf('0xa'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xdfbf('0xb'));var Redis=require(_0xdfbf('0xc'));var authService=require(_0xdfbf('0xd'));var qs=require(_0xdfbf('0xe'));var as=require(_0xdfbf('0xf'));var hardwareService=require(_0xdfbf('0x10'));var logger=require(_0xdfbf('0x11'))(_0xdfbf('0x12'));var utils=require('../../config/utils');var config=require(_0xdfbf('0x13'));var licenseUtil=require(_0xdfbf('0x14'));var db=require(_0xdfbf('0x15'))['db'];function respondWithStatusCode(_0x4d87ba,_0x20f9ab){_0x20f9ab=_0x20f9ab||0xcc;return function(_0x3b6601){if(_0x3b6601){return _0x4d87ba['sendStatus'](_0x20f9ab);}return _0x4d87ba[_0xdfbf('0x16')](_0x20f9ab)[_0xdfbf('0x17')]();};}function respondWithResult(_0x1d2f1c,_0x4e109b){_0x4e109b=_0x4e109b||0xc8;return function(_0x7caf4b){if(_0x7caf4b){return _0x1d2f1c[_0xdfbf('0x16')](_0x4e109b)['json'](_0x7caf4b);}};}function respondWithFilteredResult(_0x37eccb,_0x476b75){return function(_0x4e6cc0){if(_0x4e6cc0){var _0x36bcce=typeof _0x476b75[_0xdfbf('0x18')]==='undefined'&&typeof _0x476b75[_0xdfbf('0x19')]==='undefined';var _0x34cd7e=_0x4e6cc0[_0xdfbf('0x1a')];var _0x4648f5=_0x36bcce?0x0:_0x476b75[_0xdfbf('0x18')];var _0x1799d5=_0x36bcce?_0x4e6cc0[_0xdfbf('0x1a')]:_0x476b75['offset']+_0x476b75[_0xdfbf('0x19')];var _0x237883;if(_0x1799d5>=_0x34cd7e){_0x1799d5=_0x34cd7e;_0x237883=0xc8;}else{_0x237883=0xce;}_0x37eccb[_0xdfbf('0x16')](_0x237883);return _0x37eccb[_0xdfbf('0x1b')](_0xdfbf('0x1c'),_0x4648f5+'-'+_0x1799d5+'/'+_0x34cd7e)[_0xdfbf('0x1d')](_0x4e6cc0);}return null;};}function patchUpdates(_0x4c9a95){return function(_0x5a02f5){try{jsonpatch[_0xdfbf('0x1e')](_0x5a02f5,_0x4c9a95,!![]);}catch(_0x223fc1){return BPromise[_0xdfbf('0x1f')](_0x223fc1);}return _0x5a02f5[_0xdfbf('0x20')]();};}function saveUpdates(_0x129e2b,_0x4c4c17){return function(_0x4dbfc7){if(_0x4dbfc7){return _0x4dbfc7[_0xdfbf('0x21')](_0x129e2b)['then'](function(_0x16895a){return _0x16895a;});}return null;};}function removeEntity(_0x119128,_0x14db8b){return function(_0x3bf9c9){if(_0x3bf9c9){return _0x3bf9c9['destroy']()[_0xdfbf('0x22')](function(){var _0x58ae19=_0x3bf9c9[_0xdfbf('0x23')]({'plain':!![]});var _0x7a9376='ODBC';return db['UserProfileResource'][_0xdfbf('0x24')]({'where':{'type':_0x7a9376,'resourceId':_0x58ae19['id']}})[_0xdfbf('0x22')](function(){return _0x3bf9c9;});})[_0xdfbf('0x22')](function(){_0x119128[_0xdfbf('0x16')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1e91f5,_0x194055){return function(_0xda8557){if(!_0xda8557){_0x1e91f5[_0xdfbf('0x25')](0x194);}return _0xda8557;};}function handleError(_0x3512b5,_0x4b0ad4){_0x4b0ad4=_0x4b0ad4||0x1f4;return function(_0x3eccec){logger[_0xdfbf('0x26')](_0x3eccec[_0xdfbf('0x27')]);if(_0x3eccec[_0xdfbf('0x28')]){delete _0x3eccec[_0xdfbf('0x28')];}_0x3512b5['status'](_0x4b0ad4)[_0xdfbf('0x29')](_0x3eccec);};}exports[_0xdfbf('0x2a')]=function(_0x2ff042,_0x4d07aa){var _0x1779e4={},_0xe5da75={},_0x2400b0={'count':0x0,'rows':[]};var _0x4173be=_[_0xdfbf('0x2b')](db['SquareOdbc'][_0xdfbf('0x2c')],function(_0x1070f6){return{'name':_0x1070f6[_0xdfbf('0x2d')],'type':_0x1070f6[_0xdfbf('0x2e')][_0xdfbf('0x2f')]};});_0xe5da75[_0xdfbf('0x30')]=_[_0xdfbf('0x2b')](_0x4173be,_0xdfbf('0x28'));_0xe5da75[_0xdfbf('0x31')]=_[_0xdfbf('0x32')](_0x2ff042['query']);_0xe5da75[_0xdfbf('0x33')]=_[_0xdfbf('0x34')](_0xe5da75[_0xdfbf('0x30')],_0xe5da75['query']);_0x1779e4[_0xdfbf('0x35')]=_['intersection'](_0xe5da75['model'],qs[_0xdfbf('0x36')](_0x2ff042[_0xdfbf('0x31')][_0xdfbf('0x36')]));_0x1779e4[_0xdfbf('0x35')]=_0x1779e4[_0xdfbf('0x35')][_0xdfbf('0x37')]?_0x1779e4[_0xdfbf('0x35')]:_0xe5da75[_0xdfbf('0x30')];if(!_0x2ff042[_0xdfbf('0x31')][_0xdfbf('0x38')](_0xdfbf('0x39'))){_0x1779e4[_0xdfbf('0x19')]=qs[_0xdfbf('0x19')](_0x2ff042[_0xdfbf('0x31')][_0xdfbf('0x19')]);_0x1779e4[_0xdfbf('0x18')]=qs[_0xdfbf('0x18')](_0x2ff042[_0xdfbf('0x31')][_0xdfbf('0x18')]);}_0x1779e4['order']=qs['sort'](_0x2ff042[_0xdfbf('0x31')][_0xdfbf('0x3a')]);_0x1779e4['where']=qs[_0xdfbf('0x33')](_[_0xdfbf('0x3b')](_0x2ff042[_0xdfbf('0x31')],_0xe5da75[_0xdfbf('0x33')]),_0x4173be);if(_0x2ff042[_0xdfbf('0x31')][_0xdfbf('0x3c')]){_0x1779e4['where']=_[_0xdfbf('0x3d')](_0x1779e4[_0xdfbf('0x3e')],{'$or':_[_0xdfbf('0x2b')](_0x4173be,function(_0x4e83a2){if(_0x4e83a2[_0xdfbf('0x2e')]!==_0xdfbf('0x3f')){var _0x134cf0={};_0x134cf0[_0x4e83a2[_0xdfbf('0x28')]]={'$like':'%'+_0x2ff042[_0xdfbf('0x31')][_0xdfbf('0x3c')]+'%'};return _0x134cf0;}})});}_0x1779e4=_[_0xdfbf('0x3d')]({},_0x1779e4,_0x2ff042[_0xdfbf('0x40')]);var _0x4ecb40={'where':_0x1779e4[_0xdfbf('0x3e')]};return db[_0xdfbf('0x41')][_0xdfbf('0x1a')](_0x4ecb40)['then'](function(_0x1b61c3){_0x2400b0[_0xdfbf('0x1a')]=_0x1b61c3;if(_0x2ff042[_0xdfbf('0x31')][_0xdfbf('0x42')]){_0x1779e4[_0xdfbf('0x43')]=[{'all':!![]}];}return db[_0xdfbf('0x41')][_0xdfbf('0x44')](_0x1779e4);})[_0xdfbf('0x22')](function(_0x45c88f){_0x2400b0[_0xdfbf('0x45')]=_0x45c88f;return _0x2400b0;})['then'](respondWithFilteredResult(_0x4d07aa,_0x1779e4))[_0xdfbf('0x46')](handleError(_0x4d07aa,null));};exports['show']=function(_0x5e642f,_0xa20d5a){var _0x3bbfd9={'raw':!![],'where':{'id':_0x5e642f[_0xdfbf('0x47')]['id']}},_0x352562={};_0x352562[_0xdfbf('0x30')]=_['keys'](db['SquareOdbc']['rawAttributes']);_0x352562['query']=_['keys'](_0x5e642f[_0xdfbf('0x31')]);_0x352562[_0xdfbf('0x33')]=_[_0xdfbf('0x34')](_0x352562[_0xdfbf('0x30')],_0x352562['query']);_0x3bbfd9['attributes']=_[_0xdfbf('0x34')](_0x352562[_0xdfbf('0x30')],qs['fields'](_0x5e642f[_0xdfbf('0x31')][_0xdfbf('0x36')]));_0x3bbfd9[_0xdfbf('0x35')]=_0x3bbfd9[_0xdfbf('0x35')][_0xdfbf('0x37')]?_0x3bbfd9[_0xdfbf('0x35')]:_0x352562['model'];if(_0x5e642f[_0xdfbf('0x31')][_0xdfbf('0x42')]){_0x3bbfd9[_0xdfbf('0x43')]=[{'all':!![]}];}_0x3bbfd9=_[_0xdfbf('0x3d')]({},_0x3bbfd9,_0x5e642f[_0xdfbf('0x40')]);return db[_0xdfbf('0x41')][_0xdfbf('0x48')](_0x3bbfd9)['then'](handleEntityNotFound(_0xa20d5a,null))[_0xdfbf('0x22')](respondWithResult(_0xa20d5a,null))['catch'](handleError(_0xa20d5a,null));};exports[_0xdfbf('0x49')]=function(_0x28d4bf,_0x1682b1){return db[_0xdfbf('0x41')]['create'](_0x28d4bf['body'],{})['then'](function(_0x5542bd){var _0x5140fa=_0x28d4bf[_0xdfbf('0x4a')][_0xdfbf('0x23')]({'plain':!![]});if(!_0x5140fa)throw new Error(_0xdfbf('0x4b'));if(_0x5140fa[_0xdfbf('0x4c')]===_0xdfbf('0x4a')){var _0x1a8c27=_0x5542bd[_0xdfbf('0x23')]({'plain':!![]});var _0x47defc=_0xdfbf('0x4d');return db[_0xdfbf('0x4e')][_0xdfbf('0x48')]({'where':{'name':_0x47defc,'userProfileId':_0x5140fa[_0xdfbf('0x4f')]},'raw':!![]})[_0xdfbf('0x22')](function(_0x437d21){if(_0x437d21&&_0x437d21[_0xdfbf('0x50')]===0x0){return db[_0xdfbf('0x51')]['create']({'name':_0x1a8c27['name'],'resourceId':_0x1a8c27['id'],'type':_0x437d21[_0xdfbf('0x28')],'sectionId':_0x437d21['id']},{})[_0xdfbf('0x22')](function(){return _0x5542bd;});}else{return _0x5542bd;}})[_0xdfbf('0x46')](function(_0x211b6c){logger[_0xdfbf('0x26')](_0xdfbf('0x52'),_0x211b6c);throw _0x211b6c;});}return _0x5542bd;})[_0xdfbf('0x22')](respondWithResult(_0x1682b1,0xc9))[_0xdfbf('0x46')](handleError(_0x1682b1,null));};exports[_0xdfbf('0x21')]=function(_0x435f0d,_0x19ea6c){if(_0x435f0d[_0xdfbf('0x53')]['id']){delete _0x435f0d[_0xdfbf('0x53')]['id'];}return db['SquareOdbc'][_0xdfbf('0x48')]({'where':{'id':_0x435f0d[_0xdfbf('0x47')]['id']}})[_0xdfbf('0x22')](handleEntityNotFound(_0x19ea6c,null))['then'](saveUpdates(_0x435f0d[_0xdfbf('0x53')],null))['then'](respondWithResult(_0x19ea6c,null))['catch'](handleError(_0x19ea6c,null));};exports['destroy']=function(_0x1c748d,_0x5382a0){return db[_0xdfbf('0x41')][_0xdfbf('0x48')]({'where':{'id':_0x1c748d[_0xdfbf('0x47')]['id']}})['then'](handleEntityNotFound(_0x5382a0,null))[_0xdfbf('0x22')](removeEntity(_0x5382a0,null))[_0xdfbf('0x46')](handleError(_0x5382a0,null));};exports[_0xdfbf('0x54')]=function(_0x3f3865,_0x1bf881,_0x2bde2d){var _0x54d72b;return db[_0xdfbf('0x41')][_0xdfbf('0x48')]({'where':{'id':_0x3f3865[_0xdfbf('0x47')]['id']},'attributes':['id',_0xdfbf('0x55')]})[_0xdfbf('0x22')](handleEntityNotFound(_0x1bf881,null))[_0xdfbf('0x22')](function(_0x2f36a5){if(_0x2f36a5){var _0x52877b=require(_0xdfbf('0x56'))();_0x52877b[_0xdfbf('0x57')](_0x2f36a5[_0xdfbf('0x55')]);_0x52877b[_0xdfbf('0x58')]();return _0x2f36a5;}})['then'](respondWithResult(_0x1bf881,null))['catch'](handleError(_0x1bf881,null));};