Built motion from commit (unavailable).|2.4.16
[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 _0x0871=['query','keys','intersection','fields','length','attributes','hasOwnProperty','order','sort','where','filters','pick','filter','merge','type','options','count','include','catch','params','create','body','user','get','role','UserProfileSection','find','userProfileId','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','odbc','openSync','closeSync','html-pdf','eml-format','rimraf','request-promise','bluebird','mustache','util','sox','to-csv','ejs','lodash','crypto','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','status','json','offset','limit','set','apply','save','update','then','destroy','ODBC','error','stack','name','send','index','map','SquareOdbc','rawAttributes','fieldName','model'];(function(_0x54fdd2,_0x491940){var _0x5e26ba=function(_0x5b4d9e){while(--_0x5b4d9e){_0x54fdd2['push'](_0x54fdd2['shift']());}};_0x5e26ba(++_0x491940);}(_0x0871,0xbd));var _0x1087=function(_0x3d4876,_0x366386){_0x3d4876=_0x3d4876-0x0;var _0x58ca9d=_0x0871[_0x3d4876];return _0x58ca9d;};'use strict';var pdf=require(_0x1087('0x0'));var emlformat=require(_0x1087('0x1'));var rimraf=require(_0x1087('0x2'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x1087('0x3'));var moment=require('moment');var BPromise=require(_0x1087('0x4'));var Mustache=require(_0x1087('0x5'));var util=require(_0x1087('0x6'));var path=require('path');var sox=require(_0x1087('0x7'));var csv=require(_0x1087('0x8'));var ejs=require(_0x1087('0x9'));var fs=require('fs');var _=require(_0x1087('0xa'));var squel=require('squel');var crypto=require(_0x1087('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x1087('0xc'));var toCsv=require(_0x1087('0x8'));var querystring=require(_0x1087('0xd'));var Papa=require(_0x1087('0xe'));var Redis=require('ioredis');var authService=require(_0x1087('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0x1087('0x10'));var hardwareService=require(_0x1087('0x11'));var logger=require(_0x1087('0x12'))('api');var utils=require(_0x1087('0x13'));var config=require(_0x1087('0x14'));var db=require(_0x1087('0x15'))['db'];function respondWithStatusCode(_0x5df3f3,_0x1374b0){_0x1374b0=_0x1374b0||0xcc;return function(_0x2844d8){if(_0x2844d8){return _0x5df3f3[_0x1087('0x16')](_0x1374b0);}return _0x5df3f3['status'](_0x1374b0)[_0x1087('0x17')]();};}function respondWithResult(_0x3b0853,_0x18360c){_0x18360c=_0x18360c||0xc8;return function(_0x1403ee){if(_0x1403ee){return _0x3b0853[_0x1087('0x18')](_0x18360c)[_0x1087('0x19')](_0x1403ee);}};}function respondWithFilteredResult(_0x31d5eb,_0x508e0c){return function(_0x5e05e0){if(_0x5e05e0){var _0x4fdb24=_0x5e05e0['count'],_0x1cea68=_0x508e0c[_0x1087('0x1a')],_0xe634cc=_0x508e0c[_0x1087('0x1a')]+_0x508e0c[_0x1087('0x1b')],_0x496ec6;if(_0xe634cc>=_0x4fdb24){_0xe634cc=_0x4fdb24;_0x496ec6=0xc8;}else{_0x496ec6=0xce;}_0x31d5eb[_0x1087('0x18')](_0x496ec6);return _0x31d5eb[_0x1087('0x1c')]('Content-Range',_0x1cea68+'-'+_0xe634cc+'/'+_0x4fdb24)['json'](_0x5e05e0);}return null;};}function patchUpdates(_0x16046c){return function(_0xda49cd){try{jsonpatch[_0x1087('0x1d')](_0xda49cd,_0x16046c,!![]);}catch(_0x524623){return BPromise['reject'](_0x524623);}return _0xda49cd[_0x1087('0x1e')]();};}function saveUpdates(_0x4ee81b,_0x8ee63d){return function(_0x25ef4b){if(_0x25ef4b){return _0x25ef4b[_0x1087('0x1f')](_0x4ee81b)[_0x1087('0x20')](function(_0x4931ee){return _0x4931ee;});}return null;};}function removeEntity(_0x5a1462,_0x545b0c){return function(_0x37a942){if(_0x37a942){return _0x37a942[_0x1087('0x21')]()['then'](function(){var _0x337191=_0x37a942['get']({'plain':!![]});var _0x42448f=_0x1087('0x22');return db['UserProfileResource'][_0x1087('0x21')]({'where':{'type':_0x42448f,'resourceId':_0x337191['id']}})[_0x1087('0x20')](function(){return _0x37a942;});})[_0x1087('0x20')](function(){_0x5a1462[_0x1087('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0x41c251,_0x260575){return function(_0x413ea5){if(!_0x413ea5){_0x41c251[_0x1087('0x16')](0x194);}return _0x413ea5;};}function handleError(_0x5832dd,_0x4069c6){_0x4069c6=_0x4069c6||0x1f4;return function(_0x47fcee){logger[_0x1087('0x23')](_0x47fcee[_0x1087('0x24')]);if(_0x47fcee[_0x1087('0x25')]){delete _0x47fcee[_0x1087('0x25')];}_0x5832dd[_0x1087('0x18')](_0x4069c6)[_0x1087('0x26')](_0x47fcee);};}exports[_0x1087('0x27')]=function(_0x470cc1,_0x13fcf5){var _0x13a32d={},_0x430c38={},_0x3f20f3={'count':0x0,'rows':[]};var _0x4e7224=_[_0x1087('0x28')](db[_0x1087('0x29')][_0x1087('0x2a')],function(_0x488573){return{'name':_0x488573[_0x1087('0x2b')],'type':_0x488573['type']['key']};});_0x430c38[_0x1087('0x2c')]=_[_0x1087('0x28')](_0x4e7224,_0x1087('0x25'));_0x430c38[_0x1087('0x2d')]=_[_0x1087('0x2e')](_0x470cc1[_0x1087('0x2d')]);_0x430c38['filters']=_[_0x1087('0x2f')](_0x430c38[_0x1087('0x2c')],_0x430c38[_0x1087('0x2d')]);_0x13a32d['attributes']=_[_0x1087('0x2f')](_0x430c38[_0x1087('0x2c')],qs[_0x1087('0x30')](_0x470cc1[_0x1087('0x2d')][_0x1087('0x30')]));_0x13a32d['attributes']=_0x13a32d['attributes'][_0x1087('0x31')]?_0x13a32d[_0x1087('0x32')]:_0x430c38[_0x1087('0x2c')];if(!_0x470cc1['query'][_0x1087('0x33')]('nolimit')){_0x13a32d[_0x1087('0x1b')]=qs['limit'](_0x470cc1[_0x1087('0x2d')][_0x1087('0x1b')]);_0x13a32d['offset']=qs['offset'](_0x470cc1[_0x1087('0x2d')]['offset']);}_0x13a32d[_0x1087('0x34')]=qs[_0x1087('0x35')](_0x470cc1[_0x1087('0x2d')]['sort']);_0x13a32d[_0x1087('0x36')]=qs[_0x1087('0x37')](_[_0x1087('0x38')](_0x470cc1[_0x1087('0x2d')],_0x430c38[_0x1087('0x37')]));if(_0x470cc1[_0x1087('0x2d')][_0x1087('0x39')]){_0x13a32d[_0x1087('0x36')]=_[_0x1087('0x3a')](_0x13a32d[_0x1087('0x36')],{'$or':_['map'](_0x4e7224,function(_0x495e87){if(_0x495e87[_0x1087('0x3b')]!=='VIRTUAL'){var _0x3a58b0={};_0x3a58b0[_0x495e87[_0x1087('0x25')]]={'$like':'%'+_0x470cc1['query'][_0x1087('0x39')]+'%'};return _0x3a58b0;}})});}_0x13a32d=_[_0x1087('0x3a')]({},_0x13a32d,_0x470cc1[_0x1087('0x3c')]);var _0x14b58f={'where':_0x13a32d[_0x1087('0x36')]};return db['SquareOdbc'][_0x1087('0x3d')](_0x14b58f)['then'](function(_0x49a7a7){_0x3f20f3['count']=_0x49a7a7;if(_0x470cc1[_0x1087('0x2d')]['includeAll']){_0x13a32d[_0x1087('0x3e')]=[{'all':!![]}];}return db['SquareOdbc']['findAll'](_0x13a32d);})[_0x1087('0x20')](function(_0x5ddc90){_0x3f20f3['rows']=_0x5ddc90;return _0x3f20f3;})[_0x1087('0x20')](respondWithFilteredResult(_0x13fcf5,_0x13a32d))[_0x1087('0x3f')](handleError(_0x13fcf5,null));};exports['show']=function(_0x8078d9,_0x5dae24){var _0xd7c8fe={'raw':!![],'where':{'id':_0x8078d9[_0x1087('0x40')]['id']}},_0x288d2e={};_0x288d2e['model']=_[_0x1087('0x2e')](db[_0x1087('0x29')][_0x1087('0x2a')]);_0x288d2e[_0x1087('0x2d')]=_[_0x1087('0x2e')](_0x8078d9[_0x1087('0x2d')]);_0x288d2e[_0x1087('0x37')]=_[_0x1087('0x2f')](_0x288d2e['model'],_0x288d2e[_0x1087('0x2d')]);_0xd7c8fe[_0x1087('0x32')]=_[_0x1087('0x2f')](_0x288d2e[_0x1087('0x2c')],qs[_0x1087('0x30')](_0x8078d9[_0x1087('0x2d')][_0x1087('0x30')]));_0xd7c8fe[_0x1087('0x32')]=_0xd7c8fe[_0x1087('0x32')][_0x1087('0x31')]?_0xd7c8fe[_0x1087('0x32')]:_0x288d2e[_0x1087('0x2c')];if(_0x8078d9['query']['includeAll']){_0xd7c8fe['include']=[{'all':!![]}];}_0xd7c8fe=_['merge']({},_0xd7c8fe,_0x8078d9['options']);return db[_0x1087('0x29')]['find'](_0xd7c8fe)[_0x1087('0x20')](handleEntityNotFound(_0x5dae24,null))[_0x1087('0x20')](respondWithResult(_0x5dae24,null))['catch'](handleError(_0x5dae24,null));};exports[_0x1087('0x41')]=function(_0x481f52,_0x5d3e70){return db[_0x1087('0x29')]['create'](_0x481f52[_0x1087('0x42')],{})[_0x1087('0x20')](function(_0x3a2424){var _0x19d945=_0x481f52[_0x1087('0x43')][_0x1087('0x44')]({'plain':!![]});if(!_0x19d945)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x19d945[_0x1087('0x45')]===_0x1087('0x43')){var _0x3d8c66=_0x3a2424[_0x1087('0x44')]({'plain':!![]});var _0x219a40='ODBC';return db[_0x1087('0x46')][_0x1087('0x47')]({'where':{'name':_0x219a40,'userProfileId':_0x19d945[_0x1087('0x48')]},'raw':!![]})[_0x1087('0x20')](function(_0x5eb2cb){if(_0x5eb2cb&&_0x5eb2cb['autoAssociation']===0x0){return db[_0x1087('0x49')]['create']({'name':_0x3d8c66[_0x1087('0x25')],'resourceId':_0x3d8c66['id'],'type':_0x5eb2cb[_0x1087('0x25')],'sectionId':_0x5eb2cb['id']},{})[_0x1087('0x20')](function(){return _0x3a2424;});}else{return _0x3a2424;}})['catch'](function(_0x535214){logger[_0x1087('0x23')](_0x1087('0x4a'),_0x535214);throw _0x535214;});}return _0x3a2424;})[_0x1087('0x20')](respondWithResult(_0x5d3e70,0xc9))[_0x1087('0x3f')](handleError(_0x5d3e70,null));};exports[_0x1087('0x1f')]=function(_0x2c97b9,_0x49d5af){if(_0x2c97b9[_0x1087('0x42')]['id']){delete _0x2c97b9[_0x1087('0x42')]['id'];}return db['SquareOdbc']['find']({'where':{'id':_0x2c97b9[_0x1087('0x40')]['id']}})[_0x1087('0x20')](handleEntityNotFound(_0x49d5af,null))[_0x1087('0x20')](saveUpdates(_0x2c97b9[_0x1087('0x42')],null))[_0x1087('0x20')](respondWithResult(_0x49d5af,null))[_0x1087('0x3f')](handleError(_0x49d5af,null));};exports[_0x1087('0x21')]=function(_0x475b6b,_0x56dfd8){return db[_0x1087('0x29')][_0x1087('0x47')]({'where':{'id':_0x475b6b[_0x1087('0x40')]['id']}})['then'](handleEntityNotFound(_0x56dfd8,null))[_0x1087('0x20')](removeEntity(_0x56dfd8,null))['catch'](handleError(_0x56dfd8,null));};exports['test']=function(_0x3e42cb,_0xc66185,_0x2ab8af){var _0x596b78;return db['SquareOdbc']['find']({'where':{'id':_0x3e42cb['params']['id']},'attributes':['id','dsn']})['then'](handleEntityNotFound(_0xc66185,null))[_0x1087('0x20')](function(_0x5017be){if(_0x5017be){var _0x141f73=require(_0x1087('0x4b'))();_0x141f73[_0x1087('0x4c')](_0x5017be['dsn']);_0x141f73[_0x1087('0x4d')]();return _0x5017be;}})[_0x1087('0x20')](respondWithResult(_0xc66185,null))[_0x1087('0x3f')](handleError(_0xc66185,null));};