029c55b09d521c518bda1bfb425e8a65a4f2d785
[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 _0x7fac=['key','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','type','VIRTUAL','filter','options','count','includeAll','include','rows','show','params','model','find','catch','create','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','body','test','dsn','openSync','closeSync','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','path','sox','to-csv','fs-extra','lodash','squel','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','set','Content-Range','apply','reject','then','destroy','get','ODBC','UserProfileResource','end','error','stack','name','send','index','map','SquareOdbc','rawAttributes','fieldName'];(function(_0x30fe20,_0x497c46){var _0xba73a7=function(_0x559bc2){while(--_0x559bc2){_0x30fe20['push'](_0x30fe20['shift']());}};_0xba73a7(++_0x497c46);}(_0x7fac,0x137));var _0xc7fa=function(_0x4ae625,_0xf396d0){_0x4ae625=_0x4ae625-0x0;var _0x31accf=_0x7fac[_0x4ae625];return _0x31accf;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xc7fa('0x0'));var zipdir=require(_0xc7fa('0x1'));var jsonpatch=require(_0xc7fa('0x2'));var rp=require(_0xc7fa('0x3'));var moment=require(_0xc7fa('0x4'));var BPromise=require(_0xc7fa('0x5'));var Mustache=require('mustache');var util=require('util');var path=require(_0xc7fa('0x6'));var sox=require(_0xc7fa('0x7'));var csv=require(_0xc7fa('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xc7fa('0x9'));var _=require(_0xc7fa('0xa'));var squel=require(_0xc7fa('0xb'));var crypto=require('crypto');var jsforce=require(_0xc7fa('0xc'));var deskjs=require(_0xc7fa('0xd'));var toCsv=require(_0xc7fa('0x8'));var querystring=require(_0xc7fa('0xe'));var Papa=require('papaparse');var Redis=require(_0xc7fa('0xf'));var authService=require(_0xc7fa('0x10'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xc7fa('0x11'));var logger=require(_0xc7fa('0x12'))(_0xc7fa('0x13'));var utils=require(_0xc7fa('0x14'));var config=require(_0xc7fa('0x15'));var licenseUtil=require(_0xc7fa('0x16'));var db=require(_0xc7fa('0x17'))['db'];function respondWithStatusCode(_0x535398,_0x343dd3){_0x343dd3=_0x343dd3||0xcc;return function(_0x46d97a){if(_0x46d97a){return _0x535398[_0xc7fa('0x18')](_0x343dd3);}return _0x535398[_0xc7fa('0x19')](_0x343dd3)['end']();};}function respondWithResult(_0x1a9e99,_0x4c3208){_0x4c3208=_0x4c3208||0xc8;return function(_0x31b8e4){if(_0x31b8e4){return _0x1a9e99[_0xc7fa('0x19')](_0x4c3208)[_0xc7fa('0x1a')](_0x31b8e4);}};}function respondWithFilteredResult(_0x2caea6,_0x45f008){return function(_0x1c494e){if(_0x1c494e){var _0xe82b99=typeof _0x45f008[_0xc7fa('0x1b')]===_0xc7fa('0x1c')&&typeof _0x45f008[_0xc7fa('0x1d')]==='undefined';var _0x224333=_0x1c494e['count'];var _0x4e74a2=_0xe82b99?0x0:_0x45f008['offset'];var _0x222f98=_0xe82b99?_0x1c494e['count']:_0x45f008['offset']+_0x45f008[_0xc7fa('0x1d')];var _0x21ac05;if(_0x222f98>=_0x224333){_0x222f98=_0x224333;_0x21ac05=0xc8;}else{_0x21ac05=0xce;}_0x2caea6['status'](_0x21ac05);return _0x2caea6[_0xc7fa('0x1e')](_0xc7fa('0x1f'),_0x4e74a2+'-'+_0x222f98+'/'+_0x224333)[_0xc7fa('0x1a')](_0x1c494e);}return null;};}function patchUpdates(_0x268ce5){return function(_0x13e577){try{jsonpatch[_0xc7fa('0x20')](_0x13e577,_0x268ce5,!![]);}catch(_0x4acd44){return BPromise[_0xc7fa('0x21')](_0x4acd44);}return _0x13e577['save']();};}function saveUpdates(_0x25e1a5,_0x3ce301){return function(_0x144da8){if(_0x144da8){return _0x144da8['update'](_0x25e1a5)[_0xc7fa('0x22')](function(_0x58047e){return _0x58047e;});}return null;};}function removeEntity(_0x367778,_0x2835cd){return function(_0x63cc2f){if(_0x63cc2f){return _0x63cc2f[_0xc7fa('0x23')]()[_0xc7fa('0x22')](function(){var _0xce78dd=_0x63cc2f[_0xc7fa('0x24')]({'plain':!![]});var _0x157cb4=_0xc7fa('0x25');return db[_0xc7fa('0x26')][_0xc7fa('0x23')]({'where':{'type':_0x157cb4,'resourceId':_0xce78dd['id']}})[_0xc7fa('0x22')](function(){return _0x63cc2f;});})[_0xc7fa('0x22')](function(){_0x367778[_0xc7fa('0x19')](0xcc)[_0xc7fa('0x27')]();});}};}function handleEntityNotFound(_0x861939,_0x44f46e){return function(_0x4c43aa){if(!_0x4c43aa){_0x861939[_0xc7fa('0x18')](0x194);}return _0x4c43aa;};}function handleError(_0x1bab69,_0x276230){_0x276230=_0x276230||0x1f4;return function(_0x1741a8){logger[_0xc7fa('0x28')](_0x1741a8[_0xc7fa('0x29')]);if(_0x1741a8[_0xc7fa('0x2a')]){delete _0x1741a8[_0xc7fa('0x2a')];}_0x1bab69[_0xc7fa('0x19')](_0x276230)[_0xc7fa('0x2b')](_0x1741a8);};}exports[_0xc7fa('0x2c')]=function(_0x1249a7,_0x55d024){var _0x12dc55={},_0x4ef065={},_0x17b4bf={'count':0x0,'rows':[]};var _0x37a103=_[_0xc7fa('0x2d')](db[_0xc7fa('0x2e')][_0xc7fa('0x2f')],function(_0x2e2c8f){return{'name':_0x2e2c8f[_0xc7fa('0x30')],'type':_0x2e2c8f['type'][_0xc7fa('0x31')]};});_0x4ef065['model']=_[_0xc7fa('0x2d')](_0x37a103,'name');_0x4ef065[_0xc7fa('0x32')]=_[_0xc7fa('0x33')](_0x1249a7[_0xc7fa('0x32')]);_0x4ef065[_0xc7fa('0x34')]=_[_0xc7fa('0x35')](_0x4ef065['model'],_0x4ef065[_0xc7fa('0x32')]);_0x12dc55['attributes']=_[_0xc7fa('0x35')](_0x4ef065['model'],qs['fields'](_0x1249a7[_0xc7fa('0x32')][_0xc7fa('0x36')]));_0x12dc55[_0xc7fa('0x37')]=_0x12dc55[_0xc7fa('0x37')][_0xc7fa('0x38')]?_0x12dc55['attributes']:_0x4ef065['model'];if(!_0x1249a7['query'][_0xc7fa('0x39')](_0xc7fa('0x3a'))){_0x12dc55[_0xc7fa('0x1d')]=qs[_0xc7fa('0x1d')](_0x1249a7[_0xc7fa('0x32')][_0xc7fa('0x1d')]);_0x12dc55[_0xc7fa('0x1b')]=qs[_0xc7fa('0x1b')](_0x1249a7['query'][_0xc7fa('0x1b')]);}_0x12dc55[_0xc7fa('0x3b')]=qs[_0xc7fa('0x3c')](_0x1249a7['query'][_0xc7fa('0x3c')]);_0x12dc55[_0xc7fa('0x3d')]=qs[_0xc7fa('0x34')](_[_0xc7fa('0x3e')](_0x1249a7['query'],_0x4ef065[_0xc7fa('0x34')]),_0x37a103);if(_0x1249a7[_0xc7fa('0x32')]['filter']){_0x12dc55[_0xc7fa('0x3d')]=_[_0xc7fa('0x3f')](_0x12dc55['where'],{'$or':_[_0xc7fa('0x2d')](_0x37a103,function(_0x5fe7eb){if(_0x5fe7eb[_0xc7fa('0x40')]!==_0xc7fa('0x41')){var _0x1a68c1={};_0x1a68c1[_0x5fe7eb['name']]={'$like':'%'+_0x1249a7[_0xc7fa('0x32')][_0xc7fa('0x42')]+'%'};return _0x1a68c1;}})});}_0x12dc55=_['merge']({},_0x12dc55,_0x1249a7[_0xc7fa('0x43')]);var _0x2feca7={'where':_0x12dc55[_0xc7fa('0x3d')]};return db['SquareOdbc'][_0xc7fa('0x44')](_0x2feca7)[_0xc7fa('0x22')](function(_0x383b09){_0x17b4bf[_0xc7fa('0x44')]=_0x383b09;if(_0x1249a7[_0xc7fa('0x32')][_0xc7fa('0x45')]){_0x12dc55[_0xc7fa('0x46')]=[{'all':!![]}];}return db['SquareOdbc']['findAll'](_0x12dc55);})[_0xc7fa('0x22')](function(_0x156005){_0x17b4bf[_0xc7fa('0x47')]=_0x156005;return _0x17b4bf;})['then'](respondWithFilteredResult(_0x55d024,_0x12dc55))['catch'](handleError(_0x55d024,null));};exports[_0xc7fa('0x48')]=function(_0x4f92b0,_0x2504b2){var _0x1b0d9d={'raw':!![],'where':{'id':_0x4f92b0[_0xc7fa('0x49')]['id']}},_0x54f626={};_0x54f626['model']=_[_0xc7fa('0x33')](db[_0xc7fa('0x2e')]['rawAttributes']);_0x54f626['query']=_[_0xc7fa('0x33')](_0x4f92b0[_0xc7fa('0x32')]);_0x54f626['filters']=_[_0xc7fa('0x35')](_0x54f626[_0xc7fa('0x4a')],_0x54f626[_0xc7fa('0x32')]);_0x1b0d9d[_0xc7fa('0x37')]=_[_0xc7fa('0x35')](_0x54f626[_0xc7fa('0x4a')],qs[_0xc7fa('0x36')](_0x4f92b0[_0xc7fa('0x32')][_0xc7fa('0x36')]));_0x1b0d9d[_0xc7fa('0x37')]=_0x1b0d9d[_0xc7fa('0x37')][_0xc7fa('0x38')]?_0x1b0d9d[_0xc7fa('0x37')]:_0x54f626[_0xc7fa('0x4a')];if(_0x4f92b0[_0xc7fa('0x32')]['includeAll']){_0x1b0d9d[_0xc7fa('0x46')]=[{'all':!![]}];}_0x1b0d9d=_[_0xc7fa('0x3f')]({},_0x1b0d9d,_0x4f92b0[_0xc7fa('0x43')]);return db[_0xc7fa('0x2e')][_0xc7fa('0x4b')](_0x1b0d9d)[_0xc7fa('0x22')](handleEntityNotFound(_0x2504b2,null))[_0xc7fa('0x22')](respondWithResult(_0x2504b2,null))[_0xc7fa('0x4c')](handleError(_0x2504b2,null));};exports['create']=function(_0x1a7920,_0x134545){return db[_0xc7fa('0x2e')][_0xc7fa('0x4d')](_0x1a7920['body'],{})[_0xc7fa('0x22')](function(_0x37c193){var _0x54180f=_0x1a7920['user']['get']({'plain':!![]});if(!_0x54180f)throw new Error(_0xc7fa('0x4e'));if(_0x54180f[_0xc7fa('0x4f')]===_0xc7fa('0x50')){var _0x1f4d0e=_0x37c193[_0xc7fa('0x24')]({'plain':!![]});var _0x105660=_0xc7fa('0x25');return db['UserProfileSection'][_0xc7fa('0x4b')]({'where':{'name':_0x105660,'userProfileId':_0x54180f[_0xc7fa('0x51')]},'raw':!![]})[_0xc7fa('0x22')](function(_0xbfbc08){if(_0xbfbc08&&_0xbfbc08[_0xc7fa('0x52')]===0x0){return db[_0xc7fa('0x26')][_0xc7fa('0x4d')]({'name':_0x1f4d0e['name'],'resourceId':_0x1f4d0e['id'],'type':_0xbfbc08[_0xc7fa('0x2a')],'sectionId':_0xbfbc08['id']},{})[_0xc7fa('0x22')](function(){return _0x37c193;});}else{return _0x37c193;}})[_0xc7fa('0x4c')](function(_0x26e930){logger['error'](_0xc7fa('0x53'),_0x26e930);throw _0x26e930;});}return _0x37c193;})['then'](respondWithResult(_0x134545,0xc9))[_0xc7fa('0x4c')](handleError(_0x134545,null));};exports[_0xc7fa('0x54')]=function(_0x161a53,_0x36e1c6){if(_0x161a53['body']['id']){delete _0x161a53[_0xc7fa('0x55')]['id'];}return db[_0xc7fa('0x2e')][_0xc7fa('0x4b')]({'where':{'id':_0x161a53[_0xc7fa('0x49')]['id']}})[_0xc7fa('0x22')](handleEntityNotFound(_0x36e1c6,null))[_0xc7fa('0x22')](saveUpdates(_0x161a53[_0xc7fa('0x55')],null))[_0xc7fa('0x22')](respondWithResult(_0x36e1c6,null))[_0xc7fa('0x4c')](handleError(_0x36e1c6,null));};exports[_0xc7fa('0x23')]=function(_0x3d7325,_0x5095fe){return db[_0xc7fa('0x2e')]['find']({'where':{'id':_0x3d7325[_0xc7fa('0x49')]['id']}})[_0xc7fa('0x22')](handleEntityNotFound(_0x5095fe,null))[_0xc7fa('0x22')](removeEntity(_0x5095fe,null))[_0xc7fa('0x4c')](handleError(_0x5095fe,null));};exports[_0xc7fa('0x56')]=function(_0x2afc0b,_0xe1ac19,_0x2b5008){var _0x2c4402;return db['SquareOdbc']['find']({'where':{'id':_0x2afc0b[_0xc7fa('0x49')]['id']},'attributes':['id',_0xc7fa('0x57')]})[_0xc7fa('0x22')](handleEntityNotFound(_0xe1ac19,null))[_0xc7fa('0x22')](function(_0x15c7ac){if(_0x15c7ac){var _0x5b7278=require('odbc')();_0x5b7278[_0xc7fa('0x58')](_0x15c7ac['dsn']);_0x5b7278[_0xc7fa('0x59')]();return _0x15c7ac;}})[_0xc7fa('0x22')](respondWithResult(_0xe1ac19,null))['catch'](handleError(_0xe1ac19,null));};