Built motion from commit b5996064.|2.6.21
[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 _0x5e49=['Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','params','dsn','odbc','openSync','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','ejs','fs-extra','lodash','crypto','jsforce','to-csv','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','offset','undefined','limit','count','set','Content-Range','json','reject','save','update','destroy','get','ODBC','UserProfileResource','then','sendStatus','stack','name','send','index','SquareOdbc','rawAttributes','fieldName','type','key','model','map','query','keys','filters','intersection','attributes','fields','hasOwnProperty','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','length','find','user','role','userProfileId','autoAssociation','create','error'];(function(_0x51cedc,_0x3208e5){var _0x4059e1=function(_0x3c5acb){while(--_0x3c5acb){_0x51cedc['push'](_0x51cedc['shift']());}};_0x4059e1(++_0x3208e5);}(_0x5e49,0xb2));var _0x95e4=function(_0x395718,_0x20322d){_0x395718=_0x395718-0x0;var _0x3028b8=_0x5e49[_0x395718];return _0x3028b8;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x95e4('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x95e4('0x1'));var rp=require(_0x95e4('0x2'));var moment=require(_0x95e4('0x3'));var BPromise=require(_0x95e4('0x4'));var Mustache=require(_0x95e4('0x5'));var util=require(_0x95e4('0x6'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x95e4('0x7'));var fs=require('fs');var fs_extra=require(_0x95e4('0x8'));var _=require(_0x95e4('0x9'));var squel=require('squel');var crypto=require(_0x95e4('0xa'));var jsforce=require(_0x95e4('0xb'));var deskjs=require('desk.js');var toCsv=require(_0x95e4('0xc'));var querystring=require('querystring');var Papa=require(_0x95e4('0xd'));var Redis=require('ioredis');var authService=require(_0x95e4('0xe'));var qs=require(_0x95e4('0xf'));var as=require(_0x95e4('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x95e4('0x11'));var utils=require(_0x95e4('0x12'));var config=require(_0x95e4('0x13'));var licenseUtil=require(_0x95e4('0x14'));var db=require(_0x95e4('0x15'))['db'];function respondWithStatusCode(_0x24037f,_0x55fa32){_0x55fa32=_0x55fa32||0xcc;return function(_0x32413f){if(_0x32413f){return _0x24037f['sendStatus'](_0x55fa32);}return _0x24037f[_0x95e4('0x16')](_0x55fa32)[_0x95e4('0x17')]();};}function respondWithResult(_0x2fd591,_0x315c4d){_0x315c4d=_0x315c4d||0xc8;return function(_0x5bfcaa){if(_0x5bfcaa){return _0x2fd591[_0x95e4('0x16')](_0x315c4d)['json'](_0x5bfcaa);}};}function respondWithFilteredResult(_0x509e3d,_0x20516e){return function(_0x4525dc){if(_0x4525dc){var _0x2a7efe=typeof _0x20516e[_0x95e4('0x18')]===_0x95e4('0x19')&&typeof _0x20516e[_0x95e4('0x1a')]===_0x95e4('0x19');var _0xd4cf0e=_0x4525dc[_0x95e4('0x1b')];var _0x12d255=_0x2a7efe?0x0:_0x20516e[_0x95e4('0x18')];var _0x197088=_0x2a7efe?_0x4525dc[_0x95e4('0x1b')]:_0x20516e['offset']+_0x20516e[_0x95e4('0x1a')];var _0x3b2e1e;if(_0x197088>=_0xd4cf0e){_0x197088=_0xd4cf0e;_0x3b2e1e=0xc8;}else{_0x3b2e1e=0xce;}_0x509e3d['status'](_0x3b2e1e);return _0x509e3d[_0x95e4('0x1c')](_0x95e4('0x1d'),_0x12d255+'-'+_0x197088+'/'+_0xd4cf0e)[_0x95e4('0x1e')](_0x4525dc);}return null;};}function patchUpdates(_0x5266b2){return function(_0x9c0d32){try{jsonpatch['apply'](_0x9c0d32,_0x5266b2,!![]);}catch(_0x2d045b){return BPromise[_0x95e4('0x1f')](_0x2d045b);}return _0x9c0d32[_0x95e4('0x20')]();};}function saveUpdates(_0x408a50,_0x56075e){return function(_0x30c94f){if(_0x30c94f){return _0x30c94f[_0x95e4('0x21')](_0x408a50)['then'](function(_0x511595){return _0x511595;});}return null;};}function removeEntity(_0x3fa6a3,_0xc17eca){return function(_0x258747){if(_0x258747){return _0x258747[_0x95e4('0x22')]()['then'](function(){var _0x108253=_0x258747[_0x95e4('0x23')]({'plain':!![]});var _0x5bf978=_0x95e4('0x24');return db[_0x95e4('0x25')][_0x95e4('0x22')]({'where':{'type':_0x5bf978,'resourceId':_0x108253['id']}})[_0x95e4('0x26')](function(){return _0x258747;});})[_0x95e4('0x26')](function(){_0x3fa6a3[_0x95e4('0x16')](0xcc)[_0x95e4('0x17')]();});}};}function handleEntityNotFound(_0x410882,_0x47729f){return function(_0x11b3ff){if(!_0x11b3ff){_0x410882[_0x95e4('0x27')](0x194);}return _0x11b3ff;};}function handleError(_0x1ced59,_0x24f8a3){_0x24f8a3=_0x24f8a3||0x1f4;return function(_0x38c7c7){logger['error'](_0x38c7c7[_0x95e4('0x28')]);if(_0x38c7c7[_0x95e4('0x29')]){delete _0x38c7c7['name'];}_0x1ced59[_0x95e4('0x16')](_0x24f8a3)[_0x95e4('0x2a')](_0x38c7c7);};}exports[_0x95e4('0x2b')]=function(_0x250ebf,_0x11d61d){var _0x3ed08b={},_0x36f5fb={},_0xba8579={'count':0x0,'rows':[]};var _0x21eb9c=_['map'](db[_0x95e4('0x2c')][_0x95e4('0x2d')],function(_0x2a46bb){return{'name':_0x2a46bb[_0x95e4('0x2e')],'type':_0x2a46bb[_0x95e4('0x2f')][_0x95e4('0x30')]};});_0x36f5fb[_0x95e4('0x31')]=_[_0x95e4('0x32')](_0x21eb9c,_0x95e4('0x29'));_0x36f5fb[_0x95e4('0x33')]=_[_0x95e4('0x34')](_0x250ebf[_0x95e4('0x33')]);_0x36f5fb[_0x95e4('0x35')]=_[_0x95e4('0x36')](_0x36f5fb[_0x95e4('0x31')],_0x36f5fb[_0x95e4('0x33')]);_0x3ed08b[_0x95e4('0x37')]=_[_0x95e4('0x36')](_0x36f5fb['model'],qs['fields'](_0x250ebf[_0x95e4('0x33')][_0x95e4('0x38')]));_0x3ed08b[_0x95e4('0x37')]=_0x3ed08b[_0x95e4('0x37')]['length']?_0x3ed08b[_0x95e4('0x37')]:_0x36f5fb['model'];if(!_0x250ebf[_0x95e4('0x33')][_0x95e4('0x39')]('nolimit')){_0x3ed08b[_0x95e4('0x1a')]=qs[_0x95e4('0x1a')](_0x250ebf['query'][_0x95e4('0x1a')]);_0x3ed08b[_0x95e4('0x18')]=qs[_0x95e4('0x18')](_0x250ebf[_0x95e4('0x33')][_0x95e4('0x18')]);}_0x3ed08b[_0x95e4('0x3a')]=qs[_0x95e4('0x3b')](_0x250ebf[_0x95e4('0x33')][_0x95e4('0x3b')]);_0x3ed08b[_0x95e4('0x3c')]=qs[_0x95e4('0x35')](_[_0x95e4('0x3d')](_0x250ebf[_0x95e4('0x33')],_0x36f5fb[_0x95e4('0x35')]),_0x21eb9c);if(_0x250ebf[_0x95e4('0x33')][_0x95e4('0x3e')]){_0x3ed08b[_0x95e4('0x3c')]=_[_0x95e4('0x3f')](_0x3ed08b[_0x95e4('0x3c')],{'$or':_['map'](_0x21eb9c,function(_0x2f9706){if(_0x2f9706[_0x95e4('0x2f')]!==_0x95e4('0x40')){var _0xbb31={};_0xbb31[_0x2f9706[_0x95e4('0x29')]]={'$like':'%'+_0x250ebf[_0x95e4('0x33')][_0x95e4('0x3e')]+'%'};return _0xbb31;}})});}_0x3ed08b=_[_0x95e4('0x3f')]({},_0x3ed08b,_0x250ebf[_0x95e4('0x41')]);var _0x36bed5={'where':_0x3ed08b[_0x95e4('0x3c')]};return db[_0x95e4('0x2c')]['count'](_0x36bed5)[_0x95e4('0x26')](function(_0x2e8785){_0xba8579[_0x95e4('0x1b')]=_0x2e8785;if(_0x250ebf['query'][_0x95e4('0x42')]){_0x3ed08b[_0x95e4('0x43')]=[{'all':!![]}];}return db[_0x95e4('0x2c')][_0x95e4('0x44')](_0x3ed08b);})['then'](function(_0x17b103){_0xba8579[_0x95e4('0x45')]=_0x17b103;return _0xba8579;})['then'](respondWithFilteredResult(_0x11d61d,_0x3ed08b))[_0x95e4('0x46')](handleError(_0x11d61d,null));};exports[_0x95e4('0x47')]=function(_0x2d89d6,_0x5d38f1){var _0x390309={'raw':!![],'where':{'id':_0x2d89d6['params']['id']}},_0xe10ba5={};_0xe10ba5['model']=_[_0x95e4('0x34')](db['SquareOdbc']['rawAttributes']);_0xe10ba5[_0x95e4('0x33')]=_[_0x95e4('0x34')](_0x2d89d6[_0x95e4('0x33')]);_0xe10ba5['filters']=_[_0x95e4('0x36')](_0xe10ba5[_0x95e4('0x31')],_0xe10ba5[_0x95e4('0x33')]);_0x390309['attributes']=_[_0x95e4('0x36')](_0xe10ba5['model'],qs[_0x95e4('0x38')](_0x2d89d6[_0x95e4('0x33')]['fields']));_0x390309[_0x95e4('0x37')]=_0x390309[_0x95e4('0x37')][_0x95e4('0x48')]?_0x390309[_0x95e4('0x37')]:_0xe10ba5[_0x95e4('0x31')];if(_0x2d89d6[_0x95e4('0x33')]['includeAll']){_0x390309[_0x95e4('0x43')]=[{'all':!![]}];}_0x390309=_[_0x95e4('0x3f')]({},_0x390309,_0x2d89d6[_0x95e4('0x41')]);return db[_0x95e4('0x2c')][_0x95e4('0x49')](_0x390309)[_0x95e4('0x26')](handleEntityNotFound(_0x5d38f1,null))[_0x95e4('0x26')](respondWithResult(_0x5d38f1,null))[_0x95e4('0x46')](handleError(_0x5d38f1,null));};exports['create']=function(_0x30d35c,_0x3e9828){return db[_0x95e4('0x2c')]['create'](_0x30d35c['body'],{})['then'](function(_0xbd2997){var _0x25484b=_0x30d35c[_0x95e4('0x4a')][_0x95e4('0x23')]({'plain':!![]});if(!_0x25484b)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x25484b[_0x95e4('0x4b')]===_0x95e4('0x4a')){var _0x18b03c=_0xbd2997['get']({'plain':!![]});var _0x2679ec=_0x95e4('0x24');return db['UserProfileSection'][_0x95e4('0x49')]({'where':{'name':_0x2679ec,'userProfileId':_0x25484b[_0x95e4('0x4c')]},'raw':!![]})['then'](function(_0x17763b){if(_0x17763b&&_0x17763b[_0x95e4('0x4d')]===0x0){return db[_0x95e4('0x25')][_0x95e4('0x4e')]({'name':_0x18b03c[_0x95e4('0x29')],'resourceId':_0x18b03c['id'],'type':_0x17763b['name'],'sectionId':_0x17763b['id']},{})[_0x95e4('0x26')](function(){return _0xbd2997;});}else{return _0xbd2997;}})['catch'](function(_0x305753){logger[_0x95e4('0x4f')](_0x95e4('0x50'),_0x305753);throw _0x305753;});}return _0xbd2997;})[_0x95e4('0x26')](respondWithResult(_0x3e9828,0xc9))['catch'](handleError(_0x3e9828,null));};exports['update']=function(_0x4e5369,_0x37e041){if(_0x4e5369[_0x95e4('0x51')]['id']){delete _0x4e5369[_0x95e4('0x51')]['id'];}return db[_0x95e4('0x2c')][_0x95e4('0x49')]({'where':{'id':_0x4e5369[_0x95e4('0x52')]['id']}})['then'](handleEntityNotFound(_0x37e041,null))[_0x95e4('0x26')](saveUpdates(_0x4e5369[_0x95e4('0x51')],null))['then'](respondWithResult(_0x37e041,null))[_0x95e4('0x46')](handleError(_0x37e041,null));};exports[_0x95e4('0x22')]=function(_0x270bc1,_0x3988e6){return db[_0x95e4('0x2c')]['find']({'where':{'id':_0x270bc1[_0x95e4('0x52')]['id']}})[_0x95e4('0x26')](handleEntityNotFound(_0x3988e6,null))[_0x95e4('0x26')](removeEntity(_0x3988e6,null))['catch'](handleError(_0x3988e6,null));};exports['test']=function(_0x17f5c7,_0x35a965,_0x253454){var _0x485b58;return db[_0x95e4('0x2c')]['find']({'where':{'id':_0x17f5c7['params']['id']},'attributes':['id',_0x95e4('0x53')]})[_0x95e4('0x26')](handleEntityNotFound(_0x35a965,null))[_0x95e4('0x26')](function(_0x39bc1f){if(_0x39bc1f){var _0x5e0b7b=require(_0x95e4('0x54'))();_0x5e0b7b[_0x95e4('0x55')](_0x39bc1f['dsn']);_0x5e0b7b['closeSync']();return _0x39bc1f;}})[_0x95e4('0x26')](respondWithResult(_0x35a965,null))[_0x95e4('0x46')](handleError(_0x35a965,null));};