557d54af691207b31278cce58e725fac44c12bb3
[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 _0x525c=['../../config/environment','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','Content-Range','apply','reject','then','get','ODBC','UserProfileResource','end','error','stack','send','index','SquareOdbc','type','key','model','map','name','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','sort','filter','where','VIRTUAL','merge','options','includeAll','include','findAll','rows','catch','show','params','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','destroy','test','dsn','odbc','openSync','closeSync','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','squel','jsforce','desk.js','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils'];(function(_0x4de33f,_0x19073d){var _0x233727=function(_0xec0ba8){while(--_0xec0ba8){_0x4de33f['push'](_0x4de33f['shift']());}};_0x233727(++_0x19073d);}(_0x525c,0xea));var _0xc525=function(_0x468b0f,_0x408566){_0x468b0f=_0x468b0f-0x0;var _0x3e74d9=_0x525c[_0x468b0f];return _0x3e74d9;};'use strict';var emlformat=require(_0xc525('0x0'));var rimraf=require(_0xc525('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xc525('0x2'));var rp=require('request-promise');var moment=require(_0xc525('0x3'));var BPromise=require(_0xc525('0x4'));var Mustache=require(_0xc525('0x5'));var util=require(_0xc525('0x6'));var path=require('path');var sox=require(_0xc525('0x7'));var csv=require(_0xc525('0x8'));var ejs=require(_0xc525('0x9'));var fs=require('fs');var fs_extra=require(_0xc525('0xa'));var _=require('lodash');var squel=require(_0xc525('0xb'));var crypto=require('crypto');var jsforce=require(_0xc525('0xc'));var deskjs=require(_0xc525('0xd'));var toCsv=require(_0xc525('0x8'));var querystring=require(_0xc525('0xe'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xc525('0xf'));var qs=require(_0xc525('0x10'));var as=require(_0xc525('0x11'));var hardwareService=require(_0xc525('0x12'));var logger=require('../../config/logger')(_0xc525('0x13'));var utils=require(_0xc525('0x14'));var config=require(_0xc525('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0xc525('0x16'))['db'];function respondWithStatusCode(_0x41ef7e,_0x5d53fe){_0x5d53fe=_0x5d53fe||0xcc;return function(_0x3742c5){if(_0x3742c5){return _0x41ef7e[_0xc525('0x17')](_0x5d53fe);}return _0x41ef7e['status'](_0x5d53fe)['end']();};}function respondWithResult(_0x5eb0be,_0x3dbb84){_0x3dbb84=_0x3dbb84||0xc8;return function(_0x57aad0){if(_0x57aad0){return _0x5eb0be[_0xc525('0x18')](_0x3dbb84)[_0xc525('0x19')](_0x57aad0);}};}function respondWithFilteredResult(_0x5c0076,_0x3c5d52){return function(_0x5da569){if(_0x5da569){var _0x2e365f=typeof _0x3c5d52[_0xc525('0x1a')]===_0xc525('0x1b')&&typeof _0x3c5d52[_0xc525('0x1c')]===_0xc525('0x1b');var _0xf6db57=_0x5da569[_0xc525('0x1d')];var _0x42335a=_0x2e365f?0x0:_0x3c5d52[_0xc525('0x1a')];var _0x446950=_0x2e365f?_0x5da569[_0xc525('0x1d')]:_0x3c5d52[_0xc525('0x1a')]+_0x3c5d52[_0xc525('0x1c')];var _0xc86e7a;if(_0x446950>=_0xf6db57){_0x446950=_0xf6db57;_0xc86e7a=0xc8;}else{_0xc86e7a=0xce;}_0x5c0076['status'](_0xc86e7a);return _0x5c0076['set'](_0xc525('0x1e'),_0x42335a+'-'+_0x446950+'/'+_0xf6db57)[_0xc525('0x19')](_0x5da569);}return null;};}function patchUpdates(_0x58951d){return function(_0x215458){try{jsonpatch[_0xc525('0x1f')](_0x215458,_0x58951d,!![]);}catch(_0xe2c7ae){return BPromise[_0xc525('0x20')](_0xe2c7ae);}return _0x215458['save']();};}function saveUpdates(_0x5cbe16,_0x124c8c){return function(_0x2f9873){if(_0x2f9873){return _0x2f9873['update'](_0x5cbe16)[_0xc525('0x21')](function(_0x24a71c){return _0x24a71c;});}return null;};}function removeEntity(_0x4fffdb,_0x2e3f73){return function(_0x3cbde9){if(_0x3cbde9){return _0x3cbde9['destroy']()[_0xc525('0x21')](function(){var _0x28b6bb=_0x3cbde9[_0xc525('0x22')]({'plain':!![]});var _0x20975f=_0xc525('0x23');return db[_0xc525('0x24')]['destroy']({'where':{'type':_0x20975f,'resourceId':_0x28b6bb['id']}})[_0xc525('0x21')](function(){return _0x3cbde9;});})[_0xc525('0x21')](function(){_0x4fffdb[_0xc525('0x18')](0xcc)[_0xc525('0x25')]();});}};}function handleEntityNotFound(_0x408f9d,_0x2dd556){return function(_0x3b1da3){if(!_0x3b1da3){_0x408f9d[_0xc525('0x17')](0x194);}return _0x3b1da3;};}function handleError(_0x8747c3,_0x4a1260){_0x4a1260=_0x4a1260||0x1f4;return function(_0xcc391b){logger[_0xc525('0x26')](_0xcc391b[_0xc525('0x27')]);if(_0xcc391b['name']){delete _0xcc391b['name'];}_0x8747c3[_0xc525('0x18')](_0x4a1260)[_0xc525('0x28')](_0xcc391b);};}exports[_0xc525('0x29')]=function(_0x11c998,_0x18e942){var _0x19d58e={},_0x4bf254={},_0x3840eb={'count':0x0,'rows':[]};var _0xb9be8b=_['map'](db[_0xc525('0x2a')]['rawAttributes'],function(_0x4c4fab){return{'name':_0x4c4fab['fieldName'],'type':_0x4c4fab[_0xc525('0x2b')][_0xc525('0x2c')]};});_0x4bf254[_0xc525('0x2d')]=_[_0xc525('0x2e')](_0xb9be8b,_0xc525('0x2f'));_0x4bf254[_0xc525('0x30')]=_[_0xc525('0x31')](_0x11c998['query']);_0x4bf254[_0xc525('0x32')]=_[_0xc525('0x33')](_0x4bf254['model'],_0x4bf254['query']);_0x19d58e[_0xc525('0x34')]=_[_0xc525('0x33')](_0x4bf254['model'],qs[_0xc525('0x35')](_0x11c998[_0xc525('0x30')][_0xc525('0x35')]));_0x19d58e[_0xc525('0x34')]=_0x19d58e[_0xc525('0x34')][_0xc525('0x36')]?_0x19d58e[_0xc525('0x34')]:_0x4bf254[_0xc525('0x2d')];if(!_0x11c998[_0xc525('0x30')][_0xc525('0x37')]('nolimit')){_0x19d58e[_0xc525('0x1c')]=qs[_0xc525('0x1c')](_0x11c998[_0xc525('0x30')][_0xc525('0x1c')]);_0x19d58e['offset']=qs[_0xc525('0x1a')](_0x11c998[_0xc525('0x30')][_0xc525('0x1a')]);}_0x19d58e['order']=qs[_0xc525('0x38')](_0x11c998[_0xc525('0x30')]['sort']);_0x19d58e['where']=qs[_0xc525('0x32')](_['pick'](_0x11c998['query'],_0x4bf254[_0xc525('0x32')]),_0xb9be8b);if(_0x11c998[_0xc525('0x30')][_0xc525('0x39')]){_0x19d58e[_0xc525('0x3a')]=_['merge'](_0x19d58e['where'],{'$or':_[_0xc525('0x2e')](_0xb9be8b,function(_0x1a2fb6){if(_0x1a2fb6['type']!==_0xc525('0x3b')){var _0x32e2e1={};_0x32e2e1[_0x1a2fb6[_0xc525('0x2f')]]={'$like':'%'+_0x11c998['query'][_0xc525('0x39')]+'%'};return _0x32e2e1;}})});}_0x19d58e=_[_0xc525('0x3c')]({},_0x19d58e,_0x11c998[_0xc525('0x3d')]);var _0x312276={'where':_0x19d58e[_0xc525('0x3a')]};return db[_0xc525('0x2a')][_0xc525('0x1d')](_0x312276)['then'](function(_0x1659e3){_0x3840eb[_0xc525('0x1d')]=_0x1659e3;if(_0x11c998[_0xc525('0x30')][_0xc525('0x3e')]){_0x19d58e[_0xc525('0x3f')]=[{'all':!![]}];}return db[_0xc525('0x2a')][_0xc525('0x40')](_0x19d58e);})[_0xc525('0x21')](function(_0xe61034){_0x3840eb[_0xc525('0x41')]=_0xe61034;return _0x3840eb;})[_0xc525('0x21')](respondWithFilteredResult(_0x18e942,_0x19d58e))[_0xc525('0x42')](handleError(_0x18e942,null));};exports[_0xc525('0x43')]=function(_0x574312,_0x4d54b6){var _0x30e7e6={'raw':!![],'where':{'id':_0x574312[_0xc525('0x44')]['id']}},_0x33e375={};_0x33e375[_0xc525('0x2d')]=_[_0xc525('0x31')](db['SquareOdbc']['rawAttributes']);_0x33e375[_0xc525('0x30')]=_[_0xc525('0x31')](_0x574312[_0xc525('0x30')]);_0x33e375['filters']=_['intersection'](_0x33e375[_0xc525('0x2d')],_0x33e375[_0xc525('0x30')]);_0x30e7e6['attributes']=_[_0xc525('0x33')](_0x33e375[_0xc525('0x2d')],qs['fields'](_0x574312['query'][_0xc525('0x35')]));_0x30e7e6[_0xc525('0x34')]=_0x30e7e6[_0xc525('0x34')][_0xc525('0x36')]?_0x30e7e6[_0xc525('0x34')]:_0x33e375[_0xc525('0x2d')];if(_0x574312[_0xc525('0x30')][_0xc525('0x3e')]){_0x30e7e6['include']=[{'all':!![]}];}_0x30e7e6=_['merge']({},_0x30e7e6,_0x574312['options']);return db['SquareOdbc'][_0xc525('0x45')](_0x30e7e6)[_0xc525('0x21')](handleEntityNotFound(_0x4d54b6,null))[_0xc525('0x21')](respondWithResult(_0x4d54b6,null))[_0xc525('0x42')](handleError(_0x4d54b6,null));};exports[_0xc525('0x46')]=function(_0x2e4a12,_0x26df78){return db['SquareOdbc'][_0xc525('0x46')](_0x2e4a12[_0xc525('0x47')],{})['then'](function(_0x24e8c6){var _0x4504e9=_0x2e4a12[_0xc525('0x48')]['get']({'plain':!![]});if(!_0x4504e9)throw new Error(_0xc525('0x49'));if(_0x4504e9[_0xc525('0x4a')]===_0xc525('0x48')){var _0x21ff9b=_0x24e8c6[_0xc525('0x22')]({'plain':!![]});var _0x209958='ODBC';return db['UserProfileSection'][_0xc525('0x45')]({'where':{'name':_0x209958,'userProfileId':_0x4504e9[_0xc525('0x4b')]},'raw':!![]})[_0xc525('0x21')](function(_0x599a14){if(_0x599a14&&_0x599a14[_0xc525('0x4c')]===0x0){return db[_0xc525('0x24')][_0xc525('0x46')]({'name':_0x21ff9b[_0xc525('0x2f')],'resourceId':_0x21ff9b['id'],'type':_0x599a14[_0xc525('0x2f')],'sectionId':_0x599a14['id']},{})[_0xc525('0x21')](function(){return _0x24e8c6;});}else{return _0x24e8c6;}})['catch'](function(_0x520616){logger[_0xc525('0x26')](_0xc525('0x4d'),_0x520616);throw _0x520616;});}return _0x24e8c6;})[_0xc525('0x21')](respondWithResult(_0x26df78,0xc9))[_0xc525('0x42')](handleError(_0x26df78,null));};exports[_0xc525('0x4e')]=function(_0x463234,_0x169e4b){if(_0x463234[_0xc525('0x47')]['id']){delete _0x463234[_0xc525('0x47')]['id'];}return db[_0xc525('0x2a')]['find']({'where':{'id':_0x463234['params']['id']}})[_0xc525('0x21')](handleEntityNotFound(_0x169e4b,null))[_0xc525('0x21')](saveUpdates(_0x463234[_0xc525('0x47')],null))[_0xc525('0x21')](respondWithResult(_0x169e4b,null))[_0xc525('0x42')](handleError(_0x169e4b,null));};exports[_0xc525('0x4f')]=function(_0x16758d,_0x3d628b){return db[_0xc525('0x2a')][_0xc525('0x45')]({'where':{'id':_0x16758d[_0xc525('0x44')]['id']}})['then'](handleEntityNotFound(_0x3d628b,null))[_0xc525('0x21')](removeEntity(_0x3d628b,null))[_0xc525('0x42')](handleError(_0x3d628b,null));};exports[_0xc525('0x50')]=function(_0x3552c9,_0x26decc,_0x374424){var _0x3b9f4a;return db[_0xc525('0x2a')][_0xc525('0x45')]({'where':{'id':_0x3552c9[_0xc525('0x44')]['id']},'attributes':['id',_0xc525('0x51')]})[_0xc525('0x21')](handleEntityNotFound(_0x26decc,null))[_0xc525('0x21')](function(_0x5e091){if(_0x5e091){var _0x4383f0=require(_0xc525('0x52'))();_0x4383f0[_0xc525('0x53')](_0x5e091['dsn']);_0x4383f0[_0xc525('0x54')]();return _0x5e091;}})['then'](respondWithResult(_0x26decc,null))[_0xc525('0x42')](handleError(_0x26decc,null));};