Built motion from commit c0cdc9d8.|2.6.28
[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 _0x0af5=['fast-json-patch','moment','bluebird','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','set','apply','reject','save','update','then','destroy','get','UserProfileResource','end','error','stack','name','send','map','SquareOdbc','fieldName','type','key','query','keys','filters','model','attributes','intersection','fields','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','count','includeAll','include','findAll','show','params','rawAttributes','length','find','catch','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','dsn','closeSync','rimraf','zip-dir'];(function(_0x19d4f7,_0x41145f){var _0x3772fa=function(_0x2b1cbc){while(--_0x2b1cbc){_0x19d4f7['push'](_0x19d4f7['shift']());}};_0x3772fa(++_0x41145f);}(_0x0af5,0xa8));var _0x50af=function(_0x110d47,_0xa70e64){_0x110d47=_0x110d47-0x0;var _0x10c084=_0x0af5[_0x110d47];return _0x10c084;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x50af('0x0'));var zipdir=require(_0x50af('0x1'));var jsonpatch=require(_0x50af('0x2'));var rp=require('request-promise');var moment=require(_0x50af('0x3'));var BPromise=require(_0x50af('0x4'));var Mustache=require('mustache');var util=require('util');var path=require(_0x50af('0x5'));var sox=require('sox');var csv=require(_0x50af('0x6'));var ejs=require(_0x50af('0x7'));var fs=require('fs');var fs_extra=require(_0x50af('0x8'));var _=require(_0x50af('0x9'));var squel=require(_0x50af('0xa'));var crypto=require(_0x50af('0xb'));var jsforce=require(_0x50af('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x50af('0x6'));var querystring=require(_0x50af('0xd'));var Papa=require(_0x50af('0xe'));var Redis=require('ioredis');var authService=require(_0x50af('0xf'));var qs=require(_0x50af('0x10'));var as=require(_0x50af('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x50af('0x12'))('api');var utils=require(_0x50af('0x13'));var config=require(_0x50af('0x14'));var licenseUtil=require(_0x50af('0x15'));var db=require(_0x50af('0x16'))['db'];function respondWithStatusCode(_0x41978e,_0x5e0d43){_0x5e0d43=_0x5e0d43||0xcc;return function(_0x36f4d0){if(_0x36f4d0){return _0x41978e[_0x50af('0x17')](_0x5e0d43);}return _0x41978e[_0x50af('0x18')](_0x5e0d43)['end']();};}function respondWithResult(_0x4f9e4b,_0x3f33f2){_0x3f33f2=_0x3f33f2||0xc8;return function(_0x165971){if(_0x165971){return _0x4f9e4b['status'](_0x3f33f2)[_0x50af('0x19')](_0x165971);}};}function respondWithFilteredResult(_0x35e35b,_0x2b0040){return function(_0x23ff2c){if(_0x23ff2c){var _0xb77ccb=typeof _0x2b0040[_0x50af('0x1a')]===_0x50af('0x1b')&&typeof _0x2b0040[_0x50af('0x1c')]==='undefined';var _0x4a99bd=_0x23ff2c['count'];var _0x178806=_0xb77ccb?0x0:_0x2b0040[_0x50af('0x1a')];var _0x2bbfb9=_0xb77ccb?_0x23ff2c['count']:_0x2b0040['offset']+_0x2b0040[_0x50af('0x1c')];var _0x807a3b;if(_0x2bbfb9>=_0x4a99bd){_0x2bbfb9=_0x4a99bd;_0x807a3b=0xc8;}else{_0x807a3b=0xce;}_0x35e35b['status'](_0x807a3b);return _0x35e35b[_0x50af('0x1d')]('Content-Range',_0x178806+'-'+_0x2bbfb9+'/'+_0x4a99bd)[_0x50af('0x19')](_0x23ff2c);}return null;};}function patchUpdates(_0x7744a){return function(_0x784e22){try{jsonpatch[_0x50af('0x1e')](_0x784e22,_0x7744a,!![]);}catch(_0x106b14){return BPromise[_0x50af('0x1f')](_0x106b14);}return _0x784e22[_0x50af('0x20')]();};}function saveUpdates(_0xc208f7,_0x41a00a){return function(_0x35708c){if(_0x35708c){return _0x35708c[_0x50af('0x21')](_0xc208f7)[_0x50af('0x22')](function(_0x2b6892){return _0x2b6892;});}return null;};}function removeEntity(_0x2447b0,_0x2afea2){return function(_0x42c14e){if(_0x42c14e){return _0x42c14e[_0x50af('0x23')]()[_0x50af('0x22')](function(){var _0x1e8eb1=_0x42c14e[_0x50af('0x24')]({'plain':!![]});var _0x2d4add='ODBC';return db[_0x50af('0x25')][_0x50af('0x23')]({'where':{'type':_0x2d4add,'resourceId':_0x1e8eb1['id']}})[_0x50af('0x22')](function(){return _0x42c14e;});})[_0x50af('0x22')](function(){_0x2447b0[_0x50af('0x18')](0xcc)[_0x50af('0x26')]();});}};}function handleEntityNotFound(_0x4d001e,_0x4cab40){return function(_0x19ca89){if(!_0x19ca89){_0x4d001e[_0x50af('0x17')](0x194);}return _0x19ca89;};}function handleError(_0x362889,_0x27f75b){_0x27f75b=_0x27f75b||0x1f4;return function(_0x464bb3){logger[_0x50af('0x27')](_0x464bb3[_0x50af('0x28')]);if(_0x464bb3[_0x50af('0x29')]){delete _0x464bb3[_0x50af('0x29')];}_0x362889[_0x50af('0x18')](_0x27f75b)[_0x50af('0x2a')](_0x464bb3);};}exports['index']=function(_0x361b82,_0x51fd04){var _0x2dc8c1={},_0x17e28b={},_0xf9488={'count':0x0,'rows':[]};var _0x2cc277=_[_0x50af('0x2b')](db[_0x50af('0x2c')]['rawAttributes'],function(_0x20e983){return{'name':_0x20e983[_0x50af('0x2d')],'type':_0x20e983[_0x50af('0x2e')][_0x50af('0x2f')]};});_0x17e28b['model']=_[_0x50af('0x2b')](_0x2cc277,'name');_0x17e28b[_0x50af('0x30')]=_[_0x50af('0x31')](_0x361b82['query']);_0x17e28b[_0x50af('0x32')]=_['intersection'](_0x17e28b[_0x50af('0x33')],_0x17e28b[_0x50af('0x30')]);_0x2dc8c1[_0x50af('0x34')]=_[_0x50af('0x35')](_0x17e28b[_0x50af('0x33')],qs[_0x50af('0x36')](_0x361b82[_0x50af('0x30')]['fields']));_0x2dc8c1[_0x50af('0x34')]=_0x2dc8c1[_0x50af('0x34')]['length']?_0x2dc8c1[_0x50af('0x34')]:_0x17e28b['model'];if(!_0x361b82[_0x50af('0x30')]['hasOwnProperty'](_0x50af('0x37'))){_0x2dc8c1['limit']=qs[_0x50af('0x1c')](_0x361b82[_0x50af('0x30')]['limit']);_0x2dc8c1[_0x50af('0x1a')]=qs[_0x50af('0x1a')](_0x361b82[_0x50af('0x30')][_0x50af('0x1a')]);}_0x2dc8c1[_0x50af('0x38')]=qs[_0x50af('0x39')](_0x361b82['query']['sort']);_0x2dc8c1[_0x50af('0x3a')]=qs[_0x50af('0x32')](_[_0x50af('0x3b')](_0x361b82[_0x50af('0x30')],_0x17e28b[_0x50af('0x32')]),_0x2cc277);if(_0x361b82[_0x50af('0x30')][_0x50af('0x3c')]){_0x2dc8c1['where']=_[_0x50af('0x3d')](_0x2dc8c1[_0x50af('0x3a')],{'$or':_[_0x50af('0x2b')](_0x2cc277,function(_0x5aa382){if(_0x5aa382['type']!==_0x50af('0x3e')){var _0x1cbbad={};_0x1cbbad[_0x5aa382[_0x50af('0x29')]]={'$like':'%'+_0x361b82['query'][_0x50af('0x3c')]+'%'};return _0x1cbbad;}})});}_0x2dc8c1=_[_0x50af('0x3d')]({},_0x2dc8c1,_0x361b82[_0x50af('0x3f')]);var _0x131b05={'where':_0x2dc8c1[_0x50af('0x3a')]};return db[_0x50af('0x2c')][_0x50af('0x40')](_0x131b05)[_0x50af('0x22')](function(_0x4c2cc0){_0xf9488[_0x50af('0x40')]=_0x4c2cc0;if(_0x361b82[_0x50af('0x30')][_0x50af('0x41')]){_0x2dc8c1[_0x50af('0x42')]=[{'all':!![]}];}return db[_0x50af('0x2c')][_0x50af('0x43')](_0x2dc8c1);})[_0x50af('0x22')](function(_0x2b5a5c){_0xf9488['rows']=_0x2b5a5c;return _0xf9488;})[_0x50af('0x22')](respondWithFilteredResult(_0x51fd04,_0x2dc8c1))['catch'](handleError(_0x51fd04,null));};exports[_0x50af('0x44')]=function(_0x1a6ad2,_0x41aae1){var _0x5c6dd4={'raw':!![],'where':{'id':_0x1a6ad2[_0x50af('0x45')]['id']}},_0x48781e={};_0x48781e[_0x50af('0x33')]=_[_0x50af('0x31')](db[_0x50af('0x2c')][_0x50af('0x46')]);_0x48781e[_0x50af('0x30')]=_[_0x50af('0x31')](_0x1a6ad2[_0x50af('0x30')]);_0x48781e['filters']=_['intersection'](_0x48781e[_0x50af('0x33')],_0x48781e['query']);_0x5c6dd4[_0x50af('0x34')]=_['intersection'](_0x48781e['model'],qs[_0x50af('0x36')](_0x1a6ad2[_0x50af('0x30')][_0x50af('0x36')]));_0x5c6dd4[_0x50af('0x34')]=_0x5c6dd4[_0x50af('0x34')][_0x50af('0x47')]?_0x5c6dd4['attributes']:_0x48781e['model'];if(_0x1a6ad2['query'][_0x50af('0x41')]){_0x5c6dd4[_0x50af('0x42')]=[{'all':!![]}];}_0x5c6dd4=_[_0x50af('0x3d')]({},_0x5c6dd4,_0x1a6ad2[_0x50af('0x3f')]);return db[_0x50af('0x2c')][_0x50af('0x48')](_0x5c6dd4)[_0x50af('0x22')](handleEntityNotFound(_0x41aae1,null))[_0x50af('0x22')](respondWithResult(_0x41aae1,null))[_0x50af('0x49')](handleError(_0x41aae1,null));};exports['create']=function(_0x275f71,_0x271c91){return db[_0x50af('0x2c')][_0x50af('0x4a')](_0x275f71[_0x50af('0x4b')],{})[_0x50af('0x22')](function(_0x2ca0ee){var _0x46136a=_0x275f71[_0x50af('0x4c')][_0x50af('0x24')]({'plain':!![]});if(!_0x46136a)throw new Error(_0x50af('0x4d'));if(_0x46136a[_0x50af('0x4e')]==='user'){var _0xae8c41=_0x2ca0ee['get']({'plain':!![]});var _0x4d1e1c='ODBC';return db[_0x50af('0x4f')][_0x50af('0x48')]({'where':{'name':_0x4d1e1c,'userProfileId':_0x46136a[_0x50af('0x50')]},'raw':!![]})['then'](function(_0x5a3e56){if(_0x5a3e56&&_0x5a3e56[_0x50af('0x51')]===0x0){return db[_0x50af('0x25')][_0x50af('0x4a')]({'name':_0xae8c41['name'],'resourceId':_0xae8c41['id'],'type':_0x5a3e56[_0x50af('0x29')],'sectionId':_0x5a3e56['id']},{})[_0x50af('0x22')](function(){return _0x2ca0ee;});}else{return _0x2ca0ee;}})['catch'](function(_0x130315){logger['error'](_0x50af('0x52'),_0x130315);throw _0x130315;});}return _0x2ca0ee;})[_0x50af('0x22')](respondWithResult(_0x271c91,0xc9))[_0x50af('0x49')](handleError(_0x271c91,null));};exports[_0x50af('0x21')]=function(_0x23a63f,_0x221c18){if(_0x23a63f['body']['id']){delete _0x23a63f[_0x50af('0x4b')]['id'];}return db[_0x50af('0x2c')]['find']({'where':{'id':_0x23a63f[_0x50af('0x45')]['id']}})[_0x50af('0x22')](handleEntityNotFound(_0x221c18,null))[_0x50af('0x22')](saveUpdates(_0x23a63f[_0x50af('0x4b')],null))[_0x50af('0x22')](respondWithResult(_0x221c18,null))['catch'](handleError(_0x221c18,null));};exports[_0x50af('0x23')]=function(_0x46f62a,_0x38a787){return db['SquareOdbc'][_0x50af('0x48')]({'where':{'id':_0x46f62a[_0x50af('0x45')]['id']}})[_0x50af('0x22')](handleEntityNotFound(_0x38a787,null))[_0x50af('0x22')](removeEntity(_0x38a787,null))[_0x50af('0x49')](handleError(_0x38a787,null));};exports['test']=function(_0x186a40,_0x2e18b0,_0x4ebedf){var _0x2c8588;return db[_0x50af('0x2c')][_0x50af('0x48')]({'where':{'id':_0x186a40[_0x50af('0x45')]['id']},'attributes':['id','dsn']})[_0x50af('0x22')](handleEntityNotFound(_0x2e18b0,null))[_0x50af('0x22')](function(_0x418b47){if(_0x418b47){var _0x44da16=require('odbc')();_0x44da16['openSync'](_0x418b47[_0x50af('0x53')]);_0x44da16[_0x50af('0x54')]();return _0x418b47;}})[_0x50af('0x22')](respondWithResult(_0x2e18b0,null))['catch'](handleError(_0x2e18b0,null));};