c8bcdcbea29259905aaa7dad9fa6db246b77f4ee
[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 _0xdb7b=['filter','where','merge','VIRTUAL','options','SquareOdbc','count','includeAll','findAll','rows','catch','include','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','find','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','destroy','test','odbc','closeSync','eml-format','rimraf','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','status','json','offset','limit','set','apply','reject','update','then','get','ODBC','UserProfileResource','end','sendStatus','error','stack','name','send','map','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick'];(function(_0x9df83d,_0x5b66ba){var _0x6b4c3=function(_0x632bca){while(--_0x632bca){_0x9df83d['push'](_0x9df83d['shift']());}};_0x6b4c3(++_0x5b66ba);}(_0xdb7b,0x1bc));var _0xbdb7=function(_0x34db50,_0x2cde34){_0x34db50=_0x34db50-0x0;var _0x4e9b0f=_0xdb7b[_0x34db50];return _0x4e9b0f;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xbdb7('0x0'));var rimraf=require(_0xbdb7('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xbdb7('0x2'));var rp=require(_0xbdb7('0x3'));var moment=require(_0xbdb7('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xbdb7('0x5'));var util=require(_0xbdb7('0x6'));var path=require(_0xbdb7('0x7'));var sox=require(_0xbdb7('0x8'));var csv=require(_0xbdb7('0x9'));var ejs=require(_0xbdb7('0xa'));var fs=require('fs');var _=require(_0xbdb7('0xb'));var squel=require(_0xbdb7('0xc'));var crypto=require(_0xbdb7('0xd'));var jsforce=require('jsforce');var deskjs=require(_0xbdb7('0xe'));var toCsv=require('to-csv');var querystring=require(_0xbdb7('0xf'));var Papa=require(_0xbdb7('0x10'));var Redis=require(_0xbdb7('0x11'));var authService=require(_0xbdb7('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0xbdb7('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xbdb7('0x14'))(_0xbdb7('0x15'));var utils=require(_0xbdb7('0x16'));var config=require(_0xbdb7('0x17'));var db=require(_0xbdb7('0x18'))['db'];function respondWithStatusCode(_0x841549,_0x2e63b0){_0x2e63b0=_0x2e63b0||0xcc;return function(_0x5a8501){if(_0x5a8501){return _0x841549['sendStatus'](_0x2e63b0);}return _0x841549['status'](_0x2e63b0)['end']();};}function respondWithResult(_0xe5647f,_0xde8169){_0xde8169=_0xde8169||0xc8;return function(_0x4ef6cf){if(_0x4ef6cf){return _0xe5647f[_0xbdb7('0x19')](_0xde8169)[_0xbdb7('0x1a')](_0x4ef6cf);}};}function respondWithFilteredResult(_0x14fc96,_0x321e91){return function(_0x4d1462){if(_0x4d1462){var _0x50e54e=_0x4d1462['count'],_0x21fa65=_0x321e91[_0xbdb7('0x1b')],_0x1f7e62=_0x321e91[_0xbdb7('0x1b')]+_0x321e91[_0xbdb7('0x1c')],_0x1c2c3c;if(_0x1f7e62>=_0x50e54e){_0x1f7e62=_0x50e54e;_0x1c2c3c=0xc8;}else{_0x1c2c3c=0xce;}_0x14fc96[_0xbdb7('0x19')](_0x1c2c3c);return _0x14fc96[_0xbdb7('0x1d')]('Content-Range',_0x21fa65+'-'+_0x1f7e62+'/'+_0x50e54e)['json'](_0x4d1462);}return null;};}function patchUpdates(_0x51d906){return function(_0x44abb3){try{jsonpatch[_0xbdb7('0x1e')](_0x44abb3,_0x51d906,!![]);}catch(_0x257c9f){return BPromise[_0xbdb7('0x1f')](_0x257c9f);}return _0x44abb3['save']();};}function saveUpdates(_0x528e49,_0x446b04){return function(_0x42eaf5){if(_0x42eaf5){return _0x42eaf5[_0xbdb7('0x20')](_0x528e49)[_0xbdb7('0x21')](function(_0x32c957){return _0x32c957;});}return null;};}function removeEntity(_0x1c30aa,_0x30f4c7){return function(_0x22258a){if(_0x22258a){return _0x22258a['destroy']()[_0xbdb7('0x21')](function(){var _0x5ea525=_0x22258a[_0xbdb7('0x22')]({'plain':!![]});var _0x3ec91d=_0xbdb7('0x23');return db[_0xbdb7('0x24')]['destroy']({'where':{'type':_0x3ec91d,'resourceId':_0x5ea525['id']}})[_0xbdb7('0x21')](function(){return _0x22258a;});})[_0xbdb7('0x21')](function(){_0x1c30aa[_0xbdb7('0x19')](0xcc)[_0xbdb7('0x25')]();});}};}function handleEntityNotFound(_0x481cd4,_0x31c014){return function(_0x7286da){if(!_0x7286da){_0x481cd4[_0xbdb7('0x26')](0x194);}return _0x7286da;};}function handleError(_0x3ceb22,_0x1ba56b){_0x1ba56b=_0x1ba56b||0x1f4;return function(_0x25dc64){logger[_0xbdb7('0x27')](_0x25dc64[_0xbdb7('0x28')]);if(_0x25dc64[_0xbdb7('0x29')]){delete _0x25dc64[_0xbdb7('0x29')];}_0x3ceb22[_0xbdb7('0x19')](_0x1ba56b)[_0xbdb7('0x2a')](_0x25dc64);};}exports['index']=function(_0x5231f9,_0x8bd429){var _0x544f77={},_0x4ff87c={},_0x241b66={'count':0x0,'rows':[]};var _0x308655=_[_0xbdb7('0x2b')](db['SquareOdbc'][_0xbdb7('0x2c')],function(_0x3a7b28){return{'name':_0x3a7b28[_0xbdb7('0x2d')],'type':_0x3a7b28[_0xbdb7('0x2e')]['key']};});_0x4ff87c[_0xbdb7('0x2f')]=_[_0xbdb7('0x2b')](_0x308655,_0xbdb7('0x29'));_0x4ff87c[_0xbdb7('0x30')]=_[_0xbdb7('0x31')](_0x5231f9['query']);_0x4ff87c[_0xbdb7('0x32')]=_[_0xbdb7('0x33')](_0x4ff87c[_0xbdb7('0x2f')],_0x4ff87c[_0xbdb7('0x30')]);_0x544f77[_0xbdb7('0x34')]=_['intersection'](_0x4ff87c[_0xbdb7('0x2f')],qs['fields'](_0x5231f9[_0xbdb7('0x30')][_0xbdb7('0x35')]));_0x544f77[_0xbdb7('0x34')]=_0x544f77[_0xbdb7('0x34')][_0xbdb7('0x36')]?_0x544f77[_0xbdb7('0x34')]:_0x4ff87c[_0xbdb7('0x2f')];if(!_0x5231f9[_0xbdb7('0x30')][_0xbdb7('0x37')](_0xbdb7('0x38'))){_0x544f77[_0xbdb7('0x1c')]=qs[_0xbdb7('0x1c')](_0x5231f9[_0xbdb7('0x30')][_0xbdb7('0x1c')]);_0x544f77[_0xbdb7('0x1b')]=qs[_0xbdb7('0x1b')](_0x5231f9[_0xbdb7('0x30')][_0xbdb7('0x1b')]);}_0x544f77[_0xbdb7('0x39')]=qs[_0xbdb7('0x3a')](_0x5231f9[_0xbdb7('0x30')]['sort']);_0x544f77['where']=qs[_0xbdb7('0x32')](_[_0xbdb7('0x3b')](_0x5231f9[_0xbdb7('0x30')],_0x4ff87c['filters']),_0x308655);if(_0x5231f9[_0xbdb7('0x30')][_0xbdb7('0x3c')]){_0x544f77[_0xbdb7('0x3d')]=_[_0xbdb7('0x3e')](_0x544f77[_0xbdb7('0x3d')],{'$or':_[_0xbdb7('0x2b')](_0x308655,function(_0x170b0c){if(_0x170b0c['type']!==_0xbdb7('0x3f')){var _0x405235={};_0x405235[_0x170b0c[_0xbdb7('0x29')]]={'$like':'%'+_0x5231f9['query']['filter']+'%'};return _0x405235;}})});}_0x544f77=_['merge']({},_0x544f77,_0x5231f9[_0xbdb7('0x40')]);var _0x5dbf4e={'where':_0x544f77[_0xbdb7('0x3d')]};return db[_0xbdb7('0x41')]['count'](_0x5dbf4e)['then'](function(_0x1245a8){_0x241b66[_0xbdb7('0x42')]=_0x1245a8;if(_0x5231f9[_0xbdb7('0x30')][_0xbdb7('0x43')]){_0x544f77['include']=[{'all':!![]}];}return db[_0xbdb7('0x41')][_0xbdb7('0x44')](_0x544f77);})[_0xbdb7('0x21')](function(_0x1fbbab){_0x241b66[_0xbdb7('0x45')]=_0x1fbbab;return _0x241b66;})[_0xbdb7('0x21')](respondWithFilteredResult(_0x8bd429,_0x544f77))[_0xbdb7('0x46')](handleError(_0x8bd429,null));};exports['show']=function(_0x225ff5,_0x140ebc){var _0x49f4e3={'raw':!![],'where':{'id':_0x225ff5['params']['id']}},_0x3d9ef3={};_0x3d9ef3[_0xbdb7('0x2f')]=_[_0xbdb7('0x31')](db[_0xbdb7('0x41')]['rawAttributes']);_0x3d9ef3['query']=_['keys'](_0x225ff5[_0xbdb7('0x30')]);_0x3d9ef3[_0xbdb7('0x32')]=_[_0xbdb7('0x33')](_0x3d9ef3[_0xbdb7('0x2f')],_0x3d9ef3['query']);_0x49f4e3[_0xbdb7('0x34')]=_[_0xbdb7('0x33')](_0x3d9ef3[_0xbdb7('0x2f')],qs['fields'](_0x225ff5[_0xbdb7('0x30')]['fields']));_0x49f4e3[_0xbdb7('0x34')]=_0x49f4e3[_0xbdb7('0x34')][_0xbdb7('0x36')]?_0x49f4e3[_0xbdb7('0x34')]:_0x3d9ef3[_0xbdb7('0x2f')];if(_0x225ff5[_0xbdb7('0x30')][_0xbdb7('0x43')]){_0x49f4e3[_0xbdb7('0x47')]=[{'all':!![]}];}_0x49f4e3=_[_0xbdb7('0x3e')]({},_0x49f4e3,_0x225ff5[_0xbdb7('0x40')]);return db['SquareOdbc']['find'](_0x49f4e3)[_0xbdb7('0x21')](handleEntityNotFound(_0x140ebc,null))[_0xbdb7('0x21')](respondWithResult(_0x140ebc,null))[_0xbdb7('0x46')](handleError(_0x140ebc,null));};exports[_0xbdb7('0x48')]=function(_0x206281,_0x37e82c){return db[_0xbdb7('0x41')][_0xbdb7('0x48')](_0x206281[_0xbdb7('0x49')],{})[_0xbdb7('0x21')](function(_0x5c4ece){var _0xf98c6c=_0x206281[_0xbdb7('0x4a')][_0xbdb7('0x22')]({'plain':!![]});if(!_0xf98c6c)throw new Error(_0xbdb7('0x4b'));if(_0xf98c6c['role']==='user'){var _0x49e58b=_0x5c4ece['get']({'plain':!![]});var _0x4cd73c=_0xbdb7('0x23');return db[_0xbdb7('0x4c')][_0xbdb7('0x4d')]({'where':{'name':_0x4cd73c,'userProfileId':_0xf98c6c['userProfileId']},'raw':!![]})[_0xbdb7('0x21')](function(_0x4e9804){if(_0x4e9804&&_0x4e9804['autoAssociation']===0x0){return db[_0xbdb7('0x24')]['create']({'name':_0x49e58b[_0xbdb7('0x29')],'resourceId':_0x49e58b['id'],'type':_0x4e9804[_0xbdb7('0x29')],'sectionId':_0x4e9804['id']},{})[_0xbdb7('0x21')](function(){return _0x5c4ece;});}else{return _0x5c4ece;}})[_0xbdb7('0x46')](function(_0x50a7ba){logger[_0xbdb7('0x27')](_0xbdb7('0x4e'),_0x50a7ba);throw _0x50a7ba;});}return _0x5c4ece;})[_0xbdb7('0x21')](respondWithResult(_0x37e82c,0xc9))[_0xbdb7('0x46')](handleError(_0x37e82c,null));};exports[_0xbdb7('0x20')]=function(_0x25991a,_0x25ef3b){if(_0x25991a[_0xbdb7('0x49')]['id']){delete _0x25991a[_0xbdb7('0x49')]['id'];}return db[_0xbdb7('0x41')][_0xbdb7('0x4d')]({'where':{'id':_0x25991a[_0xbdb7('0x4f')]['id']}})[_0xbdb7('0x21')](handleEntityNotFound(_0x25ef3b,null))[_0xbdb7('0x21')](saveUpdates(_0x25991a[_0xbdb7('0x49')],null))[_0xbdb7('0x21')](respondWithResult(_0x25ef3b,null))['catch'](handleError(_0x25ef3b,null));};exports[_0xbdb7('0x50')]=function(_0x51b250,_0x4d2ed7){return db[_0xbdb7('0x41')][_0xbdb7('0x4d')]({'where':{'id':_0x51b250['params']['id']}})['then'](handleEntityNotFound(_0x4d2ed7,null))[_0xbdb7('0x21')](removeEntity(_0x4d2ed7,null))['catch'](handleError(_0x4d2ed7,null));};exports[_0xbdb7('0x51')]=function(_0x23f972,_0x16aed8,_0x3e8008){var _0xe216cb;return db[_0xbdb7('0x41')]['find']({'where':{'id':_0x23f972[_0xbdb7('0x4f')]['id']},'attributes':['id','dsn']})['then'](handleEntityNotFound(_0x16aed8,null))[_0xbdb7('0x21')](function(_0x310dac){if(_0x310dac){var _0x50ac7b=require(_0xbdb7('0x52'))();_0x50ac7b['openSync'](_0x310dac['dsn']);_0x50ac7b[_0xbdb7('0x53')]();return _0x310dac;}})[_0xbdb7('0x21')](respondWithResult(_0x16aed8,null))[_0xbdb7('0x46')](handleError(_0x16aed8,null));};