de6b466ddf30d64287815fbd33887fd2334a8e1f
[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 _0x0310=['limit','set','apply','reject','save','destroy','then','ODBC','UserProfileResource','end','error','stack','name','index','map','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','where','merge','filter','SquareOdbc','include','findAll','rows','catch','options','find','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','params','test','dsn','odbc','openSync','closeSync','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/license/util','../../mysqldb','sendStatus','status','json','count','offset'];(function(_0x40a045,_0x516f0e){var _0x1a687c=function(_0x48c9fe){while(--_0x48c9fe){_0x40a045['push'](_0x40a045['shift']());}};_0x1a687c(++_0x516f0e);}(_0x0310,0xe1));var _0x0031=function(_0x5e5fd7,_0xe354da){_0x5e5fd7=_0x5e5fd7-0x0;var _0x54ecaa=_0x0310[_0x5e5fd7];return _0x54ecaa;};'use strict';var emlformat=require(_0x0031('0x0'));var rimraf=require(_0x0031('0x1'));var zipdir=require(_0x0031('0x2'));var jsonpatch=require(_0x0031('0x3'));var rp=require('request-promise');var moment=require(_0x0031('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x0031('0x5'));var util=require(_0x0031('0x6'));var path=require(_0x0031('0x7'));var sox=require('sox');var csv=require(_0x0031('0x8'));var ejs=require(_0x0031('0x9'));var fs=require('fs');var fs_extra=require(_0x0031('0xa'));var _=require(_0x0031('0xb'));var squel=require(_0x0031('0xc'));var crypto=require(_0x0031('0xd'));var jsforce=require(_0x0031('0xe'));var deskjs=require(_0x0031('0xf'));var toCsv=require(_0x0031('0x8'));var querystring=require('querystring');var Papa=require(_0x0031('0x10'));var Redis=require(_0x0031('0x11'));var authService=require(_0x0031('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x0031('0x13'));var hardwareService=require(_0x0031('0x14'));var logger=require(_0x0031('0x15'))(_0x0031('0x16'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x0031('0x17'));var db=require(_0x0031('0x18'))['db'];function respondWithStatusCode(_0x304310,_0xe56df3){_0xe56df3=_0xe56df3||0xcc;return function(_0x99fcd4){if(_0x99fcd4){return _0x304310[_0x0031('0x19')](_0xe56df3);}return _0x304310['status'](_0xe56df3)['end']();};}function respondWithResult(_0x564613,_0x5ee282){_0x5ee282=_0x5ee282||0xc8;return function(_0x293a9b){if(_0x293a9b){return _0x564613[_0x0031('0x1a')](_0x5ee282)[_0x0031('0x1b')](_0x293a9b);}};}function respondWithFilteredResult(_0x5e95fa,_0x498e3f){return function(_0x1fbf88){if(_0x1fbf88){var _0x1ca1dd=_0x1fbf88[_0x0031('0x1c')],_0x137c46=_0x498e3f[_0x0031('0x1d')],_0x436c51=_0x498e3f[_0x0031('0x1d')]+_0x498e3f[_0x0031('0x1e')],_0x3241e5;if(_0x436c51>=_0x1ca1dd){_0x436c51=_0x1ca1dd;_0x3241e5=0xc8;}else{_0x3241e5=0xce;}_0x5e95fa['status'](_0x3241e5);return _0x5e95fa[_0x0031('0x1f')]('Content-Range',_0x137c46+'-'+_0x436c51+'/'+_0x1ca1dd)[_0x0031('0x1b')](_0x1fbf88);}return null;};}function patchUpdates(_0x22be0c){return function(_0x57981d){try{jsonpatch[_0x0031('0x20')](_0x57981d,_0x22be0c,!![]);}catch(_0x4fa1a0){return BPromise[_0x0031('0x21')](_0x4fa1a0);}return _0x57981d[_0x0031('0x22')]();};}function saveUpdates(_0x1b60fa,_0x9ad04b){return function(_0xba68b7){if(_0xba68b7){return _0xba68b7['update'](_0x1b60fa)['then'](function(_0x2c1489){return _0x2c1489;});}return null;};}function removeEntity(_0x3fcf83,_0x4f74a3){return function(_0x45f0b2){if(_0x45f0b2){return _0x45f0b2[_0x0031('0x23')]()[_0x0031('0x24')](function(){var _0x114735=_0x45f0b2['get']({'plain':!![]});var _0x4bc39e=_0x0031('0x25');return db[_0x0031('0x26')][_0x0031('0x23')]({'where':{'type':_0x4bc39e,'resourceId':_0x114735['id']}})['then'](function(){return _0x45f0b2;});})[_0x0031('0x24')](function(){_0x3fcf83['status'](0xcc)[_0x0031('0x27')]();});}};}function handleEntityNotFound(_0x378473,_0x146059){return function(_0x10b1cf){if(!_0x10b1cf){_0x378473[_0x0031('0x19')](0x194);}return _0x10b1cf;};}function handleError(_0xa12c03,_0xcb2da){_0xcb2da=_0xcb2da||0x1f4;return function(_0x2c7f27){logger[_0x0031('0x28')](_0x2c7f27[_0x0031('0x29')]);if(_0x2c7f27[_0x0031('0x2a')]){delete _0x2c7f27[_0x0031('0x2a')];}_0xa12c03[_0x0031('0x1a')](_0xcb2da)['send'](_0x2c7f27);};}exports[_0x0031('0x2b')]=function(_0x3392a0,_0x24a268){var _0x5813ae={},_0x9d2397={},_0x56d590={'count':0x0,'rows':[]};var _0x4c6ba6=_[_0x0031('0x2c')](db['SquareOdbc'][_0x0031('0x2d')],function(_0x47e7f1){return{'name':_0x47e7f1[_0x0031('0x2e')],'type':_0x47e7f1[_0x0031('0x2f')][_0x0031('0x30')]};});_0x9d2397[_0x0031('0x31')]=_[_0x0031('0x2c')](_0x4c6ba6,_0x0031('0x2a'));_0x9d2397['query']=_[_0x0031('0x32')](_0x3392a0[_0x0031('0x33')]);_0x9d2397[_0x0031('0x34')]=_[_0x0031('0x35')](_0x9d2397[_0x0031('0x31')],_0x9d2397[_0x0031('0x33')]);_0x5813ae[_0x0031('0x36')]=_[_0x0031('0x35')](_0x9d2397[_0x0031('0x31')],qs['fields'](_0x3392a0['query'][_0x0031('0x37')]));_0x5813ae[_0x0031('0x36')]=_0x5813ae[_0x0031('0x36')][_0x0031('0x38')]?_0x5813ae['attributes']:_0x9d2397[_0x0031('0x31')];if(!_0x3392a0[_0x0031('0x33')][_0x0031('0x39')]('nolimit')){_0x5813ae[_0x0031('0x1e')]=qs[_0x0031('0x1e')](_0x3392a0[_0x0031('0x33')]['limit']);_0x5813ae[_0x0031('0x1d')]=qs['offset'](_0x3392a0[_0x0031('0x33')][_0x0031('0x1d')]);}_0x5813ae['order']=qs['sort'](_0x3392a0['query']['sort']);_0x5813ae['where']=qs[_0x0031('0x34')](_['pick'](_0x3392a0[_0x0031('0x33')],_0x9d2397[_0x0031('0x34')]),_0x4c6ba6);if(_0x3392a0['query']['filter']){_0x5813ae[_0x0031('0x3a')]=_[_0x0031('0x3b')](_0x5813ae['where'],{'$or':_[_0x0031('0x2c')](_0x4c6ba6,function(_0x1578a3){if(_0x1578a3['type']!=='VIRTUAL'){var _0x53518d={};_0x53518d[_0x1578a3[_0x0031('0x2a')]]={'$like':'%'+_0x3392a0[_0x0031('0x33')][_0x0031('0x3c')]+'%'};return _0x53518d;}})});}_0x5813ae=_[_0x0031('0x3b')]({},_0x5813ae,_0x3392a0['options']);var _0x282b8e={'where':_0x5813ae[_0x0031('0x3a')]};return db[_0x0031('0x3d')]['count'](_0x282b8e)[_0x0031('0x24')](function(_0x597867){_0x56d590[_0x0031('0x1c')]=_0x597867;if(_0x3392a0[_0x0031('0x33')]['includeAll']){_0x5813ae[_0x0031('0x3e')]=[{'all':!![]}];}return db[_0x0031('0x3d')][_0x0031('0x3f')](_0x5813ae);})[_0x0031('0x24')](function(_0x4f2df5){_0x56d590[_0x0031('0x40')]=_0x4f2df5;return _0x56d590;})[_0x0031('0x24')](respondWithFilteredResult(_0x24a268,_0x5813ae))[_0x0031('0x41')](handleError(_0x24a268,null));};exports['show']=function(_0x3c3760,_0x4cd38d){var _0x79630a={'raw':!![],'where':{'id':_0x3c3760['params']['id']}},_0xd8f891={};_0xd8f891[_0x0031('0x31')]=_[_0x0031('0x32')](db['SquareOdbc']['rawAttributes']);_0xd8f891['query']=_[_0x0031('0x32')](_0x3c3760[_0x0031('0x33')]);_0xd8f891['filters']=_[_0x0031('0x35')](_0xd8f891[_0x0031('0x31')],_0xd8f891[_0x0031('0x33')]);_0x79630a[_0x0031('0x36')]=_[_0x0031('0x35')](_0xd8f891['model'],qs[_0x0031('0x37')](_0x3c3760[_0x0031('0x33')][_0x0031('0x37')]));_0x79630a[_0x0031('0x36')]=_0x79630a[_0x0031('0x36')][_0x0031('0x38')]?_0x79630a[_0x0031('0x36')]:_0xd8f891[_0x0031('0x31')];if(_0x3c3760[_0x0031('0x33')]['includeAll']){_0x79630a[_0x0031('0x3e')]=[{'all':!![]}];}_0x79630a=_['merge']({},_0x79630a,_0x3c3760[_0x0031('0x42')]);return db[_0x0031('0x3d')][_0x0031('0x43')](_0x79630a)[_0x0031('0x24')](handleEntityNotFound(_0x4cd38d,null))[_0x0031('0x24')](respondWithResult(_0x4cd38d,null))[_0x0031('0x41')](handleError(_0x4cd38d,null));};exports[_0x0031('0x44')]=function(_0x2297ca,_0x36b4d6){return db[_0x0031('0x3d')][_0x0031('0x44')](_0x2297ca[_0x0031('0x45')],{})[_0x0031('0x24')](function(_0x4ec080){var _0x39bc9d=_0x2297ca[_0x0031('0x46')][_0x0031('0x47')]({'plain':!![]});if(!_0x39bc9d)throw new Error(_0x0031('0x48'));if(_0x39bc9d[_0x0031('0x49')]===_0x0031('0x46')){var _0x6e86d=_0x4ec080[_0x0031('0x47')]({'plain':!![]});var _0x22943d=_0x0031('0x25');return db[_0x0031('0x4a')][_0x0031('0x43')]({'where':{'name':_0x22943d,'userProfileId':_0x39bc9d[_0x0031('0x4b')]},'raw':!![]})['then'](function(_0x288bf2){if(_0x288bf2&&_0x288bf2[_0x0031('0x4c')]===0x0){return db['UserProfileResource'][_0x0031('0x44')]({'name':_0x6e86d[_0x0031('0x2a')],'resourceId':_0x6e86d['id'],'type':_0x288bf2[_0x0031('0x2a')],'sectionId':_0x288bf2['id']},{})['then'](function(){return _0x4ec080;});}else{return _0x4ec080;}})[_0x0031('0x41')](function(_0x27d22b){logger[_0x0031('0x28')](_0x0031('0x4d'),_0x27d22b);throw _0x27d22b;});}return _0x4ec080;})[_0x0031('0x24')](respondWithResult(_0x36b4d6,0xc9))['catch'](handleError(_0x36b4d6,null));};exports[_0x0031('0x4e')]=function(_0x2ad603,_0x40e098){if(_0x2ad603[_0x0031('0x45')]['id']){delete _0x2ad603[_0x0031('0x45')]['id'];}return db[_0x0031('0x3d')]['find']({'where':{'id':_0x2ad603[_0x0031('0x4f')]['id']}})[_0x0031('0x24')](handleEntityNotFound(_0x40e098,null))[_0x0031('0x24')](saveUpdates(_0x2ad603['body'],null))[_0x0031('0x24')](respondWithResult(_0x40e098,null))[_0x0031('0x41')](handleError(_0x40e098,null));};exports[_0x0031('0x23')]=function(_0x8fe4aa,_0x41af42){return db['SquareOdbc'][_0x0031('0x43')]({'where':{'id':_0x8fe4aa['params']['id']}})[_0x0031('0x24')](handleEntityNotFound(_0x41af42,null))['then'](removeEntity(_0x41af42,null))[_0x0031('0x41')](handleError(_0x41af42,null));};exports[_0x0031('0x50')]=function(_0x56bd36,_0x3bcaef,_0x572ea9){var _0x1e1ee6;return db[_0x0031('0x3d')][_0x0031('0x43')]({'where':{'id':_0x56bd36[_0x0031('0x4f')]['id']},'attributes':['id',_0x0031('0x51')]})[_0x0031('0x24')](handleEntityNotFound(_0x3bcaef,null))['then'](function(_0x440e23){if(_0x440e23){var _0x3445b3=require(_0x0031('0x52'))();_0x3445b3[_0x0031('0x53')](_0x440e23[_0x0031('0x51')]);_0x3445b3[_0x0031('0x54')]();return _0x440e23;}})['then'](respondWithResult(_0x3bcaef,null))[_0x0031('0x41')](handleError(_0x3bcaef,null));};