cddf9478ad5a747fe853273accd583a226682433
[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 _0x22ae=['request-promise','moment','bluebird','mustache','util','path','sox','to-csv','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','sendStatus','status','end','json','count','offset','limit','set','Content-Range','reject','save','update','then','destroy','get','ODBC','error','stack','name','SquareOdbc','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','map','VIRTUAL','includeAll','include','rows','show','options','catch','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','find','dsn','odbc','openSync','closeSync','html-pdf','rimraf','zip-dir','fast-json-patch'];(function(_0x4191bc,_0x3096c5){var _0x1ffd4e=function(_0x36faed){while(--_0x36faed){_0x4191bc['push'](_0x4191bc['shift']());}};_0x1ffd4e(++_0x3096c5);}(_0x22ae,0x158));var _0xe22a=function(_0x289187,_0x5b6795){_0x289187=_0x289187-0x0;var _0x5c4db4=_0x22ae[_0x289187];return _0x5c4db4;};'use strict';var pdf=require(_0xe22a('0x0'));var emlformat=require('eml-format');var rimraf=require(_0xe22a('0x1'));var zipdir=require(_0xe22a('0x2'));var jsonpatch=require(_0xe22a('0x3'));var rp=require(_0xe22a('0x4'));var moment=require(_0xe22a('0x5'));var BPromise=require(_0xe22a('0x6'));var Mustache=require(_0xe22a('0x7'));var util=require(_0xe22a('0x8'));var path=require(_0xe22a('0x9'));var sox=require(_0xe22a('0xa'));var csv=require(_0xe22a('0xb'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xe22a('0xc'));var squel=require(_0xe22a('0xd'));var crypto=require('crypto');var jsforce=require(_0xe22a('0xe'));var deskjs=require(_0xe22a('0xf'));var toCsv=require(_0xe22a('0xb'));var querystring=require(_0xe22a('0x10'));var Papa=require(_0xe22a('0x11'));var Redis=require(_0xe22a('0x12'));var authService=require(_0xe22a('0x13'));var qs=require(_0xe22a('0x14'));var as=require(_0xe22a('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xe22a('0x16'))(_0xe22a('0x17'));var utils=require(_0xe22a('0x18'));var config=require(_0xe22a('0x19'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x39f390,_0x2d6e35){_0x2d6e35=_0x2d6e35||0xcc;return function(_0x57de30){if(_0x57de30){return _0x39f390[_0xe22a('0x1a')](_0x2d6e35);}return _0x39f390[_0xe22a('0x1b')](_0x2d6e35)[_0xe22a('0x1c')]();};}function respondWithResult(_0x88860,_0x460565){_0x460565=_0x460565||0xc8;return function(_0x2563d1){if(_0x2563d1){return _0x88860[_0xe22a('0x1b')](_0x460565)[_0xe22a('0x1d')](_0x2563d1);}};}function respondWithFilteredResult(_0x1f092f,_0x587c4a){return function(_0x1ed0b8){if(_0x1ed0b8){var _0x515d2a=_0x1ed0b8[_0xe22a('0x1e')],_0x433ed4=_0x587c4a[_0xe22a('0x1f')],_0x2aa03f=_0x587c4a['offset']+_0x587c4a[_0xe22a('0x20')],_0xa8e84e;if(_0x2aa03f>=_0x515d2a){_0x2aa03f=_0x515d2a;_0xa8e84e=0xc8;}else{_0xa8e84e=0xce;}_0x1f092f[_0xe22a('0x1b')](_0xa8e84e);return _0x1f092f[_0xe22a('0x21')](_0xe22a('0x22'),_0x433ed4+'-'+_0x2aa03f+'/'+_0x515d2a)[_0xe22a('0x1d')](_0x1ed0b8);}return null;};}function patchUpdates(_0x56577c){return function(_0x35ea27){try{jsonpatch['apply'](_0x35ea27,_0x56577c,!![]);}catch(_0x5ba47a){return BPromise[_0xe22a('0x23')](_0x5ba47a);}return _0x35ea27[_0xe22a('0x24')]();};}function saveUpdates(_0x236040,_0x4d9545){return function(_0x1ae529){if(_0x1ae529){return _0x1ae529[_0xe22a('0x25')](_0x236040)[_0xe22a('0x26')](function(_0x5368a4){return _0x5368a4;});}return null;};}function removeEntity(_0x4c86e4,_0x5624eb){return function(_0x3966f4){if(_0x3966f4){return _0x3966f4[_0xe22a('0x27')]()[_0xe22a('0x26')](function(){var _0x13a4dd=_0x3966f4[_0xe22a('0x28')]({'plain':!![]});var _0x332386=_0xe22a('0x29');return db['UserProfileResource']['destroy']({'where':{'type':_0x332386,'resourceId':_0x13a4dd['id']}})[_0xe22a('0x26')](function(){return _0x3966f4;});})[_0xe22a('0x26')](function(){_0x4c86e4[_0xe22a('0x1b')](0xcc)[_0xe22a('0x1c')]();});}};}function handleEntityNotFound(_0x598645,_0x4e87b9){return function(_0x27f09f){if(!_0x27f09f){_0x598645[_0xe22a('0x1a')](0x194);}return _0x27f09f;};}function handleError(_0x332c23,_0x414186){_0x414186=_0x414186||0x1f4;return function(_0x7b66f){logger[_0xe22a('0x2a')](_0x7b66f[_0xe22a('0x2b')]);if(_0x7b66f[_0xe22a('0x2c')]){delete _0x7b66f[_0xe22a('0x2c')];}_0x332c23[_0xe22a('0x1b')](_0x414186)['send'](_0x7b66f);};}exports['index']=function(_0xee32d9,_0x1d9762){var _0x1442ad={},_0x22ed72={},_0x5df574={'count':0x0,'rows':[]};var _0x234ff2=_['map'](db[_0xe22a('0x2d')][_0xe22a('0x2e')],function(_0x8ca708){return{'name':_0x8ca708[_0xe22a('0x2f')],'type':_0x8ca708[_0xe22a('0x30')][_0xe22a('0x31')]};});_0x22ed72[_0xe22a('0x32')]=_['map'](_0x234ff2,'name');_0x22ed72[_0xe22a('0x33')]=_[_0xe22a('0x34')](_0xee32d9[_0xe22a('0x33')]);_0x22ed72[_0xe22a('0x35')]=_[_0xe22a('0x36')](_0x22ed72[_0xe22a('0x32')],_0x22ed72[_0xe22a('0x33')]);_0x1442ad[_0xe22a('0x37')]=_['intersection'](_0x22ed72[_0xe22a('0x32')],qs[_0xe22a('0x38')](_0xee32d9['query']['fields']));_0x1442ad[_0xe22a('0x37')]=_0x1442ad[_0xe22a('0x37')][_0xe22a('0x39')]?_0x1442ad[_0xe22a('0x37')]:_0x22ed72['model'];if(!_0xee32d9[_0xe22a('0x33')][_0xe22a('0x3a')]('nolimit')){_0x1442ad[_0xe22a('0x20')]=qs[_0xe22a('0x20')](_0xee32d9['query'][_0xe22a('0x20')]);_0x1442ad[_0xe22a('0x1f')]=qs[_0xe22a('0x1f')](_0xee32d9[_0xe22a('0x33')]['offset']);}_0x1442ad[_0xe22a('0x3b')]=qs[_0xe22a('0x3c')](_0xee32d9[_0xe22a('0x33')]['sort']);_0x1442ad[_0xe22a('0x3d')]=qs['filters'](_[_0xe22a('0x3e')](_0xee32d9[_0xe22a('0x33')],_0x22ed72[_0xe22a('0x35')]),_0x234ff2);if(_0xee32d9[_0xe22a('0x33')][_0xe22a('0x3f')]){_0x1442ad[_0xe22a('0x3d')]=_[_0xe22a('0x40')](_0x1442ad[_0xe22a('0x3d')],{'$or':_[_0xe22a('0x41')](_0x234ff2,function(_0x5c69eb){if(_0x5c69eb[_0xe22a('0x30')]!==_0xe22a('0x42')){var _0x595406={};_0x595406[_0x5c69eb[_0xe22a('0x2c')]]={'$like':'%'+_0xee32d9[_0xe22a('0x33')][_0xe22a('0x3f')]+'%'};return _0x595406;}})});}_0x1442ad=_[_0xe22a('0x40')]({},_0x1442ad,_0xee32d9['options']);var _0x51d819={'where':_0x1442ad[_0xe22a('0x3d')]};return db[_0xe22a('0x2d')][_0xe22a('0x1e')](_0x51d819)[_0xe22a('0x26')](function(_0x51b9aa){_0x5df574[_0xe22a('0x1e')]=_0x51b9aa;if(_0xee32d9[_0xe22a('0x33')][_0xe22a('0x43')]){_0x1442ad[_0xe22a('0x44')]=[{'all':!![]}];}return db[_0xe22a('0x2d')]['findAll'](_0x1442ad);})[_0xe22a('0x26')](function(_0x3cd617){_0x5df574[_0xe22a('0x45')]=_0x3cd617;return _0x5df574;})[_0xe22a('0x26')](respondWithFilteredResult(_0x1d9762,_0x1442ad))['catch'](handleError(_0x1d9762,null));};exports[_0xe22a('0x46')]=function(_0x5b8ac7,_0xbab1ae){var _0x3928d8={'raw':!![],'where':{'id':_0x5b8ac7['params']['id']}},_0x49e8c1={};_0x49e8c1[_0xe22a('0x32')]=_[_0xe22a('0x34')](db[_0xe22a('0x2d')][_0xe22a('0x2e')]);_0x49e8c1['query']=_[_0xe22a('0x34')](_0x5b8ac7[_0xe22a('0x33')]);_0x49e8c1[_0xe22a('0x35')]=_[_0xe22a('0x36')](_0x49e8c1['model'],_0x49e8c1[_0xe22a('0x33')]);_0x3928d8['attributes']=_[_0xe22a('0x36')](_0x49e8c1[_0xe22a('0x32')],qs[_0xe22a('0x38')](_0x5b8ac7['query'][_0xe22a('0x38')]));_0x3928d8['attributes']=_0x3928d8[_0xe22a('0x37')]['length']?_0x3928d8['attributes']:_0x49e8c1[_0xe22a('0x32')];if(_0x5b8ac7['query'][_0xe22a('0x43')]){_0x3928d8[_0xe22a('0x44')]=[{'all':!![]}];}_0x3928d8=_['merge']({},_0x3928d8,_0x5b8ac7[_0xe22a('0x47')]);return db['SquareOdbc']['find'](_0x3928d8)['then'](handleEntityNotFound(_0xbab1ae,null))['then'](respondWithResult(_0xbab1ae,null))[_0xe22a('0x48')](handleError(_0xbab1ae,null));};exports['create']=function(_0x3b987a,_0x14d08c){return db[_0xe22a('0x2d')]['create'](_0x3b987a[_0xe22a('0x49')],{})[_0xe22a('0x26')](function(_0x3ddd6c){var _0x2da44a=_0x3b987a[_0xe22a('0x4a')]['get']({'plain':!![]});if(!_0x2da44a)throw new Error(_0xe22a('0x4b'));if(_0x2da44a[_0xe22a('0x4c')]==='user'){var _0x2a3d6a=_0x3ddd6c[_0xe22a('0x28')]({'plain':!![]});var _0x582c46=_0xe22a('0x29');return db[_0xe22a('0x4d')]['find']({'where':{'name':_0x582c46,'userProfileId':_0x2da44a['userProfileId']},'raw':!![]})[_0xe22a('0x26')](function(_0x5dc23f){if(_0x5dc23f&&_0x5dc23f[_0xe22a('0x4e')]===0x0){return db[_0xe22a('0x4f')]['create']({'name':_0x2a3d6a[_0xe22a('0x2c')],'resourceId':_0x2a3d6a['id'],'type':_0x5dc23f['name'],'sectionId':_0x5dc23f['id']},{})[_0xe22a('0x26')](function(){return _0x3ddd6c;});}else{return _0x3ddd6c;}})[_0xe22a('0x48')](function(_0x43f917){logger[_0xe22a('0x2a')](_0xe22a('0x50'),_0x43f917);throw _0x43f917;});}return _0x3ddd6c;})['then'](respondWithResult(_0x14d08c,0xc9))[_0xe22a('0x48')](handleError(_0x14d08c,null));};exports['update']=function(_0x4e30a7,_0x1f4913){if(_0x4e30a7[_0xe22a('0x49')]['id']){delete _0x4e30a7['body']['id'];}return db[_0xe22a('0x2d')]['find']({'where':{'id':_0x4e30a7[_0xe22a('0x51')]['id']}})['then'](handleEntityNotFound(_0x1f4913,null))['then'](saveUpdates(_0x4e30a7['body'],null))[_0xe22a('0x26')](respondWithResult(_0x1f4913,null))[_0xe22a('0x48')](handleError(_0x1f4913,null));};exports[_0xe22a('0x27')]=function(_0x12298a,_0x5623d1){return db[_0xe22a('0x2d')][_0xe22a('0x52')]({'where':{'id':_0x12298a[_0xe22a('0x51')]['id']}})[_0xe22a('0x26')](handleEntityNotFound(_0x5623d1,null))['then'](removeEntity(_0x5623d1,null))[_0xe22a('0x48')](handleError(_0x5623d1,null));};exports['test']=function(_0x6ffc32,_0x16a9a9,_0x162dbc){var _0x5b0080;return db['SquareOdbc']['find']({'where':{'id':_0x6ffc32[_0xe22a('0x51')]['id']},'attributes':['id',_0xe22a('0x53')]})[_0xe22a('0x26')](handleEntityNotFound(_0x16a9a9,null))['then'](function(_0x201d6a){if(_0x201d6a){var _0x2bbc57=require(_0xe22a('0x54'))();_0x2bbc57[_0xe22a('0x55')](_0x201d6a[_0xe22a('0x53')]);_0x2bbc57[_0xe22a('0x56')]();return _0x201d6a;}})['then'](respondWithResult(_0x16a9a9,null))['catch'](handleError(_0x16a9a9,null));};