e11d3e9374baa6576702b0ec7d1a13fe0026b8ca
[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 _0x06c4=['fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','offset','count','limit','set','Content-Range','json','apply','reject','save','update','destroy','then','get','ODBC','UserProfileResource','end','error','stack','name','send','index','map','rawAttributes','type','key','model','query','keys','intersection','attributes','fields','nolimit','order','sort','where','filters','pick','merge','VIRTUAL','filter','options','SquareOdbc','includeAll','include','rows','catch','show','params','length','create','role','user','UserProfileSection','find','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','test','dsn','odbc','closeSync','eml-format','zip-dir'];(function(_0x233760,_0x2c4e40){var _0x176144=function(_0x140ac5){while(--_0x140ac5){_0x233760['push'](_0x233760['shift']());}};_0x176144(++_0x2c4e40);}(_0x06c4,0x166));var _0x406c=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x06c4[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0x406c('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x406c('0x1'));var jsonpatch=require(_0x406c('0x2'));var rp=require('request-promise');var moment=require(_0x406c('0x3'));var BPromise=require(_0x406c('0x4'));var Mustache=require(_0x406c('0x5'));var util=require(_0x406c('0x6'));var path=require(_0x406c('0x7'));var sox=require(_0x406c('0x8'));var csv=require(_0x406c('0x9'));var ejs=require(_0x406c('0xa'));var fs=require('fs');var fs_extra=require(_0x406c('0xb'));var _=require(_0x406c('0xc'));var squel=require(_0x406c('0xd'));var crypto=require(_0x406c('0xe'));var jsforce=require('jsforce');var deskjs=require(_0x406c('0xf'));var toCsv=require(_0x406c('0x9'));var querystring=require(_0x406c('0x10'));var Papa=require('papaparse');var Redis=require(_0x406c('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x406c('0x12'));var as=require(_0x406c('0x13'));var hardwareService=require(_0x406c('0x14'));var logger=require(_0x406c('0x15'))(_0x406c('0x16'));var utils=require(_0x406c('0x17'));var config=require(_0x406c('0x18'));var licenseUtil=require(_0x406c('0x19'));var db=require(_0x406c('0x1a'))['db'];function respondWithStatusCode(_0x33217d,_0x223f0f){_0x223f0f=_0x223f0f||0xcc;return function(_0x384055){if(_0x384055){return _0x33217d[_0x406c('0x1b')](_0x223f0f);}return _0x33217d[_0x406c('0x1c')](_0x223f0f)['end']();};}function respondWithResult(_0x182fdd,_0x4010fa){_0x4010fa=_0x4010fa||0xc8;return function(_0x2f62c8){if(_0x2f62c8){return _0x182fdd['status'](_0x4010fa)['json'](_0x2f62c8);}};}function respondWithFilteredResult(_0x12e40f,_0x551966){return function(_0x4b4079){if(_0x4b4079){var _0x165766=typeof _0x551966[_0x406c('0x1d')]==='undefined'&&typeof _0x551966['limit']==='undefined';var _0x34c43a=_0x4b4079[_0x406c('0x1e')];var _0x16d7cf=_0x165766?0x0:_0x551966[_0x406c('0x1d')];var _0xcee4b6=_0x165766?_0x4b4079[_0x406c('0x1e')]:_0x551966[_0x406c('0x1d')]+_0x551966[_0x406c('0x1f')];var _0x5b4e5d;if(_0xcee4b6>=_0x34c43a){_0xcee4b6=_0x34c43a;_0x5b4e5d=0xc8;}else{_0x5b4e5d=0xce;}_0x12e40f[_0x406c('0x1c')](_0x5b4e5d);return _0x12e40f[_0x406c('0x20')](_0x406c('0x21'),_0x16d7cf+'-'+_0xcee4b6+'/'+_0x34c43a)[_0x406c('0x22')](_0x4b4079);}return null;};}function patchUpdates(_0x7e3cee){return function(_0x578de3){try{jsonpatch[_0x406c('0x23')](_0x578de3,_0x7e3cee,!![]);}catch(_0x54b4fe){return BPromise[_0x406c('0x24')](_0x54b4fe);}return _0x578de3[_0x406c('0x25')]();};}function saveUpdates(_0x45dc1c,_0x3b825b){return function(_0x16dd34){if(_0x16dd34){return _0x16dd34[_0x406c('0x26')](_0x45dc1c)['then'](function(_0x4aedb9){return _0x4aedb9;});}return null;};}function removeEntity(_0x8b79a,_0x27a39a){return function(_0x2aa6d1){if(_0x2aa6d1){return _0x2aa6d1[_0x406c('0x27')]()[_0x406c('0x28')](function(){var _0x3c263f=_0x2aa6d1[_0x406c('0x29')]({'plain':!![]});var _0x58b6e7=_0x406c('0x2a');return db[_0x406c('0x2b')][_0x406c('0x27')]({'where':{'type':_0x58b6e7,'resourceId':_0x3c263f['id']}})[_0x406c('0x28')](function(){return _0x2aa6d1;});})['then'](function(){_0x8b79a[_0x406c('0x1c')](0xcc)[_0x406c('0x2c')]();});}};}function handleEntityNotFound(_0x1fa02a,_0x25d151){return function(_0x564e75){if(!_0x564e75){_0x1fa02a[_0x406c('0x1b')](0x194);}return _0x564e75;};}function handleError(_0x249c61,_0x34b817){_0x34b817=_0x34b817||0x1f4;return function(_0xa7c9fc){logger[_0x406c('0x2d')](_0xa7c9fc[_0x406c('0x2e')]);if(_0xa7c9fc[_0x406c('0x2f')]){delete _0xa7c9fc[_0x406c('0x2f')];}_0x249c61[_0x406c('0x1c')](_0x34b817)[_0x406c('0x30')](_0xa7c9fc);};}exports[_0x406c('0x31')]=function(_0x31e516,_0x196efe){var _0x8f1057={},_0x33a706={},_0x55ba2a={'count':0x0,'rows':[]};var _0x452fb1=_[_0x406c('0x32')](db['SquareOdbc'][_0x406c('0x33')],function(_0x55f251){return{'name':_0x55f251['fieldName'],'type':_0x55f251[_0x406c('0x34')][_0x406c('0x35')]};});_0x33a706[_0x406c('0x36')]=_['map'](_0x452fb1,_0x406c('0x2f'));_0x33a706[_0x406c('0x37')]=_[_0x406c('0x38')](_0x31e516[_0x406c('0x37')]);_0x33a706['filters']=_[_0x406c('0x39')](_0x33a706['model'],_0x33a706['query']);_0x8f1057[_0x406c('0x3a')]=_[_0x406c('0x39')](_0x33a706[_0x406c('0x36')],qs['fields'](_0x31e516[_0x406c('0x37')][_0x406c('0x3b')]));_0x8f1057[_0x406c('0x3a')]=_0x8f1057[_0x406c('0x3a')]['length']?_0x8f1057[_0x406c('0x3a')]:_0x33a706['model'];if(!_0x31e516['query']['hasOwnProperty'](_0x406c('0x3c'))){_0x8f1057['limit']=qs[_0x406c('0x1f')](_0x31e516[_0x406c('0x37')][_0x406c('0x1f')]);_0x8f1057[_0x406c('0x1d')]=qs[_0x406c('0x1d')](_0x31e516[_0x406c('0x37')][_0x406c('0x1d')]);}_0x8f1057[_0x406c('0x3d')]=qs[_0x406c('0x3e')](_0x31e516[_0x406c('0x37')][_0x406c('0x3e')]);_0x8f1057[_0x406c('0x3f')]=qs[_0x406c('0x40')](_[_0x406c('0x41')](_0x31e516[_0x406c('0x37')],_0x33a706[_0x406c('0x40')]),_0x452fb1);if(_0x31e516[_0x406c('0x37')]['filter']){_0x8f1057[_0x406c('0x3f')]=_[_0x406c('0x42')](_0x8f1057[_0x406c('0x3f')],{'$or':_[_0x406c('0x32')](_0x452fb1,function(_0x369b01){if(_0x369b01['type']!==_0x406c('0x43')){var _0x3af61e={};_0x3af61e[_0x369b01[_0x406c('0x2f')]]={'$like':'%'+_0x31e516[_0x406c('0x37')][_0x406c('0x44')]+'%'};return _0x3af61e;}})});}_0x8f1057=_[_0x406c('0x42')]({},_0x8f1057,_0x31e516[_0x406c('0x45')]);var _0x24c4a9={'where':_0x8f1057['where']};return db[_0x406c('0x46')][_0x406c('0x1e')](_0x24c4a9)[_0x406c('0x28')](function(_0x1b7e36){_0x55ba2a[_0x406c('0x1e')]=_0x1b7e36;if(_0x31e516['query'][_0x406c('0x47')]){_0x8f1057[_0x406c('0x48')]=[{'all':!![]}];}return db[_0x406c('0x46')]['findAll'](_0x8f1057);})[_0x406c('0x28')](function(_0x6b4149){_0x55ba2a[_0x406c('0x49')]=_0x6b4149;return _0x55ba2a;})[_0x406c('0x28')](respondWithFilteredResult(_0x196efe,_0x8f1057))[_0x406c('0x4a')](handleError(_0x196efe,null));};exports[_0x406c('0x4b')]=function(_0x451dbd,_0x1ce3bb){var _0x22fe93={'raw':!![],'where':{'id':_0x451dbd[_0x406c('0x4c')]['id']}},_0x26c22d={};_0x26c22d[_0x406c('0x36')]=_[_0x406c('0x38')](db[_0x406c('0x46')][_0x406c('0x33')]);_0x26c22d['query']=_[_0x406c('0x38')](_0x451dbd[_0x406c('0x37')]);_0x26c22d['filters']=_[_0x406c('0x39')](_0x26c22d[_0x406c('0x36')],_0x26c22d[_0x406c('0x37')]);_0x22fe93[_0x406c('0x3a')]=_['intersection'](_0x26c22d[_0x406c('0x36')],qs[_0x406c('0x3b')](_0x451dbd[_0x406c('0x37')][_0x406c('0x3b')]));_0x22fe93[_0x406c('0x3a')]=_0x22fe93[_0x406c('0x3a')][_0x406c('0x4d')]?_0x22fe93['attributes']:_0x26c22d[_0x406c('0x36')];if(_0x451dbd['query'][_0x406c('0x47')]){_0x22fe93[_0x406c('0x48')]=[{'all':!![]}];}_0x22fe93=_[_0x406c('0x42')]({},_0x22fe93,_0x451dbd['options']);return db[_0x406c('0x46')]['find'](_0x22fe93)[_0x406c('0x28')](handleEntityNotFound(_0x1ce3bb,null))[_0x406c('0x28')](respondWithResult(_0x1ce3bb,null))[_0x406c('0x4a')](handleError(_0x1ce3bb,null));};exports[_0x406c('0x4e')]=function(_0x4416c0,_0x393604){return db['SquareOdbc']['create'](_0x4416c0['body'],{})[_0x406c('0x28')](function(_0x4c4bbe){var _0x30cee2=_0x4416c0['user']['get']({'plain':!![]});if(!_0x30cee2)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x30cee2[_0x406c('0x4f')]===_0x406c('0x50')){var _0x27d3e3=_0x4c4bbe[_0x406c('0x29')]({'plain':!![]});var _0x1fd91c=_0x406c('0x2a');return db[_0x406c('0x51')][_0x406c('0x52')]({'where':{'name':_0x1fd91c,'userProfileId':_0x30cee2[_0x406c('0x53')]},'raw':!![]})['then'](function(_0x13d9e8){if(_0x13d9e8&&_0x13d9e8['autoAssociation']===0x0){return db[_0x406c('0x2b')]['create']({'name':_0x27d3e3[_0x406c('0x2f')],'resourceId':_0x27d3e3['id'],'type':_0x13d9e8[_0x406c('0x2f')],'sectionId':_0x13d9e8['id']},{})[_0x406c('0x28')](function(){return _0x4c4bbe;});}else{return _0x4c4bbe;}})[_0x406c('0x4a')](function(_0x1700ee){logger[_0x406c('0x2d')](_0x406c('0x54'),_0x1700ee);throw _0x1700ee;});}return _0x4c4bbe;})['then'](respondWithResult(_0x393604,0xc9))[_0x406c('0x4a')](handleError(_0x393604,null));};exports['update']=function(_0x51a354,_0x16f935){if(_0x51a354[_0x406c('0x55')]['id']){delete _0x51a354[_0x406c('0x55')]['id'];}return db[_0x406c('0x46')][_0x406c('0x52')]({'where':{'id':_0x51a354[_0x406c('0x4c')]['id']}})[_0x406c('0x28')](handleEntityNotFound(_0x16f935,null))['then'](saveUpdates(_0x51a354['body'],null))[_0x406c('0x28')](respondWithResult(_0x16f935,null))[_0x406c('0x4a')](handleError(_0x16f935,null));};exports['destroy']=function(_0x185e5d,_0x2384f5){return db[_0x406c('0x46')][_0x406c('0x52')]({'where':{'id':_0x185e5d['params']['id']}})[_0x406c('0x28')](handleEntityNotFound(_0x2384f5,null))[_0x406c('0x28')](removeEntity(_0x2384f5,null))[_0x406c('0x4a')](handleError(_0x2384f5,null));};exports[_0x406c('0x56')]=function(_0x1eaec4,_0x4754d5,_0x1db19c){var _0x2fc816;return db[_0x406c('0x46')]['find']({'where':{'id':_0x1eaec4[_0x406c('0x4c')]['id']},'attributes':['id',_0x406c('0x57')]})[_0x406c('0x28')](handleEntityNotFound(_0x4754d5,null))['then'](function(_0x3a2bed){if(_0x3a2bed){var _0x224f04=require(_0x406c('0x58'))();_0x224f04['openSync'](_0x3a2bed['dsn']);_0x224f04[_0x406c('0x59')]();return _0x3a2bed;}})[_0x406c('0x28')](respondWithResult(_0x4754d5,null))[_0x406c('0x4a')](handleError(_0x4754d5,null));};