435f3d563e811a652a6144ce6e5ae7eb35bef3d3
[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 _0x0887=['rows','catch','params','rawAttributes','fields','options','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','dsn','odbc','openSync','closeSync','html-pdf','zip-dir','fast-json-patch','moment','bluebird','util','path','ejs','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','json','count','offset','limit','status','Content-Range','apply','reject','update','then','get','ODBC','destroy','error','stack','name','send','index','map','SquareOdbc','fieldName','type','key','model','query','keys','filters','attributes','intersection','length','hasOwnProperty','sort','where','pick','filter','merge','VIRTUAL','include','findAll'];(function(_0x3b6b49,_0xdb8ca8){var _0x5d51ca=function(_0x259520){while(--_0x259520){_0x3b6b49['push'](_0x3b6b49['shift']());}};_0x5d51ca(++_0xdb8ca8);}(_0x0887,0x1bd));var _0x7088=function(_0x1559a0,_0x9b8fd7){_0x1559a0=_0x1559a0-0x0;var _0x37e36f=_0x0887[_0x1559a0];return _0x37e36f;};'use strict';var pdf=require(_0x7088('0x0'));var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x7088('0x1'));var jsonpatch=require(_0x7088('0x2'));var rp=require('request-promise');var moment=require(_0x7088('0x3'));var BPromise=require(_0x7088('0x4'));var Mustache=require('mustache');var util=require(_0x7088('0x5'));var path=require(_0x7088('0x6'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x7088('0x7'));var fs=require('fs');var _=require('lodash');var squel=require(_0x7088('0x8'));var crypto=require(_0x7088('0x9'));var jsforce=require(_0x7088('0xa'));var deskjs=require(_0x7088('0xb'));var toCsv=require(_0x7088('0xc'));var querystring=require(_0x7088('0xd'));var Papa=require(_0x7088('0xe'));var Redis=require(_0x7088('0xf'));var authService=require(_0x7088('0x10'));var qs=require(_0x7088('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x7088('0x12'));var logger=require(_0x7088('0x13'))('api');var utils=require(_0x7088('0x14'));var config=require(_0x7088('0x15'));var licenseUtil=require(_0x7088('0x16'));var db=require(_0x7088('0x17'))['db'];function respondWithStatusCode(_0x230262,_0x3f6d02){_0x3f6d02=_0x3f6d02||0xcc;return function(_0x39e34e){if(_0x39e34e){return _0x230262[_0x7088('0x18')](_0x3f6d02);}return _0x230262['status'](_0x3f6d02)[_0x7088('0x19')]();};}function respondWithResult(_0x1e1569,_0x247e8f){_0x247e8f=_0x247e8f||0xc8;return function(_0x220eef){if(_0x220eef){return _0x1e1569['status'](_0x247e8f)[_0x7088('0x1a')](_0x220eef);}};}function respondWithFilteredResult(_0x25f65e,_0x37dd0b){return function(_0x5ce274){if(_0x5ce274){var _0x48726=_0x5ce274[_0x7088('0x1b')],_0x325abe=_0x37dd0b[_0x7088('0x1c')],_0x4678ed=_0x37dd0b[_0x7088('0x1c')]+_0x37dd0b[_0x7088('0x1d')],_0x6c4a57;if(_0x4678ed>=_0x48726){_0x4678ed=_0x48726;_0x6c4a57=0xc8;}else{_0x6c4a57=0xce;}_0x25f65e[_0x7088('0x1e')](_0x6c4a57);return _0x25f65e['set'](_0x7088('0x1f'),_0x325abe+'-'+_0x4678ed+'/'+_0x48726)['json'](_0x5ce274);}return null;};}function patchUpdates(_0x3ae545){return function(_0x25aca3){try{jsonpatch[_0x7088('0x20')](_0x25aca3,_0x3ae545,!![]);}catch(_0x3b4985){return BPromise[_0x7088('0x21')](_0x3b4985);}return _0x25aca3['save']();};}function saveUpdates(_0x2876dc,_0x4ac432){return function(_0x25f3f6){if(_0x25f3f6){return _0x25f3f6[_0x7088('0x22')](_0x2876dc)[_0x7088('0x23')](function(_0x3bd73d){return _0x3bd73d;});}return null;};}function removeEntity(_0x3aa027,_0x2d3735){return function(_0x391a52){if(_0x391a52){return _0x391a52['destroy']()[_0x7088('0x23')](function(){var _0x3bc8c8=_0x391a52[_0x7088('0x24')]({'plain':!![]});var _0x46075e=_0x7088('0x25');return db['UserProfileResource'][_0x7088('0x26')]({'where':{'type':_0x46075e,'resourceId':_0x3bc8c8['id']}})[_0x7088('0x23')](function(){return _0x391a52;});})['then'](function(){_0x3aa027[_0x7088('0x1e')](0xcc)[_0x7088('0x19')]();});}};}function handleEntityNotFound(_0x4662e0,_0x5b0e28){return function(_0x164aab){if(!_0x164aab){_0x4662e0[_0x7088('0x18')](0x194);}return _0x164aab;};}function handleError(_0x3269cb,_0x47b9b4){_0x47b9b4=_0x47b9b4||0x1f4;return function(_0x48de5a){logger[_0x7088('0x27')](_0x48de5a[_0x7088('0x28')]);if(_0x48de5a[_0x7088('0x29')]){delete _0x48de5a[_0x7088('0x29')];}_0x3269cb[_0x7088('0x1e')](_0x47b9b4)[_0x7088('0x2a')](_0x48de5a);};}exports[_0x7088('0x2b')]=function(_0x36b4d5,_0x56493f){var _0x1ebd6c={},_0x360823={},_0x3a8cd5={'count':0x0,'rows':[]};var _0x33ba13=_[_0x7088('0x2c')](db[_0x7088('0x2d')]['rawAttributes'],function(_0x560f01){return{'name':_0x560f01[_0x7088('0x2e')],'type':_0x560f01[_0x7088('0x2f')][_0x7088('0x30')]};});_0x360823[_0x7088('0x31')]=_[_0x7088('0x2c')](_0x33ba13,_0x7088('0x29'));_0x360823[_0x7088('0x32')]=_[_0x7088('0x33')](_0x36b4d5['query']);_0x360823[_0x7088('0x34')]=_['intersection'](_0x360823['model'],_0x360823['query']);_0x1ebd6c[_0x7088('0x35')]=_[_0x7088('0x36')](_0x360823[_0x7088('0x31')],qs['fields'](_0x36b4d5[_0x7088('0x32')]['fields']));_0x1ebd6c['attributes']=_0x1ebd6c[_0x7088('0x35')][_0x7088('0x37')]?_0x1ebd6c[_0x7088('0x35')]:_0x360823['model'];if(!_0x36b4d5[_0x7088('0x32')][_0x7088('0x38')]('nolimit')){_0x1ebd6c['limit']=qs[_0x7088('0x1d')](_0x36b4d5[_0x7088('0x32')][_0x7088('0x1d')]);_0x1ebd6c[_0x7088('0x1c')]=qs[_0x7088('0x1c')](_0x36b4d5[_0x7088('0x32')]['offset']);}_0x1ebd6c['order']=qs[_0x7088('0x39')](_0x36b4d5[_0x7088('0x32')][_0x7088('0x39')]);_0x1ebd6c[_0x7088('0x3a')]=qs[_0x7088('0x34')](_[_0x7088('0x3b')](_0x36b4d5[_0x7088('0x32')],_0x360823[_0x7088('0x34')]),_0x33ba13);if(_0x36b4d5['query'][_0x7088('0x3c')]){_0x1ebd6c[_0x7088('0x3a')]=_[_0x7088('0x3d')](_0x1ebd6c[_0x7088('0x3a')],{'$or':_['map'](_0x33ba13,function(_0x5c6caa){if(_0x5c6caa['type']!==_0x7088('0x3e')){var _0x2a4f2d={};_0x2a4f2d[_0x5c6caa[_0x7088('0x29')]]={'$like':'%'+_0x36b4d5[_0x7088('0x32')][_0x7088('0x3c')]+'%'};return _0x2a4f2d;}})});}_0x1ebd6c=_[_0x7088('0x3d')]({},_0x1ebd6c,_0x36b4d5['options']);var _0x4993e7={'where':_0x1ebd6c[_0x7088('0x3a')]};return db[_0x7088('0x2d')][_0x7088('0x1b')](_0x4993e7)[_0x7088('0x23')](function(_0xcfdcf5){_0x3a8cd5[_0x7088('0x1b')]=_0xcfdcf5;if(_0x36b4d5['query']['includeAll']){_0x1ebd6c[_0x7088('0x3f')]=[{'all':!![]}];}return db[_0x7088('0x2d')][_0x7088('0x40')](_0x1ebd6c);})['then'](function(_0xa3792a){_0x3a8cd5[_0x7088('0x41')]=_0xa3792a;return _0x3a8cd5;})[_0x7088('0x23')](respondWithFilteredResult(_0x56493f,_0x1ebd6c))[_0x7088('0x42')](handleError(_0x56493f,null));};exports['show']=function(_0x76bdf9,_0x3fba6c){var _0x536ba9={'raw':!![],'where':{'id':_0x76bdf9[_0x7088('0x43')]['id']}},_0x35e804={};_0x35e804[_0x7088('0x31')]=_[_0x7088('0x33')](db['SquareOdbc'][_0x7088('0x44')]);_0x35e804[_0x7088('0x32')]=_[_0x7088('0x33')](_0x76bdf9[_0x7088('0x32')]);_0x35e804[_0x7088('0x34')]=_['intersection'](_0x35e804[_0x7088('0x31')],_0x35e804[_0x7088('0x32')]);_0x536ba9[_0x7088('0x35')]=_[_0x7088('0x36')](_0x35e804[_0x7088('0x31')],qs['fields'](_0x76bdf9[_0x7088('0x32')][_0x7088('0x45')]));_0x536ba9[_0x7088('0x35')]=_0x536ba9[_0x7088('0x35')][_0x7088('0x37')]?_0x536ba9['attributes']:_0x35e804[_0x7088('0x31')];if(_0x76bdf9[_0x7088('0x32')]['includeAll']){_0x536ba9['include']=[{'all':!![]}];}_0x536ba9=_[_0x7088('0x3d')]({},_0x536ba9,_0x76bdf9[_0x7088('0x46')]);return db[_0x7088('0x2d')][_0x7088('0x47')](_0x536ba9)[_0x7088('0x23')](handleEntityNotFound(_0x3fba6c,null))['then'](respondWithResult(_0x3fba6c,null))[_0x7088('0x42')](handleError(_0x3fba6c,null));};exports['create']=function(_0x3cfbb2,_0x547d1b){return db[_0x7088('0x2d')][_0x7088('0x48')](_0x3cfbb2[_0x7088('0x49')],{})[_0x7088('0x23')](function(_0x332248){var _0xa9ec65=_0x3cfbb2[_0x7088('0x4a')][_0x7088('0x24')]({'plain':!![]});if(!_0xa9ec65)throw new Error(_0x7088('0x4b'));if(_0xa9ec65['role']===_0x7088('0x4a')){var _0x559b1f=_0x332248[_0x7088('0x24')]({'plain':!![]});var _0x338643=_0x7088('0x25');return db[_0x7088('0x4c')][_0x7088('0x47')]({'where':{'name':_0x338643,'userProfileId':_0xa9ec65[_0x7088('0x4d')]},'raw':!![]})[_0x7088('0x23')](function(_0x3b1db2){if(_0x3b1db2&&_0x3b1db2[_0x7088('0x4e')]===0x0){return db[_0x7088('0x4f')][_0x7088('0x48')]({'name':_0x559b1f[_0x7088('0x29')],'resourceId':_0x559b1f['id'],'type':_0x3b1db2['name'],'sectionId':_0x3b1db2['id']},{})[_0x7088('0x23')](function(){return _0x332248;});}else{return _0x332248;}})['catch'](function(_0x2feb54){logger[_0x7088('0x27')](_0x7088('0x50'),_0x2feb54);throw _0x2feb54;});}return _0x332248;})[_0x7088('0x23')](respondWithResult(_0x547d1b,0xc9))[_0x7088('0x42')](handleError(_0x547d1b,null));};exports[_0x7088('0x22')]=function(_0x4214b9,_0x2a6309){if(_0x4214b9[_0x7088('0x49')]['id']){delete _0x4214b9[_0x7088('0x49')]['id'];}return db['SquareOdbc'][_0x7088('0x47')]({'where':{'id':_0x4214b9['params']['id']}})[_0x7088('0x23')](handleEntityNotFound(_0x2a6309,null))[_0x7088('0x23')](saveUpdates(_0x4214b9[_0x7088('0x49')],null))[_0x7088('0x23')](respondWithResult(_0x2a6309,null))[_0x7088('0x42')](handleError(_0x2a6309,null));};exports[_0x7088('0x26')]=function(_0x28cd4b,_0x4263b4){return db[_0x7088('0x2d')][_0x7088('0x47')]({'where':{'id':_0x28cd4b[_0x7088('0x43')]['id']}})['then'](handleEntityNotFound(_0x4263b4,null))['then'](removeEntity(_0x4263b4,null))[_0x7088('0x42')](handleError(_0x4263b4,null));};exports['test']=function(_0x2ed168,_0x8b2023,_0x3fabbb){var _0x3543c1;return db[_0x7088('0x2d')]['find']({'where':{'id':_0x2ed168[_0x7088('0x43')]['id']},'attributes':['id',_0x7088('0x51')]})['then'](handleEntityNotFound(_0x8b2023,null))['then'](function(_0x25b933){if(_0x25b933){var _0x471307=require(_0x7088('0x52'))();_0x471307[_0x7088('0x53')](_0x25b933['dsn']);_0x471307[_0x7088('0x54')]();return _0x25b933;}})[_0x7088('0x23')](respondWithResult(_0x8b2023,null))[_0x7088('0x42')](handleError(_0x8b2023,null));};