64f88f89909d778bc456f088a719492e4bc1f64d
[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 _0x8b13=['Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','find','dsn','openSync','closeSync','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','path','ejs','jsforce','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','sendStatus','status','end','json','offset','limit','set','Content-Range','apply','reject','save','update','destroy','then','get','ODBC','error','stack','name','send','index','map','SquareOdbc','rawAttributes','key','model','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','where','filters','pick','filter','VIRTUAL','count','includeAll','include','findAll','rows','catch','show','params','keys','merge','options','create','body','user','role','UserProfileSection','autoAssociation','UserProfileResource'];(function(_0x476bf4,_0x2a3755){var _0x788ffe=function(_0x13fa11){while(--_0x13fa11){_0x476bf4['push'](_0x476bf4['shift']());}};_0x788ffe(++_0x2a3755);}(_0x8b13,0x101));var _0x38b1=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x8b13[_0x3dd15e];return _0x231fd0;};'use strict';var pdf=require(_0x38b1('0x0'));var emlformat=require(_0x38b1('0x1'));var rimraf=require(_0x38b1('0x2'));var zipdir=require(_0x38b1('0x3'));var jsonpatch=require(_0x38b1('0x4'));var rp=require('request-promise');var moment=require(_0x38b1('0x5'));var BPromise=require(_0x38b1('0x6'));var Mustache=require('mustache');var util=require('util');var path=require(_0x38b1('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x38b1('0x8'));var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x38b1('0x9'));var deskjs=require('desk.js');var toCsv=require(_0x38b1('0xa'));var querystring=require(_0x38b1('0xb'));var Papa=require(_0x38b1('0xc'));var Redis=require(_0x38b1('0xd'));var authService=require(_0x38b1('0xe'));var qs=require(_0x38b1('0xf'));var as=require(_0x38b1('0x10'));var hardwareService=require(_0x38b1('0x11'));var logger=require(_0x38b1('0x12'))(_0x38b1('0x13'));var utils=require(_0x38b1('0x14'));var config=require(_0x38b1('0x15'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x4f24e9,_0x16f673){_0x16f673=_0x16f673||0xcc;return function(_0x24bea8){if(_0x24bea8){return _0x4f24e9[_0x38b1('0x16')](_0x16f673);}return _0x4f24e9[_0x38b1('0x17')](_0x16f673)[_0x38b1('0x18')]();};}function respondWithResult(_0x58bb20,_0x19a0af){_0x19a0af=_0x19a0af||0xc8;return function(_0x2ab08f){if(_0x2ab08f){return _0x58bb20[_0x38b1('0x17')](_0x19a0af)[_0x38b1('0x19')](_0x2ab08f);}};}function respondWithFilteredResult(_0x5b3283,_0x56fa42){return function(_0x7fadb1){if(_0x7fadb1){var _0x33fe4e=_0x7fadb1['count'],_0x4f71f5=_0x56fa42[_0x38b1('0x1a')],_0x4ae8dc=_0x56fa42[_0x38b1('0x1a')]+_0x56fa42[_0x38b1('0x1b')],_0x2f9d13;if(_0x4ae8dc>=_0x33fe4e){_0x4ae8dc=_0x33fe4e;_0x2f9d13=0xc8;}else{_0x2f9d13=0xce;}_0x5b3283[_0x38b1('0x17')](_0x2f9d13);return _0x5b3283[_0x38b1('0x1c')](_0x38b1('0x1d'),_0x4f71f5+'-'+_0x4ae8dc+'/'+_0x33fe4e)['json'](_0x7fadb1);}return null;};}function patchUpdates(_0x1bbd7f){return function(_0x42ca02){try{jsonpatch[_0x38b1('0x1e')](_0x42ca02,_0x1bbd7f,!![]);}catch(_0x4fe0c9){return BPromise[_0x38b1('0x1f')](_0x4fe0c9);}return _0x42ca02[_0x38b1('0x20')]();};}function saveUpdates(_0x8155e7,_0x1c24e7){return function(_0x25bc90){if(_0x25bc90){return _0x25bc90[_0x38b1('0x21')](_0x8155e7)['then'](function(_0x70c505){return _0x70c505;});}return null;};}function removeEntity(_0x3ccd39,_0x4092d6){return function(_0x38941e){if(_0x38941e){return _0x38941e[_0x38b1('0x22')]()[_0x38b1('0x23')](function(){var _0x45f365=_0x38941e[_0x38b1('0x24')]({'plain':!![]});var _0x355680=_0x38b1('0x25');return db['UserProfileResource'][_0x38b1('0x22')]({'where':{'type':_0x355680,'resourceId':_0x45f365['id']}})['then'](function(){return _0x38941e;});})[_0x38b1('0x23')](function(){_0x3ccd39[_0x38b1('0x17')](0xcc)[_0x38b1('0x18')]();});}};}function handleEntityNotFound(_0x2a5cfd,_0x1a8720){return function(_0x5258a9){if(!_0x5258a9){_0x2a5cfd['sendStatus'](0x194);}return _0x5258a9;};}function handleError(_0x45649b,_0x273583){_0x273583=_0x273583||0x1f4;return function(_0x9e68a5){logger[_0x38b1('0x26')](_0x9e68a5[_0x38b1('0x27')]);if(_0x9e68a5[_0x38b1('0x28')]){delete _0x9e68a5[_0x38b1('0x28')];}_0x45649b[_0x38b1('0x17')](_0x273583)[_0x38b1('0x29')](_0x9e68a5);};}exports[_0x38b1('0x2a')]=function(_0x18fbd3,_0x3c4350){var _0x2e2c8d={},_0x5ec7f1={},_0x3ef4ca={'count':0x0,'rows':[]};var _0x146b26=_[_0x38b1('0x2b')](db[_0x38b1('0x2c')][_0x38b1('0x2d')],function(_0x23facd){return{'name':_0x23facd['fieldName'],'type':_0x23facd['type'][_0x38b1('0x2e')]};});_0x5ec7f1[_0x38b1('0x2f')]=_[_0x38b1('0x2b')](_0x146b26,_0x38b1('0x28'));_0x5ec7f1[_0x38b1('0x30')]=_['keys'](_0x18fbd3[_0x38b1('0x30')]);_0x5ec7f1['filters']=_[_0x38b1('0x31')](_0x5ec7f1['model'],_0x5ec7f1[_0x38b1('0x30')]);_0x2e2c8d[_0x38b1('0x32')]=_[_0x38b1('0x31')](_0x5ec7f1['model'],qs[_0x38b1('0x33')](_0x18fbd3['query']['fields']));_0x2e2c8d[_0x38b1('0x32')]=_0x2e2c8d[_0x38b1('0x32')][_0x38b1('0x34')]?_0x2e2c8d[_0x38b1('0x32')]:_0x5ec7f1[_0x38b1('0x2f')];if(!_0x18fbd3[_0x38b1('0x30')][_0x38b1('0x35')](_0x38b1('0x36'))){_0x2e2c8d['limit']=qs[_0x38b1('0x1b')](_0x18fbd3['query'][_0x38b1('0x1b')]);_0x2e2c8d['offset']=qs[_0x38b1('0x1a')](_0x18fbd3['query'][_0x38b1('0x1a')]);}_0x2e2c8d[_0x38b1('0x37')]=qs['sort'](_0x18fbd3[_0x38b1('0x30')]['sort']);_0x2e2c8d[_0x38b1('0x38')]=qs[_0x38b1('0x39')](_[_0x38b1('0x3a')](_0x18fbd3[_0x38b1('0x30')],_0x5ec7f1[_0x38b1('0x39')]),_0x146b26);if(_0x18fbd3[_0x38b1('0x30')][_0x38b1('0x3b')]){_0x2e2c8d[_0x38b1('0x38')]=_['merge'](_0x2e2c8d[_0x38b1('0x38')],{'$or':_['map'](_0x146b26,function(_0x400ac9){if(_0x400ac9['type']!==_0x38b1('0x3c')){var _0x3dda08={};_0x3dda08[_0x400ac9[_0x38b1('0x28')]]={'$like':'%'+_0x18fbd3['query'][_0x38b1('0x3b')]+'%'};return _0x3dda08;}})});}_0x2e2c8d=_['merge']({},_0x2e2c8d,_0x18fbd3['options']);var _0x48643c={'where':_0x2e2c8d[_0x38b1('0x38')]};return db[_0x38b1('0x2c')][_0x38b1('0x3d')](_0x48643c)[_0x38b1('0x23')](function(_0x2e7447){_0x3ef4ca[_0x38b1('0x3d')]=_0x2e7447;if(_0x18fbd3[_0x38b1('0x30')][_0x38b1('0x3e')]){_0x2e2c8d[_0x38b1('0x3f')]=[{'all':!![]}];}return db[_0x38b1('0x2c')][_0x38b1('0x40')](_0x2e2c8d);})['then'](function(_0x401388){_0x3ef4ca[_0x38b1('0x41')]=_0x401388;return _0x3ef4ca;})[_0x38b1('0x23')](respondWithFilteredResult(_0x3c4350,_0x2e2c8d))[_0x38b1('0x42')](handleError(_0x3c4350,null));};exports[_0x38b1('0x43')]=function(_0x45a21b,_0x473cf7){var _0x28b5c6={'raw':!![],'where':{'id':_0x45a21b[_0x38b1('0x44')]['id']}},_0x2821d7={};_0x2821d7[_0x38b1('0x2f')]=_[_0x38b1('0x45')](db[_0x38b1('0x2c')][_0x38b1('0x2d')]);_0x2821d7[_0x38b1('0x30')]=_[_0x38b1('0x45')](_0x45a21b[_0x38b1('0x30')]);_0x2821d7['filtears']=_[_0x38b1('0x31')](_0x2821d7['model'],_0x2821d7[_0x38b1('0x30')]);_0x28b5c6[_0x38b1('0x32')]=_[_0x38b1('0x31')](_0x2821d7[_0x38b1('0x2f')],qs['fields'](_0x45a21b[_0x38b1('0x30')][_0x38b1('0x33')]));_0x28b5c6[_0x38b1('0x32')]=_0x28b5c6['attributes'][_0x38b1('0x34')]?_0x28b5c6['attributes']:_0x2821d7[_0x38b1('0x2f')];if(_0x45a21b[_0x38b1('0x30')][_0x38b1('0x3e')]){_0x28b5c6[_0x38b1('0x3f')]=[{'all':!![]}];}_0x28b5c6=_[_0x38b1('0x46')]({},_0x28b5c6,_0x45a21b[_0x38b1('0x47')]);return db[_0x38b1('0x2c')]['find'](_0x28b5c6)[_0x38b1('0x23')](handleEntityNotFound(_0x473cf7,null))[_0x38b1('0x23')](respondWithResult(_0x473cf7,null))[_0x38b1('0x42')](handleError(_0x473cf7,null));};exports[_0x38b1('0x48')]=function(_0x3edf79,_0x2d2ef4){return db[_0x38b1('0x2c')][_0x38b1('0x48')](_0x3edf79[_0x38b1('0x49')],{})[_0x38b1('0x23')](function(_0x52b299){var _0x1a00f1=_0x3edf79[_0x38b1('0x4a')]['get']({'plain':!![]});if(!_0x1a00f1)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x1a00f1[_0x38b1('0x4b')]===_0x38b1('0x4a')){var _0x463b84=_0x52b299['get']({'plain':!![]});var _0x24f365=_0x38b1('0x25');return db[_0x38b1('0x4c')]['find']({'where':{'name':_0x24f365,'userProfileId':_0x1a00f1['userProfileId']},'raw':!![]})[_0x38b1('0x23')](function(_0x530ded){if(_0x530ded&&_0x530ded[_0x38b1('0x4d')]===0x0){return db[_0x38b1('0x4e')]['create']({'name':_0x463b84[_0x38b1('0x28')],'resourceId':_0x463b84['id'],'type':_0x530ded[_0x38b1('0x28')],'sectionId':_0x530ded['id']},{})[_0x38b1('0x23')](function(){return _0x52b299;});}else{return _0x52b299;}})[_0x38b1('0x42')](function(_0xeb8bcf){logger['error'](_0x38b1('0x4f'),_0xeb8bcf);throw _0xeb8bcf;});}return _0x52b299;})[_0x38b1('0x23')](respondWithResult(_0x2d2ef4,0xc9))['catch'](handleError(_0x2d2ef4,null));};exports[_0x38b1('0x21')]=function(_0x2c63ff,_0x44cb9c){if(_0x2c63ff[_0x38b1('0x49')]['id']){delete _0x2c63ff[_0x38b1('0x49')]['id'];}return db[_0x38b1('0x2c')][_0x38b1('0x50')]({'where':{'id':_0x2c63ff[_0x38b1('0x44')]['id']}})[_0x38b1('0x23')](handleEntityNotFound(_0x44cb9c,null))['then'](saveUpdates(_0x2c63ff[_0x38b1('0x49')],null))[_0x38b1('0x23')](respondWithResult(_0x44cb9c,null))['catch'](handleError(_0x44cb9c,null));};exports[_0x38b1('0x22')]=function(_0x3ed5dc,_0x104bd5){return db[_0x38b1('0x2c')][_0x38b1('0x50')]({'where':{'id':_0x3ed5dc[_0x38b1('0x44')]['id']}})[_0x38b1('0x23')](handleEntityNotFound(_0x104bd5,null))[_0x38b1('0x23')](removeEntity(_0x104bd5,null))[_0x38b1('0x42')](handleError(_0x104bd5,null));};exports['test']=function(_0x53759b,_0x217797,_0x373c70){var _0xb5ba34;return db[_0x38b1('0x2c')][_0x38b1('0x50')]({'where':{'id':_0x53759b[_0x38b1('0x44')]['id']},'attributes':['id',_0x38b1('0x51')]})['then'](handleEntityNotFound(_0x217797,null))[_0x38b1('0x23')](function(_0xb30156){if(_0xb30156){var _0x28d981=require('odbc')();_0x28d981[_0x38b1('0x52')](_0xb30156[_0x38b1('0x51')]);_0x28d981[_0x38b1('0x53')]();return _0xb30156;}})['then'](respondWithResult(_0x217797,null))['catch'](handleError(_0x217797,null));};