e8c861414bbae6cdc46442a62a9b6d7c1967aaf9
[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 _0x17ef=['../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','undefined','limit','count','offset','Content-Range','json','apply','reject','save','then','get','ODBC','UserProfileResource','error','stack','name','send','map','SquareOdbc','fieldName','type','query','keys','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','VIRTUAL','merge','includeAll','findAll','rows','show','params','rawAttributes','include','options','catch','create','body','user','role','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','test','find','dsn','closeSync','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis'];(function(_0x19201b,_0x216e48){var _0x2a13e2=function(_0x35112f){while(--_0x35112f){_0x19201b['push'](_0x19201b['shift']());}};_0x2a13e2(++_0x216e48);}(_0x17ef,0x15c));var _0xf17e=function(_0x54bbf0,_0x218cef){_0x54bbf0=_0x54bbf0-0x0;var _0x1e54ac=_0x17ef[_0x54bbf0];return _0x1e54ac;};'use strict';var emlformat=require(_0xf17e('0x0'));var rimraf=require(_0xf17e('0x1'));var zipdir=require(_0xf17e('0x2'));var jsonpatch=require(_0xf17e('0x3'));var rp=require(_0xf17e('0x4'));var moment=require(_0xf17e('0x5'));var BPromise=require(_0xf17e('0x6'));var Mustache=require('mustache');var util=require(_0xf17e('0x7'));var path=require(_0xf17e('0x8'));var sox=require(_0xf17e('0x9'));var csv=require(_0xf17e('0xa'));var ejs=require(_0xf17e('0xb'));var fs=require('fs');var fs_extra=require(_0xf17e('0xc'));var _=require(_0xf17e('0xd'));var squel=require(_0xf17e('0xe'));var crypto=require(_0xf17e('0xf'));var jsforce=require('jsforce');var deskjs=require(_0xf17e('0x10'));var toCsv=require('to-csv');var querystring=require(_0xf17e('0x11'));var Papa=require(_0xf17e('0x12'));var Redis=require(_0xf17e('0x13'));var authService=require(_0xf17e('0x14'));var qs=require(_0xf17e('0x15'));var as=require(_0xf17e('0x16'));var hardwareService=require(_0xf17e('0x17'));var logger=require(_0xf17e('0x18'))(_0xf17e('0x19'));var utils=require(_0xf17e('0x1a'));var config=require(_0xf17e('0x1b'));var licenseUtil=require(_0xf17e('0x1c'));var db=require(_0xf17e('0x1d'))['db'];function respondWithStatusCode(_0x1970d9,_0x178e76){_0x178e76=_0x178e76||0xcc;return function(_0x2fe350){if(_0x2fe350){return _0x1970d9[_0xf17e('0x1e')](_0x178e76);}return _0x1970d9[_0xf17e('0x1f')](_0x178e76)[_0xf17e('0x20')]();};}function respondWithResult(_0x1771f8,_0x1ada4b){_0x1ada4b=_0x1ada4b||0xc8;return function(_0x102795){if(_0x102795){return _0x1771f8[_0xf17e('0x1f')](_0x1ada4b)['json'](_0x102795);}};}function respondWithFilteredResult(_0x3d6e41,_0x129a9d){return function(_0x5de417){if(_0x5de417){var _0x3fdd8f=typeof _0x129a9d['offset']===_0xf17e('0x21')&&typeof _0x129a9d[_0xf17e('0x22')]===_0xf17e('0x21');var _0x37486c=_0x5de417[_0xf17e('0x23')];var _0x47e777=_0x3fdd8f?0x0:_0x129a9d[_0xf17e('0x24')];var _0x32a080=_0x3fdd8f?_0x5de417['count']:_0x129a9d[_0xf17e('0x24')]+_0x129a9d[_0xf17e('0x22')];var _0xc29228;if(_0x32a080>=_0x37486c){_0x32a080=_0x37486c;_0xc29228=0xc8;}else{_0xc29228=0xce;}_0x3d6e41[_0xf17e('0x1f')](_0xc29228);return _0x3d6e41['set'](_0xf17e('0x25'),_0x47e777+'-'+_0x32a080+'/'+_0x37486c)[_0xf17e('0x26')](_0x5de417);}return null;};}function patchUpdates(_0x26e5d4){return function(_0xe4a86){try{jsonpatch[_0xf17e('0x27')](_0xe4a86,_0x26e5d4,!![]);}catch(_0x2719f2){return BPromise[_0xf17e('0x28')](_0x2719f2);}return _0xe4a86[_0xf17e('0x29')]();};}function saveUpdates(_0x13b5d5,_0xeeee4){return function(_0x46bd75){if(_0x46bd75){return _0x46bd75['update'](_0x13b5d5)['then'](function(_0x2a1185){return _0x2a1185;});}return null;};}function removeEntity(_0x4ff8d5,_0xa9b1eb){return function(_0x229187){if(_0x229187){return _0x229187['destroy']()[_0xf17e('0x2a')](function(){var _0x4071f4=_0x229187[_0xf17e('0x2b')]({'plain':!![]});var _0x198a7f=_0xf17e('0x2c');return db[_0xf17e('0x2d')]['destroy']({'where':{'type':_0x198a7f,'resourceId':_0x4071f4['id']}})['then'](function(){return _0x229187;});})[_0xf17e('0x2a')](function(){_0x4ff8d5[_0xf17e('0x1f')](0xcc)[_0xf17e('0x20')]();});}};}function handleEntityNotFound(_0x36ba7e,_0x5c75b3){return function(_0x21a468){if(!_0x21a468){_0x36ba7e[_0xf17e('0x1e')](0x194);}return _0x21a468;};}function handleError(_0x1573d7,_0x1bdd2a){_0x1bdd2a=_0x1bdd2a||0x1f4;return function(_0x5cc0d7){logger[_0xf17e('0x2e')](_0x5cc0d7[_0xf17e('0x2f')]);if(_0x5cc0d7['name']){delete _0x5cc0d7[_0xf17e('0x30')];}_0x1573d7[_0xf17e('0x1f')](_0x1bdd2a)[_0xf17e('0x31')](_0x5cc0d7);};}exports['index']=function(_0x6d7d7e,_0x1aaaa6){var _0x2418b3={},_0x16ddb9={},_0x275a58={'count':0x0,'rows':[]};var _0xe1fb8=_[_0xf17e('0x32')](db[_0xf17e('0x33')]['rawAttributes'],function(_0x314e55){return{'name':_0x314e55[_0xf17e('0x34')],'type':_0x314e55[_0xf17e('0x35')]['key']};});_0x16ddb9['model']=_['map'](_0xe1fb8,'name');_0x16ddb9[_0xf17e('0x36')]=_[_0xf17e('0x37')](_0x6d7d7e['query']);_0x16ddb9['filters']=_[_0xf17e('0x38')](_0x16ddb9[_0xf17e('0x39')],_0x16ddb9[_0xf17e('0x36')]);_0x2418b3[_0xf17e('0x3a')]=_[_0xf17e('0x38')](_0x16ddb9[_0xf17e('0x39')],qs[_0xf17e('0x3b')](_0x6d7d7e[_0xf17e('0x36')][_0xf17e('0x3b')]));_0x2418b3[_0xf17e('0x3a')]=_0x2418b3[_0xf17e('0x3a')][_0xf17e('0x3c')]?_0x2418b3[_0xf17e('0x3a')]:_0x16ddb9['model'];if(!_0x6d7d7e[_0xf17e('0x36')][_0xf17e('0x3d')](_0xf17e('0x3e'))){_0x2418b3[_0xf17e('0x22')]=qs[_0xf17e('0x22')](_0x6d7d7e[_0xf17e('0x36')]['limit']);_0x2418b3[_0xf17e('0x24')]=qs[_0xf17e('0x24')](_0x6d7d7e[_0xf17e('0x36')]['offset']);}_0x2418b3[_0xf17e('0x3f')]=qs[_0xf17e('0x40')](_0x6d7d7e['query']['sort']);_0x2418b3[_0xf17e('0x41')]=qs[_0xf17e('0x42')](_[_0xf17e('0x43')](_0x6d7d7e[_0xf17e('0x36')],_0x16ddb9[_0xf17e('0x42')]),_0xe1fb8);if(_0x6d7d7e[_0xf17e('0x36')][_0xf17e('0x44')]){_0x2418b3['where']=_['merge'](_0x2418b3[_0xf17e('0x41')],{'$or':_[_0xf17e('0x32')](_0xe1fb8,function(_0x4688a0){if(_0x4688a0[_0xf17e('0x35')]!==_0xf17e('0x45')){var _0x2f21e3={};_0x2f21e3[_0x4688a0[_0xf17e('0x30')]]={'$like':'%'+_0x6d7d7e[_0xf17e('0x36')][_0xf17e('0x44')]+'%'};return _0x2f21e3;}})});}_0x2418b3=_[_0xf17e('0x46')]({},_0x2418b3,_0x6d7d7e['options']);var _0x75c515={'where':_0x2418b3[_0xf17e('0x41')]};return db[_0xf17e('0x33')][_0xf17e('0x23')](_0x75c515)[_0xf17e('0x2a')](function(_0x3987d6){_0x275a58['count']=_0x3987d6;if(_0x6d7d7e['query'][_0xf17e('0x47')]){_0x2418b3['include']=[{'all':!![]}];}return db[_0xf17e('0x33')][_0xf17e('0x48')](_0x2418b3);})[_0xf17e('0x2a')](function(_0x4c15d7){_0x275a58[_0xf17e('0x49')]=_0x4c15d7;return _0x275a58;})[_0xf17e('0x2a')](respondWithFilteredResult(_0x1aaaa6,_0x2418b3))['catch'](handleError(_0x1aaaa6,null));};exports[_0xf17e('0x4a')]=function(_0x5644f1,_0x25040d){var _0x55e8f6={'raw':!![],'where':{'id':_0x5644f1[_0xf17e('0x4b')]['id']}},_0xb76414={};_0xb76414[_0xf17e('0x39')]=_[_0xf17e('0x37')](db[_0xf17e('0x33')][_0xf17e('0x4c')]);_0xb76414[_0xf17e('0x36')]=_['keys'](_0x5644f1[_0xf17e('0x36')]);_0xb76414[_0xf17e('0x42')]=_['intersection'](_0xb76414[_0xf17e('0x39')],_0xb76414[_0xf17e('0x36')]);_0x55e8f6['attributes']=_['intersection'](_0xb76414[_0xf17e('0x39')],qs['fields'](_0x5644f1[_0xf17e('0x36')][_0xf17e('0x3b')]));_0x55e8f6[_0xf17e('0x3a')]=_0x55e8f6['attributes'][_0xf17e('0x3c')]?_0x55e8f6['attributes']:_0xb76414['model'];if(_0x5644f1[_0xf17e('0x36')][_0xf17e('0x47')]){_0x55e8f6[_0xf17e('0x4d')]=[{'all':!![]}];}_0x55e8f6=_['merge']({},_0x55e8f6,_0x5644f1[_0xf17e('0x4e')]);return db[_0xf17e('0x33')]['find'](_0x55e8f6)[_0xf17e('0x2a')](handleEntityNotFound(_0x25040d,null))['then'](respondWithResult(_0x25040d,null))[_0xf17e('0x4f')](handleError(_0x25040d,null));};exports['create']=function(_0x1729f1,_0x11d2f3){return db['SquareOdbc'][_0xf17e('0x50')](_0x1729f1[_0xf17e('0x51')],{})[_0xf17e('0x2a')](function(_0x24286c){var _0x2beb5a=_0x1729f1[_0xf17e('0x52')]['get']({'plain':!![]});if(!_0x2beb5a)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x2beb5a[_0xf17e('0x53')]===_0xf17e('0x52')){var _0x548d88=_0x24286c[_0xf17e('0x2b')]({'plain':!![]});var _0x1139b1=_0xf17e('0x2c');return db['UserProfileSection']['find']({'where':{'name':_0x1139b1,'userProfileId':_0x2beb5a[_0xf17e('0x54')]},'raw':!![]})[_0xf17e('0x2a')](function(_0x43f706){if(_0x43f706&&_0x43f706[_0xf17e('0x55')]===0x0){return db[_0xf17e('0x2d')][_0xf17e('0x50')]({'name':_0x548d88['name'],'resourceId':_0x548d88['id'],'type':_0x43f706[_0xf17e('0x30')],'sectionId':_0x43f706['id']},{})['then'](function(){return _0x24286c;});}else{return _0x24286c;}})[_0xf17e('0x4f')](function(_0x4ce532){logger[_0xf17e('0x2e')](_0xf17e('0x56'),_0x4ce532);throw _0x4ce532;});}return _0x24286c;})[_0xf17e('0x2a')](respondWithResult(_0x11d2f3,0xc9))[_0xf17e('0x4f')](handleError(_0x11d2f3,null));};exports[_0xf17e('0x57')]=function(_0x33e984,_0xc36672){if(_0x33e984[_0xf17e('0x51')]['id']){delete _0x33e984[_0xf17e('0x51')]['id'];}return db[_0xf17e('0x33')]['find']({'where':{'id':_0x33e984[_0xf17e('0x4b')]['id']}})[_0xf17e('0x2a')](handleEntityNotFound(_0xc36672,null))[_0xf17e('0x2a')](saveUpdates(_0x33e984['body'],null))['then'](respondWithResult(_0xc36672,null))[_0xf17e('0x4f')](handleError(_0xc36672,null));};exports['destroy']=function(_0x4da487,_0x185911){return db['SquareOdbc']['find']({'where':{'id':_0x4da487[_0xf17e('0x4b')]['id']}})['then'](handleEntityNotFound(_0x185911,null))[_0xf17e('0x2a')](removeEntity(_0x185911,null))['catch'](handleError(_0x185911,null));};exports[_0xf17e('0x58')]=function(_0xb3a7f3,_0x3ba65f,_0x592265){var _0x8a2638;return db[_0xf17e('0x33')][_0xf17e('0x59')]({'where':{'id':_0xb3a7f3[_0xf17e('0x4b')]['id']},'attributes':['id',_0xf17e('0x5a')]})[_0xf17e('0x2a')](handleEntityNotFound(_0x3ba65f,null))[_0xf17e('0x2a')](function(_0x50ad07){if(_0x50ad07){var _0x228405=require('odbc')();_0x228405['openSync'](_0x50ad07['dsn']);_0x228405[_0xf17e('0x5b')]();return _0x50ad07;}})[_0xf17e('0x2a')](respondWithResult(_0x3ba65f,null))[_0xf17e('0x4f')](handleError(_0x3ba65f,null));};