Built motion from commit f74363e9.|2.6.34
[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 _0x72b5=['querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/utils','../../config/environment','../../mysqldb','json','offset','undefined','limit','count','status','set','Content-Range','apply','reject','save','update','then','get','ODBC','UserProfileResource','destroy','sendStatus','error','stack','index','map','SquareOdbc','fieldName','type','model','name','query','filters','attributes','intersection','fields','length','hasOwnProperty','order','sort','where','pick','filter','options','includeAll','include','findAll','rows','catch','params','keys','rawAttributes','merge','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','userProfileId','test','dsn','odbc','openSync','closeSync','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','crypto','jsforce','to-csv'];(function(_0x2ce9c3,_0x1444f9){var _0xc89661=function(_0x1c1190){while(--_0x1c1190){_0x2ce9c3['push'](_0x2ce9c3['shift']());}};_0xc89661(++_0x1444f9);}(_0x72b5,0x149));var _0x572b=function(_0x28b8f7,_0x541e55){_0x28b8f7=_0x28b8f7-0x0;var _0x176f3b=_0x72b5[_0x28b8f7];return _0x176f3b;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x572b('0x0'));var zipdir=require(_0x572b('0x1'));var jsonpatch=require(_0x572b('0x2'));var rp=require(_0x572b('0x3'));var moment=require('moment');var BPromise=require(_0x572b('0x4'));var Mustache=require(_0x572b('0x5'));var util=require(_0x572b('0x6'));var path=require(_0x572b('0x7'));var sox=require(_0x572b('0x8'));var csv=require('to-csv');var ejs=require(_0x572b('0x9'));var fs=require('fs');var fs_extra=require(_0x572b('0xa'));var _=require(_0x572b('0xb'));var squel=require('squel');var crypto=require(_0x572b('0xc'));var jsforce=require(_0x572b('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x572b('0xe'));var querystring=require(_0x572b('0xf'));var Papa=require(_0x572b('0x10'));var Redis=require(_0x572b('0x11'));var authService=require(_0x572b('0x12'));var qs=require(_0x572b('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x572b('0x14'));var logger=require('../../config/logger')('api');var utils=require(_0x572b('0x15'));var config=require(_0x572b('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0x572b('0x17'))['db'];function respondWithStatusCode(_0x108915,_0x2b6cab){_0x2b6cab=_0x2b6cab||0xcc;return function(_0xdbd151){if(_0xdbd151){return _0x108915['sendStatus'](_0x2b6cab);}return _0x108915['status'](_0x2b6cab)['end']();};}function respondWithResult(_0x5ae698,_0x137b43){_0x137b43=_0x137b43||0xc8;return function(_0x198bba){if(_0x198bba){return _0x5ae698['status'](_0x137b43)[_0x572b('0x18')](_0x198bba);}};}function respondWithFilteredResult(_0x4977e5,_0x36c0d4){return function(_0x4e641c){if(_0x4e641c){var _0x2a8452=typeof _0x36c0d4[_0x572b('0x19')]===_0x572b('0x1a')&&typeof _0x36c0d4[_0x572b('0x1b')]===_0x572b('0x1a');var _0x2aa345=_0x4e641c[_0x572b('0x1c')];var _0x50bf49=_0x2a8452?0x0:_0x36c0d4[_0x572b('0x19')];var _0x4f659c=_0x2a8452?_0x4e641c[_0x572b('0x1c')]:_0x36c0d4[_0x572b('0x19')]+_0x36c0d4[_0x572b('0x1b')];var _0x2a8b64;if(_0x4f659c>=_0x2aa345){_0x4f659c=_0x2aa345;_0x2a8b64=0xc8;}else{_0x2a8b64=0xce;}_0x4977e5[_0x572b('0x1d')](_0x2a8b64);return _0x4977e5[_0x572b('0x1e')](_0x572b('0x1f'),_0x50bf49+'-'+_0x4f659c+'/'+_0x2aa345)['json'](_0x4e641c);}return null;};}function patchUpdates(_0x1171e5){return function(_0x4e765e){try{jsonpatch[_0x572b('0x20')](_0x4e765e,_0x1171e5,!![]);}catch(_0x541c5c){return BPromise[_0x572b('0x21')](_0x541c5c);}return _0x4e765e[_0x572b('0x22')]();};}function saveUpdates(_0x22922c,_0x59cf2e){return function(_0x312e5c){if(_0x312e5c){return _0x312e5c[_0x572b('0x23')](_0x22922c)[_0x572b('0x24')](function(_0xfa283c){return _0xfa283c;});}return null;};}function removeEntity(_0x2a2ff7,_0x82ce87){return function(_0x51238b){if(_0x51238b){return _0x51238b['destroy']()[_0x572b('0x24')](function(){var _0x2f860f=_0x51238b[_0x572b('0x25')]({'plain':!![]});var _0x1c23dc=_0x572b('0x26');return db[_0x572b('0x27')][_0x572b('0x28')]({'where':{'type':_0x1c23dc,'resourceId':_0x2f860f['id']}})[_0x572b('0x24')](function(){return _0x51238b;});})[_0x572b('0x24')](function(){_0x2a2ff7[_0x572b('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x42e58f,_0x2cd68b){return function(_0x54f901){if(!_0x54f901){_0x42e58f[_0x572b('0x29')](0x194);}return _0x54f901;};}function handleError(_0x2df4b0,_0x5f3670){_0x5f3670=_0x5f3670||0x1f4;return function(_0x3888a5){logger[_0x572b('0x2a')](_0x3888a5[_0x572b('0x2b')]);if(_0x3888a5['name']){delete _0x3888a5['name'];}_0x2df4b0[_0x572b('0x1d')](_0x5f3670)['send'](_0x3888a5);};}exports[_0x572b('0x2c')]=function(_0x347b6a,_0xbbffee){var _0x4206ad={},_0x2f79cf={},_0x7bccd2={'count':0x0,'rows':[]};var _0x4b42b7=_[_0x572b('0x2d')](db[_0x572b('0x2e')]['rawAttributes'],function(_0x314817){return{'name':_0x314817[_0x572b('0x2f')],'type':_0x314817[_0x572b('0x30')]['key']};});_0x2f79cf[_0x572b('0x31')]=_[_0x572b('0x2d')](_0x4b42b7,_0x572b('0x32'));_0x2f79cf[_0x572b('0x33')]=_['keys'](_0x347b6a[_0x572b('0x33')]);_0x2f79cf[_0x572b('0x34')]=_['intersection'](_0x2f79cf[_0x572b('0x31')],_0x2f79cf[_0x572b('0x33')]);_0x4206ad[_0x572b('0x35')]=_[_0x572b('0x36')](_0x2f79cf[_0x572b('0x31')],qs['fields'](_0x347b6a[_0x572b('0x33')][_0x572b('0x37')]));_0x4206ad[_0x572b('0x35')]=_0x4206ad['attributes'][_0x572b('0x38')]?_0x4206ad[_0x572b('0x35')]:_0x2f79cf[_0x572b('0x31')];if(!_0x347b6a[_0x572b('0x33')][_0x572b('0x39')]('nolimit')){_0x4206ad[_0x572b('0x1b')]=qs['limit'](_0x347b6a[_0x572b('0x33')]['limit']);_0x4206ad['offset']=qs[_0x572b('0x19')](_0x347b6a[_0x572b('0x33')][_0x572b('0x19')]);}_0x4206ad[_0x572b('0x3a')]=qs['sort'](_0x347b6a['query'][_0x572b('0x3b')]);_0x4206ad[_0x572b('0x3c')]=qs[_0x572b('0x34')](_[_0x572b('0x3d')](_0x347b6a[_0x572b('0x33')],_0x2f79cf[_0x572b('0x34')]),_0x4b42b7);if(_0x347b6a[_0x572b('0x33')][_0x572b('0x3e')]){_0x4206ad['where']=_['merge'](_0x4206ad['where'],{'$or':_[_0x572b('0x2d')](_0x4b42b7,function(_0x3af109){if(_0x3af109[_0x572b('0x30')]!=='VIRTUAL'){var _0x49a478={};_0x49a478[_0x3af109[_0x572b('0x32')]]={'$like':'%'+_0x347b6a[_0x572b('0x33')][_0x572b('0x3e')]+'%'};return _0x49a478;}})});}_0x4206ad=_['merge']({},_0x4206ad,_0x347b6a[_0x572b('0x3f')]);var _0x2669f3={'where':_0x4206ad[_0x572b('0x3c')]};return db[_0x572b('0x2e')]['count'](_0x2669f3)[_0x572b('0x24')](function(_0xd6a84d){_0x7bccd2['count']=_0xd6a84d;if(_0x347b6a[_0x572b('0x33')][_0x572b('0x40')]){_0x4206ad[_0x572b('0x41')]=[{'all':!![]}];}return db['SquareOdbc'][_0x572b('0x42')](_0x4206ad);})[_0x572b('0x24')](function(_0x82413d){_0x7bccd2[_0x572b('0x43')]=_0x82413d;return _0x7bccd2;})[_0x572b('0x24')](respondWithFilteredResult(_0xbbffee,_0x4206ad))[_0x572b('0x44')](handleError(_0xbbffee,null));};exports['show']=function(_0x5f53d5,_0x5e047e){var _0x47ab30={'raw':!![],'where':{'id':_0x5f53d5[_0x572b('0x45')]['id']}},_0x4d90b6={};_0x4d90b6[_0x572b('0x31')]=_[_0x572b('0x46')](db[_0x572b('0x2e')][_0x572b('0x47')]);_0x4d90b6[_0x572b('0x33')]=_[_0x572b('0x46')](_0x5f53d5[_0x572b('0x33')]);_0x4d90b6[_0x572b('0x34')]=_[_0x572b('0x36')](_0x4d90b6[_0x572b('0x31')],_0x4d90b6['query']);_0x47ab30[_0x572b('0x35')]=_['intersection'](_0x4d90b6[_0x572b('0x31')],qs['fields'](_0x5f53d5[_0x572b('0x33')]['fields']));_0x47ab30[_0x572b('0x35')]=_0x47ab30['attributes'][_0x572b('0x38')]?_0x47ab30[_0x572b('0x35')]:_0x4d90b6['model'];if(_0x5f53d5['query'][_0x572b('0x40')]){_0x47ab30[_0x572b('0x41')]=[{'all':!![]}];}_0x47ab30=_[_0x572b('0x48')]({},_0x47ab30,_0x5f53d5[_0x572b('0x3f')]);return db[_0x572b('0x2e')][_0x572b('0x49')](_0x47ab30)[_0x572b('0x24')](handleEntityNotFound(_0x5e047e,null))[_0x572b('0x24')](respondWithResult(_0x5e047e,null))[_0x572b('0x44')](handleError(_0x5e047e,null));};exports[_0x572b('0x4a')]=function(_0x1c7b6c,_0x32e573){return db[_0x572b('0x2e')][_0x572b('0x4a')](_0x1c7b6c[_0x572b('0x4b')],{})['then'](function(_0x3898af){var _0x5c1443=_0x1c7b6c['user'][_0x572b('0x25')]({'plain':!![]});if(!_0x5c1443)throw new Error(_0x572b('0x4c'));if(_0x5c1443[_0x572b('0x4d')]===_0x572b('0x4e')){var _0x3eb2d5=_0x3898af[_0x572b('0x25')]({'plain':!![]});var _0x558b6b=_0x572b('0x26');return db[_0x572b('0x4f')][_0x572b('0x49')]({'where':{'name':_0x558b6b,'userProfileId':_0x5c1443[_0x572b('0x50')]},'raw':!![]})[_0x572b('0x24')](function(_0xe5942f){if(_0xe5942f&&_0xe5942f['autoAssociation']===0x0){return db[_0x572b('0x27')][_0x572b('0x4a')]({'name':_0x3eb2d5[_0x572b('0x32')],'resourceId':_0x3eb2d5['id'],'type':_0xe5942f[_0x572b('0x32')],'sectionId':_0xe5942f['id']},{})[_0x572b('0x24')](function(){return _0x3898af;});}else{return _0x3898af;}})[_0x572b('0x44')](function(_0x24ba70){logger[_0x572b('0x2a')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x24ba70);throw _0x24ba70;});}return _0x3898af;})[_0x572b('0x24')](respondWithResult(_0x32e573,0xc9))[_0x572b('0x44')](handleError(_0x32e573,null));};exports[_0x572b('0x23')]=function(_0x42084d,_0x5aea16){if(_0x42084d[_0x572b('0x4b')]['id']){delete _0x42084d['body']['id'];}return db[_0x572b('0x2e')][_0x572b('0x49')]({'where':{'id':_0x42084d[_0x572b('0x45')]['id']}})[_0x572b('0x24')](handleEntityNotFound(_0x5aea16,null))[_0x572b('0x24')](saveUpdates(_0x42084d[_0x572b('0x4b')],null))['then'](respondWithResult(_0x5aea16,null))[_0x572b('0x44')](handleError(_0x5aea16,null));};exports['destroy']=function(_0x2c42e1,_0x14c861){return db[_0x572b('0x2e')]['find']({'where':{'id':_0x2c42e1['params']['id']}})[_0x572b('0x24')](handleEntityNotFound(_0x14c861,null))['then'](removeEntity(_0x14c861,null))['catch'](handleError(_0x14c861,null));};exports[_0x572b('0x51')]=function(_0x21b740,_0x2e6f19,_0x2b5941){var _0x5d6ae5;return db['SquareOdbc'][_0x572b('0x49')]({'where':{'id':_0x21b740[_0x572b('0x45')]['id']},'attributes':['id',_0x572b('0x52')]})['then'](handleEntityNotFound(_0x2e6f19,null))['then'](function(_0x3f0563){if(_0x3f0563){var _0xe98cac=require(_0x572b('0x53'))();_0xe98cac[_0x572b('0x54')](_0x3f0563[_0x572b('0x52')]);_0xe98cac[_0x572b('0x55')]();return _0x3f0563;}})[_0x572b('0x24')](respondWithResult(_0x2e6f19,null))[_0x572b('0x44')](handleError(_0x2e6f19,null));};