Built motion from commit e02f907f.|2.6.14
[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 _0xab09=['offset','Content-Range','apply','reject','save','destroy','get','ODBC','UserProfileResource','then','end','error','stack','name','index','map','SquareOdbc','rawAttributes','fieldName','type','key','model','keys','query','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','pick','filters','filter','where','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','length','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','test','odbc','openSync','closeSync','zip-dir','fast-json-patch','request-promise','bluebird','mustache','path','sox','to-csv','lodash','squel','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','undefined','limit','count'];(function(_0x4e6e09,_0x1b3e98){var _0x5846e9=function(_0xdc30df){while(--_0xdc30df){_0x4e6e09['push'](_0x4e6e09['shift']());}};_0x5846e9(++_0x1b3e98);}(_0xab09,0xeb));var _0x9ab0=function(_0x4bed2d,_0x4ebe20){_0x4bed2d=_0x4bed2d-0x0;var _0xe82d9f=_0xab09[_0x4bed2d];return _0xe82d9f;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x9ab0('0x0'));var jsonpatch=require(_0x9ab0('0x1'));var rp=require(_0x9ab0('0x2'));var moment=require('moment');var BPromise=require(_0x9ab0('0x3'));var Mustache=require(_0x9ab0('0x4'));var util=require('util');var path=require(_0x9ab0('0x5'));var sox=require(_0x9ab0('0x6'));var csv=require(_0x9ab0('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x9ab0('0x8'));var squel=require(_0x9ab0('0x9'));var crypto=require('crypto');var jsforce=require(_0x9ab0('0xa'));var deskjs=require(_0x9ab0('0xb'));var toCsv=require(_0x9ab0('0x7'));var querystring=require('querystring');var Papa=require(_0x9ab0('0xc'));var Redis=require(_0x9ab0('0xd'));var authService=require(_0x9ab0('0xe'));var qs=require('../../components/parsers/qs');var as=require(_0x9ab0('0xf'));var hardwareService=require(_0x9ab0('0x10'));var logger=require(_0x9ab0('0x11'))(_0x9ab0('0x12'));var utils=require(_0x9ab0('0x13'));var config=require(_0x9ab0('0x14'));var licenseUtil=require(_0x9ab0('0x15'));var db=require(_0x9ab0('0x16'))['db'];function respondWithStatusCode(_0x47a6fe,_0x1815ed){_0x1815ed=_0x1815ed||0xcc;return function(_0x4fd101){if(_0x4fd101){return _0x47a6fe[_0x9ab0('0x17')](_0x1815ed);}return _0x47a6fe['status'](_0x1815ed)['end']();};}function respondWithResult(_0x4212c0,_0x1e456a){_0x1e456a=_0x1e456a||0xc8;return function(_0xf4868f){if(_0xf4868f){return _0x4212c0[_0x9ab0('0x18')](_0x1e456a)[_0x9ab0('0x19')](_0xf4868f);}};}function respondWithFilteredResult(_0x428cc6,_0x14536a){return function(_0x133955){if(_0x133955){var _0x1b784f=typeof _0x14536a['offset']===_0x9ab0('0x1a')&&typeof _0x14536a[_0x9ab0('0x1b')]==='undefined';var _0x56a1e8=_0x133955[_0x9ab0('0x1c')];var _0x2f3abb=_0x1b784f?0x0:_0x14536a[_0x9ab0('0x1d')];var _0x415aac=_0x1b784f?_0x133955[_0x9ab0('0x1c')]:_0x14536a['offset']+_0x14536a[_0x9ab0('0x1b')];var _0x1a154b;if(_0x415aac>=_0x56a1e8){_0x415aac=_0x56a1e8;_0x1a154b=0xc8;}else{_0x1a154b=0xce;}_0x428cc6[_0x9ab0('0x18')](_0x1a154b);return _0x428cc6['set'](_0x9ab0('0x1e'),_0x2f3abb+'-'+_0x415aac+'/'+_0x56a1e8)['json'](_0x133955);}return null;};}function patchUpdates(_0x1c85b4){return function(_0x40d474){try{jsonpatch[_0x9ab0('0x1f')](_0x40d474,_0x1c85b4,!![]);}catch(_0x16f1b8){return BPromise[_0x9ab0('0x20')](_0x16f1b8);}return _0x40d474[_0x9ab0('0x21')]();};}function saveUpdates(_0x3d8e92,_0x28f5ec){return function(_0x476c47){if(_0x476c47){return _0x476c47['update'](_0x3d8e92)['then'](function(_0x10bd37){return _0x10bd37;});}return null;};}function removeEntity(_0x52fee3,_0x50fba0){return function(_0x154a70){if(_0x154a70){return _0x154a70[_0x9ab0('0x22')]()['then'](function(){var _0x525561=_0x154a70[_0x9ab0('0x23')]({'plain':!![]});var _0x26a8f8=_0x9ab0('0x24');return db[_0x9ab0('0x25')]['destroy']({'where':{'type':_0x26a8f8,'resourceId':_0x525561['id']}})['then'](function(){return _0x154a70;});})[_0x9ab0('0x26')](function(){_0x52fee3[_0x9ab0('0x18')](0xcc)[_0x9ab0('0x27')]();});}};}function handleEntityNotFound(_0xe14e31,_0x18cc00){return function(_0x56edf8){if(!_0x56edf8){_0xe14e31[_0x9ab0('0x17')](0x194);}return _0x56edf8;};}function handleError(_0x5f42ba,_0x512484){_0x512484=_0x512484||0x1f4;return function(_0x2a57a1){logger[_0x9ab0('0x28')](_0x2a57a1[_0x9ab0('0x29')]);if(_0x2a57a1[_0x9ab0('0x2a')]){delete _0x2a57a1['name'];}_0x5f42ba[_0x9ab0('0x18')](_0x512484)['send'](_0x2a57a1);};}exports[_0x9ab0('0x2b')]=function(_0x1d951b,_0x3ce9f4){var _0x11db2c={},_0x4cf327={},_0x308b78={'count':0x0,'rows':[]};var _0xed6b8b=_[_0x9ab0('0x2c')](db[_0x9ab0('0x2d')][_0x9ab0('0x2e')],function(_0xd4e04c){return{'name':_0xd4e04c[_0x9ab0('0x2f')],'type':_0xd4e04c[_0x9ab0('0x30')][_0x9ab0('0x31')]};});_0x4cf327[_0x9ab0('0x32')]=_[_0x9ab0('0x2c')](_0xed6b8b,'name');_0x4cf327['query']=_[_0x9ab0('0x33')](_0x1d951b[_0x9ab0('0x34')]);_0x4cf327['filters']=_[_0x9ab0('0x35')](_0x4cf327[_0x9ab0('0x32')],_0x4cf327[_0x9ab0('0x34')]);_0x11db2c[_0x9ab0('0x36')]=_['intersection'](_0x4cf327[_0x9ab0('0x32')],qs[_0x9ab0('0x37')](_0x1d951b['query'][_0x9ab0('0x37')]));_0x11db2c['attributes']=_0x11db2c[_0x9ab0('0x36')]['length']?_0x11db2c[_0x9ab0('0x36')]:_0x4cf327[_0x9ab0('0x32')];if(!_0x1d951b['query'][_0x9ab0('0x38')](_0x9ab0('0x39'))){_0x11db2c[_0x9ab0('0x1b')]=qs[_0x9ab0('0x1b')](_0x1d951b[_0x9ab0('0x34')][_0x9ab0('0x1b')]);_0x11db2c[_0x9ab0('0x1d')]=qs['offset'](_0x1d951b[_0x9ab0('0x34')][_0x9ab0('0x1d')]);}_0x11db2c[_0x9ab0('0x3a')]=qs[_0x9ab0('0x3b')](_0x1d951b['query'][_0x9ab0('0x3b')]);_0x11db2c['where']=qs['filters'](_[_0x9ab0('0x3c')](_0x1d951b[_0x9ab0('0x34')],_0x4cf327[_0x9ab0('0x3d')]),_0xed6b8b);if(_0x1d951b[_0x9ab0('0x34')][_0x9ab0('0x3e')]){_0x11db2c[_0x9ab0('0x3f')]=_[_0x9ab0('0x40')](_0x11db2c['where'],{'$or':_['map'](_0xed6b8b,function(_0x5c2027){if(_0x5c2027[_0x9ab0('0x30')]!==_0x9ab0('0x41')){var _0x238b63={};_0x238b63[_0x5c2027[_0x9ab0('0x2a')]]={'$like':'%'+_0x1d951b[_0x9ab0('0x34')][_0x9ab0('0x3e')]+'%'};return _0x238b63;}})});}_0x11db2c=_[_0x9ab0('0x40')]({},_0x11db2c,_0x1d951b[_0x9ab0('0x42')]);var _0x31fefb={'where':_0x11db2c['where']};return db['SquareOdbc'][_0x9ab0('0x1c')](_0x31fefb)[_0x9ab0('0x26')](function(_0xffa449){_0x308b78[_0x9ab0('0x1c')]=_0xffa449;if(_0x1d951b[_0x9ab0('0x34')][_0x9ab0('0x43')]){_0x11db2c[_0x9ab0('0x44')]=[{'all':!![]}];}return db['SquareOdbc'][_0x9ab0('0x45')](_0x11db2c);})['then'](function(_0x37ecf6){_0x308b78[_0x9ab0('0x46')]=_0x37ecf6;return _0x308b78;})['then'](respondWithFilteredResult(_0x3ce9f4,_0x11db2c))[_0x9ab0('0x47')](handleError(_0x3ce9f4,null));};exports['show']=function(_0x3bd716,_0x5b64d6){var _0x26a207={'raw':!![],'where':{'id':_0x3bd716['params']['id']}},_0x5cb642={};_0x5cb642[_0x9ab0('0x32')]=_[_0x9ab0('0x33')](db[_0x9ab0('0x2d')]['rawAttributes']);_0x5cb642[_0x9ab0('0x34')]=_[_0x9ab0('0x33')](_0x3bd716[_0x9ab0('0x34')]);_0x5cb642['filters']=_['intersection'](_0x5cb642[_0x9ab0('0x32')],_0x5cb642[_0x9ab0('0x34')]);_0x26a207[_0x9ab0('0x36')]=_['intersection'](_0x5cb642[_0x9ab0('0x32')],qs[_0x9ab0('0x37')](_0x3bd716[_0x9ab0('0x34')][_0x9ab0('0x37')]));_0x26a207[_0x9ab0('0x36')]=_0x26a207[_0x9ab0('0x36')][_0x9ab0('0x48')]?_0x26a207[_0x9ab0('0x36')]:_0x5cb642['model'];if(_0x3bd716[_0x9ab0('0x34')][_0x9ab0('0x43')]){_0x26a207[_0x9ab0('0x44')]=[{'all':!![]}];}_0x26a207=_[_0x9ab0('0x40')]({},_0x26a207,_0x3bd716['options']);return db[_0x9ab0('0x2d')][_0x9ab0('0x49')](_0x26a207)[_0x9ab0('0x26')](handleEntityNotFound(_0x5b64d6,null))[_0x9ab0('0x26')](respondWithResult(_0x5b64d6,null))['catch'](handleError(_0x5b64d6,null));};exports[_0x9ab0('0x4a')]=function(_0x13ba12,_0x2f3b2f){return db['SquareOdbc']['create'](_0x13ba12[_0x9ab0('0x4b')],{})[_0x9ab0('0x26')](function(_0x4e78eb){var _0x4f8830=_0x13ba12[_0x9ab0('0x4c')][_0x9ab0('0x23')]({'plain':!![]});if(!_0x4f8830)throw new Error(_0x9ab0('0x4d'));if(_0x4f8830[_0x9ab0('0x4e')]===_0x9ab0('0x4c')){var _0x302996=_0x4e78eb[_0x9ab0('0x23')]({'plain':!![]});var _0x39c498=_0x9ab0('0x24');return db[_0x9ab0('0x4f')]['find']({'where':{'name':_0x39c498,'userProfileId':_0x4f8830[_0x9ab0('0x50')]},'raw':!![]})[_0x9ab0('0x26')](function(_0x54f115){if(_0x54f115&&_0x54f115[_0x9ab0('0x51')]===0x0){return db[_0x9ab0('0x25')]['create']({'name':_0x302996[_0x9ab0('0x2a')],'resourceId':_0x302996['id'],'type':_0x54f115[_0x9ab0('0x2a')],'sectionId':_0x54f115['id']},{})['then'](function(){return _0x4e78eb;});}else{return _0x4e78eb;}})['catch'](function(_0x195fd6){logger[_0x9ab0('0x28')](_0x9ab0('0x52'),_0x195fd6);throw _0x195fd6;});}return _0x4e78eb;})[_0x9ab0('0x26')](respondWithResult(_0x2f3b2f,0xc9))[_0x9ab0('0x47')](handleError(_0x2f3b2f,null));};exports['update']=function(_0x40f512,_0x2b4136){if(_0x40f512[_0x9ab0('0x4b')]['id']){delete _0x40f512[_0x9ab0('0x4b')]['id'];}return db[_0x9ab0('0x2d')][_0x9ab0('0x49')]({'where':{'id':_0x40f512[_0x9ab0('0x53')]['id']}})['then'](handleEntityNotFound(_0x2b4136,null))[_0x9ab0('0x26')](saveUpdates(_0x40f512[_0x9ab0('0x4b')],null))[_0x9ab0('0x26')](respondWithResult(_0x2b4136,null))[_0x9ab0('0x47')](handleError(_0x2b4136,null));};exports[_0x9ab0('0x22')]=function(_0x3a47ab,_0x730316){return db[_0x9ab0('0x2d')][_0x9ab0('0x49')]({'where':{'id':_0x3a47ab['params']['id']}})[_0x9ab0('0x26')](handleEntityNotFound(_0x730316,null))[_0x9ab0('0x26')](removeEntity(_0x730316,null))[_0x9ab0('0x47')](handleError(_0x730316,null));};exports[_0x9ab0('0x54')]=function(_0x51b35c,_0xf4021d,_0x680cc3){var _0x4256d1;return db[_0x9ab0('0x2d')][_0x9ab0('0x49')]({'where':{'id':_0x51b35c[_0x9ab0('0x53')]['id']},'attributes':['id','dsn']})[_0x9ab0('0x26')](handleEntityNotFound(_0xf4021d,null))[_0x9ab0('0x26')](function(_0x44b93c){if(_0x44b93c){var _0x1826bb=require(_0x9ab0('0x55'))();_0x1826bb[_0x9ab0('0x56')](_0x44b93c['dsn']);_0x1826bb[_0x9ab0('0x57')]();return _0x44b93c;}})[_0x9ab0('0x26')](respondWithResult(_0xf4021d,null))['catch'](handleError(_0xf4021d,null));};