bc4853b9451fd8ba18785c97cf9400edb176c4ac
[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 _0x346f=['merge','VIRTUAL','options','count','include','catch','show','params','includeAll','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','find','dsn','odbc','openSync','closeSync','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','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','../../mysqldb','sendStatus','end','status','offset','limit','set','Content-Range','json','apply','reject','save','update','then','get','ODBC','destroy','stack','name','send','index','map','SquareOdbc','fieldName','type','model','keys','query','attributes','intersection','fields','length','hasOwnProperty','order','sort','where','filters','pick','filter'];(function(_0x40a045,_0x516f0e){var _0x1a687c=function(_0x48c9fe){while(--_0x48c9fe){_0x40a045['push'](_0x40a045['shift']());}};_0x1a687c(++_0x516f0e);}(_0x346f,0xd1));var _0xf346=function(_0x8481e,_0x591803){_0x8481e=_0x8481e-0x0;var _0x2e7a8d=_0x346f[_0x8481e];return _0x2e7a8d;};'use strict';var pdf=require(_0xf346('0x0'));var emlformat=require(_0xf346('0x1'));var rimraf=require(_0xf346('0x2'));var zipdir=require(_0xf346('0x3'));var jsonpatch=require(_0xf346('0x4'));var rp=require(_0xf346('0x5'));var moment=require('moment');var BPromise=require(_0xf346('0x6'));var Mustache=require(_0xf346('0x7'));var util=require(_0xf346('0x8'));var path=require(_0xf346('0x9'));var sox=require(_0xf346('0xa'));var csv=require(_0xf346('0xb'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xf346('0xc'));var squel=require(_0xf346('0xd'));var crypto=require(_0xf346('0xe'));var jsforce=require(_0xf346('0xf'));var deskjs=require(_0xf346('0x10'));var toCsv=require('to-csv');var querystring=require(_0xf346('0x11'));var Papa=require(_0xf346('0x12'));var Redis=require(_0xf346('0x13'));var authService=require(_0xf346('0x14'));var qs=require(_0xf346('0x15'));var as=require(_0xf346('0x16'));var hardwareService=require(_0xf346('0x17'));var logger=require(_0xf346('0x18'))(_0xf346('0x19'));var utils=require(_0xf346('0x1a'));var config=require(_0xf346('0x1b'));var db=require(_0xf346('0x1c'))['db'];function respondWithStatusCode(_0x105c47,_0x4525a4){_0x4525a4=_0x4525a4||0xcc;return function(_0x267fb8){if(_0x267fb8){return _0x105c47[_0xf346('0x1d')](_0x4525a4);}return _0x105c47['status'](_0x4525a4)[_0xf346('0x1e')]();};}function respondWithResult(_0x49dc31,_0x8800e3){_0x8800e3=_0x8800e3||0xc8;return function(_0x5007c4){if(_0x5007c4){return _0x49dc31[_0xf346('0x1f')](_0x8800e3)['json'](_0x5007c4);}};}function respondWithFilteredResult(_0x37e426,_0x186d09){return function(_0x493185){if(_0x493185){var _0x3f7b39=_0x493185['count'],_0xce0ffd=_0x186d09[_0xf346('0x20')],_0x4a1a45=_0x186d09['offset']+_0x186d09[_0xf346('0x21')],_0x1a2732;if(_0x4a1a45>=_0x3f7b39){_0x4a1a45=_0x3f7b39;_0x1a2732=0xc8;}else{_0x1a2732=0xce;}_0x37e426[_0xf346('0x1f')](_0x1a2732);return _0x37e426[_0xf346('0x22')](_0xf346('0x23'),_0xce0ffd+'-'+_0x4a1a45+'/'+_0x3f7b39)[_0xf346('0x24')](_0x493185);}return null;};}function patchUpdates(_0x4fb38c){return function(_0x26288e){try{jsonpatch[_0xf346('0x25')](_0x26288e,_0x4fb38c,!![]);}catch(_0x3a86da){return BPromise[_0xf346('0x26')](_0x3a86da);}return _0x26288e[_0xf346('0x27')]();};}function saveUpdates(_0x5dd33e,_0x1cc17e){return function(_0x30e769){if(_0x30e769){return _0x30e769[_0xf346('0x28')](_0x5dd33e)[_0xf346('0x29')](function(_0x84b57d){return _0x84b57d;});}return null;};}function removeEntity(_0xee7f8c,_0x159b88){return function(_0x46789a){if(_0x46789a){return _0x46789a['destroy']()[_0xf346('0x29')](function(){var _0x39d067=_0x46789a[_0xf346('0x2a')]({'plain':!![]});var _0x5adb3f=_0xf346('0x2b');return db['UserProfileResource'][_0xf346('0x2c')]({'where':{'type':_0x5adb3f,'resourceId':_0x39d067['id']}})['then'](function(){return _0x46789a;});})[_0xf346('0x29')](function(){_0xee7f8c[_0xf346('0x1f')](0xcc)[_0xf346('0x1e')]();});}};}function handleEntityNotFound(_0x3fea8d,_0x181c53){return function(_0x336bba){if(!_0x336bba){_0x3fea8d[_0xf346('0x1d')](0x194);}return _0x336bba;};}function handleError(_0x3a63a5,_0x46c3fe){_0x46c3fe=_0x46c3fe||0x1f4;return function(_0xe86fc7){logger['error'](_0xe86fc7[_0xf346('0x2d')]);if(_0xe86fc7[_0xf346('0x2e')]){delete _0xe86fc7[_0xf346('0x2e')];}_0x3a63a5[_0xf346('0x1f')](_0x46c3fe)[_0xf346('0x2f')](_0xe86fc7);};}exports[_0xf346('0x30')]=function(_0x51c159,_0x3dfccb){var _0x3f5251={},_0x43a01b={},_0xdd5396={'count':0x0,'rows':[]};var _0x57eec0=_[_0xf346('0x31')](db[_0xf346('0x32')]['rawAttributes'],function(_0x2a0146){return{'name':_0x2a0146[_0xf346('0x33')],'type':_0x2a0146[_0xf346('0x34')]['key']};});_0x43a01b[_0xf346('0x35')]=_['map'](_0x57eec0,_0xf346('0x2e'));_0x43a01b['query']=_[_0xf346('0x36')](_0x51c159[_0xf346('0x37')]);_0x43a01b['filters']=_['intersection'](_0x43a01b[_0xf346('0x35')],_0x43a01b[_0xf346('0x37')]);_0x3f5251[_0xf346('0x38')]=_[_0xf346('0x39')](_0x43a01b['model'],qs[_0xf346('0x3a')](_0x51c159[_0xf346('0x37')][_0xf346('0x3a')]));_0x3f5251[_0xf346('0x38')]=_0x3f5251[_0xf346('0x38')][_0xf346('0x3b')]?_0x3f5251['attributes']:_0x43a01b[_0xf346('0x35')];if(!_0x51c159[_0xf346('0x37')][_0xf346('0x3c')]('nolimit')){_0x3f5251[_0xf346('0x21')]=qs[_0xf346('0x21')](_0x51c159['query'][_0xf346('0x21')]);_0x3f5251[_0xf346('0x20')]=qs[_0xf346('0x20')](_0x51c159[_0xf346('0x37')][_0xf346('0x20')]);}_0x3f5251[_0xf346('0x3d')]=qs[_0xf346('0x3e')](_0x51c159['query'][_0xf346('0x3e')]);_0x3f5251[_0xf346('0x3f')]=qs[_0xf346('0x40')](_[_0xf346('0x41')](_0x51c159[_0xf346('0x37')],_0x43a01b[_0xf346('0x40')]));if(_0x51c159['query'][_0xf346('0x42')]){_0x3f5251[_0xf346('0x3f')]=_[_0xf346('0x43')](_0x3f5251[_0xf346('0x3f')],{'$or':_['map'](_0x57eec0,function(_0x5329d2){if(_0x5329d2['type']!==_0xf346('0x44')){var _0x36217e={};_0x36217e[_0x5329d2[_0xf346('0x2e')]]={'$like':'%'+_0x51c159[_0xf346('0x37')][_0xf346('0x42')]+'%'};return _0x36217e;}})});}_0x3f5251=_['merge']({},_0x3f5251,_0x51c159[_0xf346('0x45')]);var _0x318e09={'where':_0x3f5251['where']};return db[_0xf346('0x32')][_0xf346('0x46')](_0x318e09)[_0xf346('0x29')](function(_0x281b29){_0xdd5396[_0xf346('0x46')]=_0x281b29;if(_0x51c159[_0xf346('0x37')]['includeAll']){_0x3f5251[_0xf346('0x47')]=[{'all':!![]}];}return db[_0xf346('0x32')]['findAll'](_0x3f5251);})[_0xf346('0x29')](function(_0x430eec){_0xdd5396['rows']=_0x430eec;return _0xdd5396;})[_0xf346('0x29')](respondWithFilteredResult(_0x3dfccb,_0x3f5251))[_0xf346('0x48')](handleError(_0x3dfccb,null));};exports[_0xf346('0x49')]=function(_0x565ef7,_0x462bbb){var _0x468a0a={'raw':!![],'where':{'id':_0x565ef7[_0xf346('0x4a')]['id']}},_0x283cc5={};_0x283cc5[_0xf346('0x35')]=_[_0xf346('0x36')](db[_0xf346('0x32')]['rawAttributes']);_0x283cc5[_0xf346('0x37')]=_[_0xf346('0x36')](_0x565ef7['query']);_0x283cc5[_0xf346('0x40')]=_[_0xf346('0x39')](_0x283cc5[_0xf346('0x35')],_0x283cc5['query']);_0x468a0a[_0xf346('0x38')]=_[_0xf346('0x39')](_0x283cc5[_0xf346('0x35')],qs['fields'](_0x565ef7[_0xf346('0x37')][_0xf346('0x3a')]));_0x468a0a[_0xf346('0x38')]=_0x468a0a[_0xf346('0x38')][_0xf346('0x3b')]?_0x468a0a['attributes']:_0x283cc5[_0xf346('0x35')];if(_0x565ef7[_0xf346('0x37')][_0xf346('0x4b')]){_0x468a0a[_0xf346('0x47')]=[{'all':!![]}];}_0x468a0a=_['merge']({},_0x468a0a,_0x565ef7[_0xf346('0x45')]);return db[_0xf346('0x32')]['find'](_0x468a0a)[_0xf346('0x29')](handleEntityNotFound(_0x462bbb,null))[_0xf346('0x29')](respondWithResult(_0x462bbb,null))[_0xf346('0x48')](handleError(_0x462bbb,null));};exports[_0xf346('0x4c')]=function(_0x28d6fa,_0x4e0442){return db[_0xf346('0x32')][_0xf346('0x4c')](_0x28d6fa[_0xf346('0x4d')],{})[_0xf346('0x29')](function(_0x3685a5){var _0x361f07=_0x28d6fa[_0xf346('0x4e')][_0xf346('0x2a')]({'plain':!![]});if(!_0x361f07)throw new Error(_0xf346('0x4f'));if(_0x361f07[_0xf346('0x50')]===_0xf346('0x4e')){var _0x4af475=_0x3685a5[_0xf346('0x2a')]({'plain':!![]});var _0x52fb17='ODBC';return db[_0xf346('0x51')]['find']({'where':{'name':_0x52fb17,'userProfileId':_0x361f07[_0xf346('0x52')]},'raw':!![]})[_0xf346('0x29')](function(_0x4a50c4){if(_0x4a50c4&&_0x4a50c4[_0xf346('0x53')]===0x0){return db[_0xf346('0x54')][_0xf346('0x4c')]({'name':_0x4af475['name'],'resourceId':_0x4af475['id'],'type':_0x4a50c4[_0xf346('0x2e')],'sectionId':_0x4a50c4['id']},{})[_0xf346('0x29')](function(){return _0x3685a5;});}else{return _0x3685a5;}})[_0xf346('0x48')](function(_0x38b4b1){logger[_0xf346('0x55')](_0xf346('0x56'),_0x38b4b1);throw _0x38b4b1;});}return _0x3685a5;})['then'](respondWithResult(_0x4e0442,0xc9))[_0xf346('0x48')](handleError(_0x4e0442,null));};exports['update']=function(_0x3753b0,_0x96d2f9){if(_0x3753b0[_0xf346('0x4d')]['id']){delete _0x3753b0[_0xf346('0x4d')]['id'];}return db[_0xf346('0x32')][_0xf346('0x57')]({'where':{'id':_0x3753b0[_0xf346('0x4a')]['id']}})[_0xf346('0x29')](handleEntityNotFound(_0x96d2f9,null))[_0xf346('0x29')](saveUpdates(_0x3753b0[_0xf346('0x4d')],null))[_0xf346('0x29')](respondWithResult(_0x96d2f9,null))[_0xf346('0x48')](handleError(_0x96d2f9,null));};exports[_0xf346('0x2c')]=function(_0x48c87b,_0x58492d){return db[_0xf346('0x32')][_0xf346('0x57')]({'where':{'id':_0x48c87b['params']['id']}})[_0xf346('0x29')](handleEntityNotFound(_0x58492d,null))[_0xf346('0x29')](removeEntity(_0x58492d,null))[_0xf346('0x48')](handleError(_0x58492d,null));};exports['test']=function(_0x3de72e,_0x3b1b25,_0x443fd4){var _0x5a940e;return db[_0xf346('0x32')][_0xf346('0x57')]({'where':{'id':_0x3de72e[_0xf346('0x4a')]['id']},'attributes':['id',_0xf346('0x58')]})[_0xf346('0x29')](handleEntityNotFound(_0x3b1b25,null))[_0xf346('0x29')](function(_0x5485c1){if(_0x5485c1){var _0xf0fcb0=require(_0xf346('0x59'))();_0xf0fcb0[_0xf346('0x5a')](_0x5485c1[_0xf346('0x58')]);_0xf0fcb0[_0xf346('0x5b')]();return _0x5485c1;}})[_0xf346('0x29')](respondWithResult(_0x3b1b25,null))['catch'](handleError(_0x3b1b25,null));};