Built motion from commit fade34fd.|2.5.41
[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 _0x391c=['moment','bluebird','mustache','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','json','apply','reject','save','update','destroy','get','UserProfileResource','then','error','stack','name','send','index','SquareOdbc','rawAttributes','fieldName','map','query','keys','intersection','attributes','model','fields','length','nolimit','order','sort','where','filters','VIRTUAL','merge','options','includeAll','include','catch','params','find','create','body','user','role','ODBC','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','test','dsn','closeSync','eml-format','rimraf','zip-dir','request-promise'];(function(_0x119a68,_0x35b727){var _0xbbaa14=function(_0x576b66){while(--_0x576b66){_0x119a68['push'](_0x119a68['shift']());}};_0xbbaa14(++_0x35b727);}(_0x391c,0x1f4));var _0xc391=function(_0x20093c,_0x5383da){_0x20093c=_0x20093c-0x0;var _0x4e3911=_0x391c[_0x20093c];return _0x4e3911;};'use strict';var emlformat=require(_0xc391('0x0'));var rimraf=require(_0xc391('0x1'));var zipdir=require(_0xc391('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xc391('0x3'));var moment=require(_0xc391('0x4'));var BPromise=require(_0xc391('0x5'));var Mustache=require(_0xc391('0x6'));var util=require('util');var path=require(_0xc391('0x7'));var sox=require(_0xc391('0x8'));var csv=require(_0xc391('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xc391('0xa'));var _=require(_0xc391('0xb'));var squel=require(_0xc391('0xc'));var crypto=require(_0xc391('0xd'));var jsforce=require(_0xc391('0xe'));var deskjs=require('desk.js');var toCsv=require(_0xc391('0x9'));var querystring=require(_0xc391('0xf'));var Papa=require(_0xc391('0x10'));var Redis=require(_0xc391('0x11'));var authService=require(_0xc391('0x12'));var qs=require(_0xc391('0x13'));var as=require(_0xc391('0x14'));var hardwareService=require(_0xc391('0x15'));var logger=require(_0xc391('0x16'))('api');var utils=require('../../config/utils');var config=require(_0xc391('0x17'));var licenseUtil=require(_0xc391('0x18'));var db=require(_0xc391('0x19'))['db'];function respondWithStatusCode(_0x4b95a2,_0x3a2c62){_0x3a2c62=_0x3a2c62||0xcc;return function(_0x182e9e){if(_0x182e9e){return _0x4b95a2[_0xc391('0x1a')](_0x3a2c62);}return _0x4b95a2[_0xc391('0x1b')](_0x3a2c62)[_0xc391('0x1c')]();};}function respondWithResult(_0x21896d,_0x116600){_0x116600=_0x116600||0xc8;return function(_0xb3594b){if(_0xb3594b){return _0x21896d[_0xc391('0x1b')](_0x116600)['json'](_0xb3594b);}};}function respondWithFilteredResult(_0x4d4b2f,_0x2d6b38){return function(_0x40ef8c){if(_0x40ef8c){var _0x216782=typeof _0x2d6b38[_0xc391('0x1d')]===_0xc391('0x1e')&&typeof _0x2d6b38[_0xc391('0x1f')]===_0xc391('0x1e');var _0x2604d5=_0x40ef8c[_0xc391('0x20')];var _0x2ecdfe=_0x216782?0x0:_0x2d6b38[_0xc391('0x1d')];var _0x2a0a8c=_0x216782?_0x40ef8c['count']:_0x2d6b38[_0xc391('0x1d')]+_0x2d6b38[_0xc391('0x1f')];var _0x133d63;if(_0x2a0a8c>=_0x2604d5){_0x2a0a8c=_0x2604d5;_0x133d63=0xc8;}else{_0x133d63=0xce;}_0x4d4b2f['status'](_0x133d63);return _0x4d4b2f[_0xc391('0x21')](_0xc391('0x22'),_0x2ecdfe+'-'+_0x2a0a8c+'/'+_0x2604d5)[_0xc391('0x23')](_0x40ef8c);}return null;};}function patchUpdates(_0x6dd3ab){return function(_0x514576){try{jsonpatch[_0xc391('0x24')](_0x514576,_0x6dd3ab,!![]);}catch(_0x82a9eb){return BPromise[_0xc391('0x25')](_0x82a9eb);}return _0x514576[_0xc391('0x26')]();};}function saveUpdates(_0x575e66,_0x5c7868){return function(_0x100096){if(_0x100096){return _0x100096[_0xc391('0x27')](_0x575e66)['then'](function(_0x1b6176){return _0x1b6176;});}return null;};}function removeEntity(_0x128834,_0x379c18){return function(_0x970fd7){if(_0x970fd7){return _0x970fd7[_0xc391('0x28')]()['then'](function(){var _0x35589a=_0x970fd7[_0xc391('0x29')]({'plain':!![]});var _0x5d0b31='ODBC';return db[_0xc391('0x2a')][_0xc391('0x28')]({'where':{'type':_0x5d0b31,'resourceId':_0x35589a['id']}})[_0xc391('0x2b')](function(){return _0x970fd7;});})[_0xc391('0x2b')](function(){_0x128834['status'](0xcc)[_0xc391('0x1c')]();});}};}function handleEntityNotFound(_0x33a3c0,_0x85d5ec){return function(_0xf348d1){if(!_0xf348d1){_0x33a3c0[_0xc391('0x1a')](0x194);}return _0xf348d1;};}function handleError(_0x4f9f20,_0x3a258e){_0x3a258e=_0x3a258e||0x1f4;return function(_0x5f14bf){logger[_0xc391('0x2c')](_0x5f14bf[_0xc391('0x2d')]);if(_0x5f14bf[_0xc391('0x2e')]){delete _0x5f14bf[_0xc391('0x2e')];}_0x4f9f20['status'](_0x3a258e)[_0xc391('0x2f')](_0x5f14bf);};}exports[_0xc391('0x30')]=function(_0xf17f72,_0x4283ed){var _0x43beb1={},_0x366b25={},_0x393b34={'count':0x0,'rows':[]};var _0x88892e=_['map'](db[_0xc391('0x31')][_0xc391('0x32')],function(_0x1e728d){return{'name':_0x1e728d[_0xc391('0x33')],'type':_0x1e728d['type']['key']};});_0x366b25['model']=_[_0xc391('0x34')](_0x88892e,'name');_0x366b25[_0xc391('0x35')]=_[_0xc391('0x36')](_0xf17f72['query']);_0x366b25['filters']=_[_0xc391('0x37')](_0x366b25['model'],_0x366b25['query']);_0x43beb1[_0xc391('0x38')]=_[_0xc391('0x37')](_0x366b25[_0xc391('0x39')],qs[_0xc391('0x3a')](_0xf17f72['query'][_0xc391('0x3a')]));_0x43beb1[_0xc391('0x38')]=_0x43beb1[_0xc391('0x38')][_0xc391('0x3b')]?_0x43beb1['attributes']:_0x366b25[_0xc391('0x39')];if(!_0xf17f72[_0xc391('0x35')]['hasOwnProperty'](_0xc391('0x3c'))){_0x43beb1['limit']=qs[_0xc391('0x1f')](_0xf17f72['query'][_0xc391('0x1f')]);_0x43beb1[_0xc391('0x1d')]=qs['offset'](_0xf17f72[_0xc391('0x35')]['offset']);}_0x43beb1[_0xc391('0x3d')]=qs[_0xc391('0x3e')](_0xf17f72[_0xc391('0x35')][_0xc391('0x3e')]);_0x43beb1[_0xc391('0x3f')]=qs[_0xc391('0x40')](_['pick'](_0xf17f72[_0xc391('0x35')],_0x366b25[_0xc391('0x40')]),_0x88892e);if(_0xf17f72[_0xc391('0x35')]['filter']){_0x43beb1['where']=_['merge'](_0x43beb1[_0xc391('0x3f')],{'$or':_[_0xc391('0x34')](_0x88892e,function(_0x245732){if(_0x245732['type']!==_0xc391('0x41')){var _0x4b8c4d={};_0x4b8c4d[_0x245732[_0xc391('0x2e')]]={'$like':'%'+_0xf17f72[_0xc391('0x35')]['filter']+'%'};return _0x4b8c4d;}})});}_0x43beb1=_[_0xc391('0x42')]({},_0x43beb1,_0xf17f72[_0xc391('0x43')]);var _0x5d9f04={'where':_0x43beb1[_0xc391('0x3f')]};return db[_0xc391('0x31')][_0xc391('0x20')](_0x5d9f04)[_0xc391('0x2b')](function(_0x54a364){_0x393b34['count']=_0x54a364;if(_0xf17f72[_0xc391('0x35')][_0xc391('0x44')]){_0x43beb1[_0xc391('0x45')]=[{'all':!![]}];}return db[_0xc391('0x31')]['findAll'](_0x43beb1);})[_0xc391('0x2b')](function(_0x554ee9){_0x393b34['rows']=_0x554ee9;return _0x393b34;})[_0xc391('0x2b')](respondWithFilteredResult(_0x4283ed,_0x43beb1))[_0xc391('0x46')](handleError(_0x4283ed,null));};exports['show']=function(_0x1c9eb4,_0x50ec82){var _0x4f3a78={'raw':!![],'where':{'id':_0x1c9eb4[_0xc391('0x47')]['id']}},_0x3b2b9b={};_0x3b2b9b['model']=_[_0xc391('0x36')](db['SquareOdbc'][_0xc391('0x32')]);_0x3b2b9b[_0xc391('0x35')]=_[_0xc391('0x36')](_0x1c9eb4['query']);_0x3b2b9b[_0xc391('0x40')]=_[_0xc391('0x37')](_0x3b2b9b[_0xc391('0x39')],_0x3b2b9b[_0xc391('0x35')]);_0x4f3a78['attributes']=_[_0xc391('0x37')](_0x3b2b9b['model'],qs[_0xc391('0x3a')](_0x1c9eb4[_0xc391('0x35')][_0xc391('0x3a')]));_0x4f3a78[_0xc391('0x38')]=_0x4f3a78[_0xc391('0x38')][_0xc391('0x3b')]?_0x4f3a78[_0xc391('0x38')]:_0x3b2b9b[_0xc391('0x39')];if(_0x1c9eb4[_0xc391('0x35')][_0xc391('0x44')]){_0x4f3a78[_0xc391('0x45')]=[{'all':!![]}];}_0x4f3a78=_[_0xc391('0x42')]({},_0x4f3a78,_0x1c9eb4[_0xc391('0x43')]);return db['SquareOdbc'][_0xc391('0x48')](_0x4f3a78)[_0xc391('0x2b')](handleEntityNotFound(_0x50ec82,null))['then'](respondWithResult(_0x50ec82,null))['catch'](handleError(_0x50ec82,null));};exports[_0xc391('0x49')]=function(_0x4d1e2e,_0x18ca02){return db[_0xc391('0x31')][_0xc391('0x49')](_0x4d1e2e[_0xc391('0x4a')],{})[_0xc391('0x2b')](function(_0x6823d9){var _0x196f32=_0x4d1e2e[_0xc391('0x4b')]['get']({'plain':!![]});if(!_0x196f32)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x196f32[_0xc391('0x4c')]===_0xc391('0x4b')){var _0x4a30eb=_0x6823d9[_0xc391('0x29')]({'plain':!![]});var _0x8f1db8=_0xc391('0x4d');return db['UserProfileSection'][_0xc391('0x48')]({'where':{'name':_0x8f1db8,'userProfileId':_0x196f32[_0xc391('0x4e')]},'raw':!![]})['then'](function(_0x400346){if(_0x400346&&_0x400346[_0xc391('0x4f')]===0x0){return db[_0xc391('0x2a')][_0xc391('0x49')]({'name':_0x4a30eb[_0xc391('0x2e')],'resourceId':_0x4a30eb['id'],'type':_0x400346['name'],'sectionId':_0x400346['id']},{})[_0xc391('0x2b')](function(){return _0x6823d9;});}else{return _0x6823d9;}})['catch'](function(_0x521c04){logger[_0xc391('0x2c')](_0xc391('0x50'),_0x521c04);throw _0x521c04;});}return _0x6823d9;})['then'](respondWithResult(_0x18ca02,0xc9))[_0xc391('0x46')](handleError(_0x18ca02,null));};exports[_0xc391('0x27')]=function(_0x2d85f5,_0x16445a){if(_0x2d85f5[_0xc391('0x4a')]['id']){delete _0x2d85f5[_0xc391('0x4a')]['id'];}return db['SquareOdbc'][_0xc391('0x48')]({'where':{'id':_0x2d85f5[_0xc391('0x47')]['id']}})[_0xc391('0x2b')](handleEntityNotFound(_0x16445a,null))[_0xc391('0x2b')](saveUpdates(_0x2d85f5[_0xc391('0x4a')],null))[_0xc391('0x2b')](respondWithResult(_0x16445a,null))[_0xc391('0x46')](handleError(_0x16445a,null));};exports[_0xc391('0x28')]=function(_0x1e7d94,_0x11d336){return db[_0xc391('0x31')]['find']({'where':{'id':_0x1e7d94[_0xc391('0x47')]['id']}})[_0xc391('0x2b')](handleEntityNotFound(_0x11d336,null))[_0xc391('0x2b')](removeEntity(_0x11d336,null))[_0xc391('0x46')](handleError(_0x11d336,null));};exports[_0xc391('0x51')]=function(_0x4fa9d3,_0x3b7f16,_0x2f8bfb){var _0x4e703e;return db[_0xc391('0x31')]['find']({'where':{'id':_0x4fa9d3[_0xc391('0x47')]['id']},'attributes':['id',_0xc391('0x52')]})[_0xc391('0x2b')](handleEntityNotFound(_0x3b7f16,null))[_0xc391('0x2b')](function(_0x590c12){if(_0x590c12){var _0x13d0df=require('odbc')();_0x13d0df['openSync'](_0x590c12[_0xc391('0x52')]);_0x13d0df[_0xc391('0x53')]();return _0x590c12;}})['then'](respondWithResult(_0x3b7f16,null))['catch'](handleError(_0x3b7f16,null));};