Built motion from commit e1760111.|2.6.18
[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 _0xaa07=['query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','sort','where','pick','merge','filter','options','includeAll','include','findAll','rows','catch','show','params','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','destroy','test','openSync','dsn','closeSync','fast-json-patch','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','crypto','desk.js','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','count','offset','limit','set','apply','reject','save','update','then','get','ODBC','UserProfileResource','error','name','send','map','SquareOdbc','fieldName','type','key','model'];(function(_0xbe8cf8,_0x380980){var _0x3a2eca=function(_0x51901a){while(--_0x51901a){_0xbe8cf8['push'](_0xbe8cf8['shift']());}};_0x3a2eca(++_0x380980);}(_0xaa07,0xcb));var _0x7aa0=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xaa07[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x7aa0('0x0'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x7aa0('0x1'));var Mustache=require(_0x7aa0('0x2'));var util=require('util');var path=require(_0x7aa0('0x3'));var sox=require(_0x7aa0('0x4'));var csv=require(_0x7aa0('0x5'));var ejs=require(_0x7aa0('0x6'));var fs=require('fs');var fs_extra=require(_0x7aa0('0x7'));var _=require(_0x7aa0('0x8'));var squel=require('squel');var crypto=require(_0x7aa0('0x9'));var jsforce=require('jsforce');var deskjs=require(_0x7aa0('0xa'));var toCsv=require(_0x7aa0('0x5'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x7aa0('0xb'));var qs=require(_0x7aa0('0xc'));var as=require(_0x7aa0('0xd'));var hardwareService=require(_0x7aa0('0xe'));var logger=require(_0x7aa0('0xf'))('api');var utils=require(_0x7aa0('0x10'));var config=require(_0x7aa0('0x11'));var licenseUtil=require(_0x7aa0('0x12'));var db=require(_0x7aa0('0x13'))['db'];function respondWithStatusCode(_0x41cd4d,_0x5635ea){_0x5635ea=_0x5635ea||0xcc;return function(_0x4a41e5){if(_0x4a41e5){return _0x41cd4d[_0x7aa0('0x14')](_0x5635ea);}return _0x41cd4d[_0x7aa0('0x15')](_0x5635ea)[_0x7aa0('0x16')]();};}function respondWithResult(_0x1eb060,_0x3eedf0){_0x3eedf0=_0x3eedf0||0xc8;return function(_0x45deea){if(_0x45deea){return _0x1eb060[_0x7aa0('0x15')](_0x3eedf0)[_0x7aa0('0x17')](_0x45deea);}};}function respondWithFilteredResult(_0x15aa5c,_0x4fca43){return function(_0x2fd878){if(_0x2fd878){var _0x26c481=typeof _0x4fca43['offset']===_0x7aa0('0x18')&&typeof _0x4fca43['limit']===_0x7aa0('0x18');var _0x466bda=_0x2fd878['count'];var _0x107872=_0x26c481?0x0:_0x4fca43['offset'];var _0x4ccc97=_0x26c481?_0x2fd878[_0x7aa0('0x19')]:_0x4fca43[_0x7aa0('0x1a')]+_0x4fca43[_0x7aa0('0x1b')];var _0x37d1a1;if(_0x4ccc97>=_0x466bda){_0x4ccc97=_0x466bda;_0x37d1a1=0xc8;}else{_0x37d1a1=0xce;}_0x15aa5c[_0x7aa0('0x15')](_0x37d1a1);return _0x15aa5c[_0x7aa0('0x1c')]('Content-Range',_0x107872+'-'+_0x4ccc97+'/'+_0x466bda)['json'](_0x2fd878);}return null;};}function patchUpdates(_0x55ac7f){return function(_0x2aeca6){try{jsonpatch[_0x7aa0('0x1d')](_0x2aeca6,_0x55ac7f,!![]);}catch(_0x36e90b){return BPromise[_0x7aa0('0x1e')](_0x36e90b);}return _0x2aeca6[_0x7aa0('0x1f')]();};}function saveUpdates(_0x175e44,_0x5ae20e){return function(_0x445b3e){if(_0x445b3e){return _0x445b3e[_0x7aa0('0x20')](_0x175e44)[_0x7aa0('0x21')](function(_0xcec491){return _0xcec491;});}return null;};}function removeEntity(_0x3e75da,_0x39af04){return function(_0x52d669){if(_0x52d669){return _0x52d669['destroy']()[_0x7aa0('0x21')](function(){var _0x20e96d=_0x52d669[_0x7aa0('0x22')]({'plain':!![]});var _0x3fd043=_0x7aa0('0x23');return db[_0x7aa0('0x24')]['destroy']({'where':{'type':_0x3fd043,'resourceId':_0x20e96d['id']}})[_0x7aa0('0x21')](function(){return _0x52d669;});})[_0x7aa0('0x21')](function(){_0x3e75da[_0x7aa0('0x15')](0xcc)[_0x7aa0('0x16')]();});}};}function handleEntityNotFound(_0x41c6d4,_0x325cee){return function(_0x13502d){if(!_0x13502d){_0x41c6d4[_0x7aa0('0x14')](0x194);}return _0x13502d;};}function handleError(_0x36daf1,_0x42b018){_0x42b018=_0x42b018||0x1f4;return function(_0x4780e0){logger[_0x7aa0('0x25')](_0x4780e0['stack']);if(_0x4780e0[_0x7aa0('0x26')]){delete _0x4780e0[_0x7aa0('0x26')];}_0x36daf1['status'](_0x42b018)[_0x7aa0('0x27')](_0x4780e0);};}exports['index']=function(_0x3908c0,_0x715ff1){var _0x4a32d6={},_0x4085c1={},_0x5ea57b={'count':0x0,'rows':[]};var _0x3398a4=_[_0x7aa0('0x28')](db[_0x7aa0('0x29')]['rawAttributes'],function(_0x4371a0){return{'name':_0x4371a0[_0x7aa0('0x2a')],'type':_0x4371a0[_0x7aa0('0x2b')][_0x7aa0('0x2c')]};});_0x4085c1[_0x7aa0('0x2d')]=_[_0x7aa0('0x28')](_0x3398a4,'name');_0x4085c1[_0x7aa0('0x2e')]=_[_0x7aa0('0x2f')](_0x3908c0[_0x7aa0('0x2e')]);_0x4085c1[_0x7aa0('0x30')]=_['intersection'](_0x4085c1['model'],_0x4085c1[_0x7aa0('0x2e')]);_0x4a32d6[_0x7aa0('0x31')]=_[_0x7aa0('0x32')](_0x4085c1['model'],qs['fields'](_0x3908c0[_0x7aa0('0x2e')][_0x7aa0('0x33')]));_0x4a32d6[_0x7aa0('0x31')]=_0x4a32d6[_0x7aa0('0x31')][_0x7aa0('0x34')]?_0x4a32d6[_0x7aa0('0x31')]:_0x4085c1[_0x7aa0('0x2d')];if(!_0x3908c0[_0x7aa0('0x2e')][_0x7aa0('0x35')](_0x7aa0('0x36'))){_0x4a32d6[_0x7aa0('0x1b')]=qs[_0x7aa0('0x1b')](_0x3908c0['query'][_0x7aa0('0x1b')]);_0x4a32d6['offset']=qs[_0x7aa0('0x1a')](_0x3908c0['query'][_0x7aa0('0x1a')]);}_0x4a32d6['order']=qs[_0x7aa0('0x37')](_0x3908c0[_0x7aa0('0x2e')][_0x7aa0('0x37')]);_0x4a32d6[_0x7aa0('0x38')]=qs[_0x7aa0('0x30')](_[_0x7aa0('0x39')](_0x3908c0[_0x7aa0('0x2e')],_0x4085c1[_0x7aa0('0x30')]),_0x3398a4);if(_0x3908c0['query']['filter']){_0x4a32d6[_0x7aa0('0x38')]=_[_0x7aa0('0x3a')](_0x4a32d6[_0x7aa0('0x38')],{'$or':_[_0x7aa0('0x28')](_0x3398a4,function(_0x3bc94b){if(_0x3bc94b[_0x7aa0('0x2b')]!=='VIRTUAL'){var _0x3c49f2={};_0x3c49f2[_0x3bc94b[_0x7aa0('0x26')]]={'$like':'%'+_0x3908c0[_0x7aa0('0x2e')][_0x7aa0('0x3b')]+'%'};return _0x3c49f2;}})});}_0x4a32d6=_[_0x7aa0('0x3a')]({},_0x4a32d6,_0x3908c0[_0x7aa0('0x3c')]);var _0x3b1b7c={'where':_0x4a32d6[_0x7aa0('0x38')]};return db[_0x7aa0('0x29')][_0x7aa0('0x19')](_0x3b1b7c)[_0x7aa0('0x21')](function(_0x15cf61){_0x5ea57b['count']=_0x15cf61;if(_0x3908c0[_0x7aa0('0x2e')][_0x7aa0('0x3d')]){_0x4a32d6[_0x7aa0('0x3e')]=[{'all':!![]}];}return db[_0x7aa0('0x29')][_0x7aa0('0x3f')](_0x4a32d6);})[_0x7aa0('0x21')](function(_0x455b6f){_0x5ea57b[_0x7aa0('0x40')]=_0x455b6f;return _0x5ea57b;})[_0x7aa0('0x21')](respondWithFilteredResult(_0x715ff1,_0x4a32d6))[_0x7aa0('0x41')](handleError(_0x715ff1,null));};exports[_0x7aa0('0x42')]=function(_0x4de64f,_0x1a5e65){var _0x1e07ee={'raw':!![],'where':{'id':_0x4de64f[_0x7aa0('0x43')]['id']}},_0x29f65b={};_0x29f65b[_0x7aa0('0x2d')]=_['keys'](db['SquareOdbc']['rawAttributes']);_0x29f65b['query']=_['keys'](_0x4de64f[_0x7aa0('0x2e')]);_0x29f65b[_0x7aa0('0x30')]=_[_0x7aa0('0x32')](_0x29f65b['model'],_0x29f65b['query']);_0x1e07ee[_0x7aa0('0x31')]=_[_0x7aa0('0x32')](_0x29f65b['model'],qs[_0x7aa0('0x33')](_0x4de64f[_0x7aa0('0x2e')]['fields']));_0x1e07ee['attributes']=_0x1e07ee[_0x7aa0('0x31')][_0x7aa0('0x34')]?_0x1e07ee[_0x7aa0('0x31')]:_0x29f65b[_0x7aa0('0x2d')];if(_0x4de64f[_0x7aa0('0x2e')][_0x7aa0('0x3d')]){_0x1e07ee[_0x7aa0('0x3e')]=[{'all':!![]}];}_0x1e07ee=_['merge']({},_0x1e07ee,_0x4de64f[_0x7aa0('0x3c')]);return db['SquareOdbc'][_0x7aa0('0x44')](_0x1e07ee)['then'](handleEntityNotFound(_0x1a5e65,null))['then'](respondWithResult(_0x1a5e65,null))[_0x7aa0('0x41')](handleError(_0x1a5e65,null));};exports[_0x7aa0('0x45')]=function(_0x55a3f4,_0x14d5ef){return db[_0x7aa0('0x29')]['create'](_0x55a3f4['body'],{})['then'](function(_0x188c61){var _0x2fa93d=_0x55a3f4[_0x7aa0('0x46')][_0x7aa0('0x22')]({'plain':!![]});if(!_0x2fa93d)throw new Error(_0x7aa0('0x47'));if(_0x2fa93d[_0x7aa0('0x48')]===_0x7aa0('0x46')){var _0x2b9222=_0x188c61['get']({'plain':!![]});var _0x5b5ac2='ODBC';return db[_0x7aa0('0x49')][_0x7aa0('0x44')]({'where':{'name':_0x5b5ac2,'userProfileId':_0x2fa93d[_0x7aa0('0x4a')]},'raw':!![]})[_0x7aa0('0x21')](function(_0x564c3d){if(_0x564c3d&&_0x564c3d[_0x7aa0('0x4b')]===0x0){return db[_0x7aa0('0x24')][_0x7aa0('0x45')]({'name':_0x2b9222[_0x7aa0('0x26')],'resourceId':_0x2b9222['id'],'type':_0x564c3d[_0x7aa0('0x26')],'sectionId':_0x564c3d['id']},{})[_0x7aa0('0x21')](function(){return _0x188c61;});}else{return _0x188c61;}})[_0x7aa0('0x41')](function(_0x434e60){logger['error'](_0x7aa0('0x4c'),_0x434e60);throw _0x434e60;});}return _0x188c61;})[_0x7aa0('0x21')](respondWithResult(_0x14d5ef,0xc9))[_0x7aa0('0x41')](handleError(_0x14d5ef,null));};exports[_0x7aa0('0x20')]=function(_0xf4d25f,_0x453811){if(_0xf4d25f[_0x7aa0('0x4d')]['id']){delete _0xf4d25f['body']['id'];}return db[_0x7aa0('0x29')][_0x7aa0('0x44')]({'where':{'id':_0xf4d25f['params']['id']}})[_0x7aa0('0x21')](handleEntityNotFound(_0x453811,null))[_0x7aa0('0x21')](saveUpdates(_0xf4d25f[_0x7aa0('0x4d')],null))[_0x7aa0('0x21')](respondWithResult(_0x453811,null))[_0x7aa0('0x41')](handleError(_0x453811,null));};exports[_0x7aa0('0x4e')]=function(_0x4507c9,_0x2bfcb4){return db['SquareOdbc'][_0x7aa0('0x44')]({'where':{'id':_0x4507c9[_0x7aa0('0x43')]['id']}})['then'](handleEntityNotFound(_0x2bfcb4,null))[_0x7aa0('0x21')](removeEntity(_0x2bfcb4,null))['catch'](handleError(_0x2bfcb4,null));};exports[_0x7aa0('0x4f')]=function(_0x32f1e9,_0x39d130,_0x5c9460){var _0x494471;return db[_0x7aa0('0x29')][_0x7aa0('0x44')]({'where':{'id':_0x32f1e9[_0x7aa0('0x43')]['id']},'attributes':['id','dsn']})['then'](handleEntityNotFound(_0x39d130,null))[_0x7aa0('0x21')](function(_0x11306f){if(_0x11306f){var _0x1e4241=require('odbc')();_0x1e4241[_0x7aa0('0x50')](_0x11306f[_0x7aa0('0x51')]);_0x1e4241[_0x7aa0('0x52')]();return _0x11306f;}})[_0x7aa0('0x21')](respondWithResult(_0x39d130,null))[_0x7aa0('0x41')](handleError(_0x39d130,null));};