213e20ddfaaec5a7f17ea68f8059c231ed054486
[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 _0x6997=['length','include','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','ODBC','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','test','dsn','odbc','openSync','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','util','path','to-csv','ejs','fs-extra','crypto','desk.js','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','end','json','offset','undefined','limit','count','status','Content-Range','reject','save','update','destroy','then','get','UserProfileResource','sendStatus','error','stack','name','index','map','fieldName','type','key','model','keys','query','filters','intersection','fields','attributes','hasOwnProperty','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','findAll','rows','catch','show','params','SquareOdbc'];(function(_0x2e8418,_0x58c529){var _0x548fe6=function(_0x2b2877){while(--_0x2b2877){_0x2e8418['push'](_0x2e8418['shift']());}};_0x548fe6(++_0x58c529);}(_0x6997,0x1ba));var _0x7699=function(_0x37930e,_0x3687d7){_0x37930e=_0x37930e-0x0;var _0x2f106e=_0x6997[_0x37930e];return _0x2f106e;};'use strict';var emlformat=require(_0x7699('0x0'));var rimraf=require(_0x7699('0x1'));var zipdir=require(_0x7699('0x2'));var jsonpatch=require(_0x7699('0x3'));var rp=require(_0x7699('0x4'));var moment=require('moment');var BPromise=require(_0x7699('0x5'));var Mustache=require('mustache');var util=require(_0x7699('0x6'));var path=require(_0x7699('0x7'));var sox=require('sox');var csv=require(_0x7699('0x8'));var ejs=require(_0x7699('0x9'));var fs=require('fs');var fs_extra=require(_0x7699('0xa'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x7699('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x7699('0xc'));var toCsv=require(_0x7699('0x8'));var querystring=require(_0x7699('0xd'));var Papa=require('papaparse');var Redis=require(_0x7699('0xe'));var authService=require('../../components/auth/service');var qs=require(_0x7699('0xf'));var as=require(_0x7699('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x7699('0x11'))('api');var utils=require(_0x7699('0x12'));var config=require(_0x7699('0x13'));var licenseUtil=require(_0x7699('0x14'));var db=require(_0x7699('0x15'))['db'];function respondWithStatusCode(_0x4bea51,_0x1d4255){_0x1d4255=_0x1d4255||0xcc;return function(_0x192278){if(_0x192278){return _0x4bea51['sendStatus'](_0x1d4255);}return _0x4bea51['status'](_0x1d4255)[_0x7699('0x16')]();};}function respondWithResult(_0x4f6fd0,_0x6b3014){_0x6b3014=_0x6b3014||0xc8;return function(_0x6ea251){if(_0x6ea251){return _0x4f6fd0['status'](_0x6b3014)[_0x7699('0x17')](_0x6ea251);}};}function respondWithFilteredResult(_0x3b4588,_0x3e763c){return function(_0x4a9121){if(_0x4a9121){var _0x3a0974=typeof _0x3e763c[_0x7699('0x18')]===_0x7699('0x19')&&typeof _0x3e763c[_0x7699('0x1a')]===_0x7699('0x19');var _0xeae753=_0x4a9121['count'];var _0x57787d=_0x3a0974?0x0:_0x3e763c['offset'];var _0x47c2e7=_0x3a0974?_0x4a9121[_0x7699('0x1b')]:_0x3e763c[_0x7699('0x18')]+_0x3e763c[_0x7699('0x1a')];var _0x2de03b;if(_0x47c2e7>=_0xeae753){_0x47c2e7=_0xeae753;_0x2de03b=0xc8;}else{_0x2de03b=0xce;}_0x3b4588[_0x7699('0x1c')](_0x2de03b);return _0x3b4588['set'](_0x7699('0x1d'),_0x57787d+'-'+_0x47c2e7+'/'+_0xeae753)[_0x7699('0x17')](_0x4a9121);}return null;};}function patchUpdates(_0x4b826d){return function(_0x4b0f10){try{jsonpatch['apply'](_0x4b0f10,_0x4b826d,!![]);}catch(_0x3db75c){return BPromise[_0x7699('0x1e')](_0x3db75c);}return _0x4b0f10[_0x7699('0x1f')]();};}function saveUpdates(_0x2513b3,_0x19c6eb){return function(_0x5d5180){if(_0x5d5180){return _0x5d5180[_0x7699('0x20')](_0x2513b3)['then'](function(_0x16a766){return _0x16a766;});}return null;};}function removeEntity(_0x258ccb,_0x1d7e53){return function(_0x449fca){if(_0x449fca){return _0x449fca[_0x7699('0x21')]()[_0x7699('0x22')](function(){var _0x3b7057=_0x449fca[_0x7699('0x23')]({'plain':!![]});var _0x3fcbce='ODBC';return db[_0x7699('0x24')][_0x7699('0x21')]({'where':{'type':_0x3fcbce,'resourceId':_0x3b7057['id']}})[_0x7699('0x22')](function(){return _0x449fca;});})['then'](function(){_0x258ccb[_0x7699('0x1c')](0xcc)[_0x7699('0x16')]();});}};}function handleEntityNotFound(_0x2c6e9a,_0xb212e8){return function(_0x4aeaec){if(!_0x4aeaec){_0x2c6e9a[_0x7699('0x25')](0x194);}return _0x4aeaec;};}function handleError(_0x19ae83,_0x1e6e1f){_0x1e6e1f=_0x1e6e1f||0x1f4;return function(_0x55eca1){logger[_0x7699('0x26')](_0x55eca1[_0x7699('0x27')]);if(_0x55eca1['name']){delete _0x55eca1[_0x7699('0x28')];}_0x19ae83[_0x7699('0x1c')](_0x1e6e1f)['send'](_0x55eca1);};}exports[_0x7699('0x29')]=function(_0x3b158d,_0x1f03d5){var _0x291bfd={},_0x578c05={},_0x1986ab={'count':0x0,'rows':[]};var _0x502340=_[_0x7699('0x2a')](db['SquareOdbc']['rawAttributes'],function(_0x471a4d){return{'name':_0x471a4d[_0x7699('0x2b')],'type':_0x471a4d[_0x7699('0x2c')][_0x7699('0x2d')]};});_0x578c05[_0x7699('0x2e')]=_[_0x7699('0x2a')](_0x502340,_0x7699('0x28'));_0x578c05['query']=_[_0x7699('0x2f')](_0x3b158d[_0x7699('0x30')]);_0x578c05[_0x7699('0x31')]=_[_0x7699('0x32')](_0x578c05['model'],_0x578c05[_0x7699('0x30')]);_0x291bfd['attributes']=_[_0x7699('0x32')](_0x578c05['model'],qs[_0x7699('0x33')](_0x3b158d[_0x7699('0x30')][_0x7699('0x33')]));_0x291bfd[_0x7699('0x34')]=_0x291bfd['attributes']['length']?_0x291bfd['attributes']:_0x578c05[_0x7699('0x2e')];if(!_0x3b158d[_0x7699('0x30')][_0x7699('0x35')]('nolimit')){_0x291bfd[_0x7699('0x1a')]=qs[_0x7699('0x1a')](_0x3b158d[_0x7699('0x30')][_0x7699('0x1a')]);_0x291bfd[_0x7699('0x18')]=qs[_0x7699('0x18')](_0x3b158d[_0x7699('0x30')][_0x7699('0x18')]);}_0x291bfd['order']=qs[_0x7699('0x36')](_0x3b158d[_0x7699('0x30')][_0x7699('0x36')]);_0x291bfd[_0x7699('0x37')]=qs[_0x7699('0x31')](_[_0x7699('0x38')](_0x3b158d[_0x7699('0x30')],_0x578c05[_0x7699('0x31')]),_0x502340);if(_0x3b158d['query'][_0x7699('0x39')]){_0x291bfd[_0x7699('0x37')]=_[_0x7699('0x3a')](_0x291bfd[_0x7699('0x37')],{'$or':_[_0x7699('0x2a')](_0x502340,function(_0x250126){if(_0x250126[_0x7699('0x2c')]!==_0x7699('0x3b')){var _0x49d95b={};_0x49d95b[_0x250126['name']]={'$like':'%'+_0x3b158d[_0x7699('0x30')][_0x7699('0x39')]+'%'};return _0x49d95b;}})});}_0x291bfd=_[_0x7699('0x3a')]({},_0x291bfd,_0x3b158d[_0x7699('0x3c')]);var _0x247327={'where':_0x291bfd[_0x7699('0x37')]};return db['SquareOdbc'][_0x7699('0x1b')](_0x247327)[_0x7699('0x22')](function(_0x4535e3){_0x1986ab[_0x7699('0x1b')]=_0x4535e3;if(_0x3b158d[_0x7699('0x30')][_0x7699('0x3d')]){_0x291bfd['include']=[{'all':!![]}];}return db['SquareOdbc'][_0x7699('0x3e')](_0x291bfd);})[_0x7699('0x22')](function(_0x50ff79){_0x1986ab[_0x7699('0x3f')]=_0x50ff79;return _0x1986ab;})['then'](respondWithFilteredResult(_0x1f03d5,_0x291bfd))[_0x7699('0x40')](handleError(_0x1f03d5,null));};exports[_0x7699('0x41')]=function(_0x462834,_0x42f7f2){var _0x506866={'raw':!![],'where':{'id':_0x462834[_0x7699('0x42')]['id']}},_0x61f1c0={};_0x61f1c0[_0x7699('0x2e')]=_[_0x7699('0x2f')](db[_0x7699('0x43')]['rawAttributes']);_0x61f1c0[_0x7699('0x30')]=_[_0x7699('0x2f')](_0x462834[_0x7699('0x30')]);_0x61f1c0[_0x7699('0x31')]=_['intersection'](_0x61f1c0['model'],_0x61f1c0[_0x7699('0x30')]);_0x506866['attributes']=_[_0x7699('0x32')](_0x61f1c0[_0x7699('0x2e')],qs[_0x7699('0x33')](_0x462834[_0x7699('0x30')]['fields']));_0x506866[_0x7699('0x34')]=_0x506866['attributes'][_0x7699('0x44')]?_0x506866[_0x7699('0x34')]:_0x61f1c0[_0x7699('0x2e')];if(_0x462834[_0x7699('0x30')][_0x7699('0x3d')]){_0x506866[_0x7699('0x45')]=[{'all':!![]}];}_0x506866=_[_0x7699('0x3a')]({},_0x506866,_0x462834['options']);return db[_0x7699('0x43')][_0x7699('0x46')](_0x506866)[_0x7699('0x22')](handleEntityNotFound(_0x42f7f2,null))[_0x7699('0x22')](respondWithResult(_0x42f7f2,null))[_0x7699('0x40')](handleError(_0x42f7f2,null));};exports[_0x7699('0x47')]=function(_0xbd513d,_0x4c92e7){return db[_0x7699('0x43')][_0x7699('0x47')](_0xbd513d[_0x7699('0x48')],{})['then'](function(_0x917c53){var _0x30bbb1=_0xbd513d[_0x7699('0x49')]['get']({'plain':!![]});if(!_0x30bbb1)throw new Error(_0x7699('0x4a'));if(_0x30bbb1[_0x7699('0x4b')]===_0x7699('0x49')){var _0x51a1da=_0x917c53[_0x7699('0x23')]({'plain':!![]});var _0x4fb025=_0x7699('0x4c');return db[_0x7699('0x4d')][_0x7699('0x46')]({'where':{'name':_0x4fb025,'userProfileId':_0x30bbb1[_0x7699('0x4e')]},'raw':!![]})[_0x7699('0x22')](function(_0x131428){if(_0x131428&&_0x131428[_0x7699('0x4f')]===0x0){return db[_0x7699('0x24')][_0x7699('0x47')]({'name':_0x51a1da[_0x7699('0x28')],'resourceId':_0x51a1da['id'],'type':_0x131428['name'],'sectionId':_0x131428['id']},{})['then'](function(){return _0x917c53;});}else{return _0x917c53;}})[_0x7699('0x40')](function(_0x36f137){logger[_0x7699('0x26')](_0x7699('0x50'),_0x36f137);throw _0x36f137;});}return _0x917c53;})[_0x7699('0x22')](respondWithResult(_0x4c92e7,0xc9))[_0x7699('0x40')](handleError(_0x4c92e7,null));};exports[_0x7699('0x20')]=function(_0x32793b,_0x20df7c){if(_0x32793b[_0x7699('0x48')]['id']){delete _0x32793b[_0x7699('0x48')]['id'];}return db['SquareOdbc'][_0x7699('0x46')]({'where':{'id':_0x32793b[_0x7699('0x42')]['id']}})[_0x7699('0x22')](handleEntityNotFound(_0x20df7c,null))['then'](saveUpdates(_0x32793b[_0x7699('0x48')],null))[_0x7699('0x22')](respondWithResult(_0x20df7c,null))[_0x7699('0x40')](handleError(_0x20df7c,null));};exports[_0x7699('0x21')]=function(_0x4982da,_0x318d75){return db[_0x7699('0x43')][_0x7699('0x46')]({'where':{'id':_0x4982da['params']['id']}})[_0x7699('0x22')](handleEntityNotFound(_0x318d75,null))[_0x7699('0x22')](removeEntity(_0x318d75,null))[_0x7699('0x40')](handleError(_0x318d75,null));};exports[_0x7699('0x51')]=function(_0x3230e2,_0x482d31,_0x2063cd){var _0xa8380c;return db[_0x7699('0x43')][_0x7699('0x46')]({'where':{'id':_0x3230e2['params']['id']},'attributes':['id',_0x7699('0x52')]})[_0x7699('0x22')](handleEntityNotFound(_0x482d31,null))[_0x7699('0x22')](function(_0x229fa4){if(_0x229fa4){var _0x54c1a7=require(_0x7699('0x53'))();_0x54c1a7[_0x7699('0x54')](_0x229fa4[_0x7699('0x52')]);_0x54c1a7['closeSync']();return _0x229fa4;}})['then'](respondWithResult(_0x482d31,null))['catch'](handleError(_0x482d31,null));};