6e2626799c51c039879172772e7c085e9090bc4e
[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 _0x380a=['fields','includeAll','include','find','create','body','user','get','role','userProfileId','autoAssociation','update','dsn','odbc','closeSync','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','ejs','lodash','crypto','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','count','offset','Content-Range','json','apply','reject','save','destroy','then','UserProfileResource','error','stack','name','send','map','SquareOdbc','fieldName','key','model','query','intersection','attributes','length','nolimit','limit','order','sort','where','filters','pick','merge','type','filter','options','findAll','rows','catch','params','keys','rawAttributes'];(function(_0xfd4492,_0x182c25){var _0x587319=function(_0x352494){while(--_0x352494){_0xfd4492['push'](_0xfd4492['shift']());}};_0x587319(++_0x182c25);}(_0x380a,0x10b));var _0xa380=function(_0x20187f,_0xbf67c9){_0x20187f=_0x20187f-0x0;var _0x398db5=_0x380a[_0x20187f];return _0x398db5;};'use strict';var pdf=require(_0xa380('0x0'));var emlformat=require(_0xa380('0x1'));var rimraf=require(_0xa380('0x2'));var zipdir=require(_0xa380('0x3'));var jsonpatch=require(_0xa380('0x4'));var rp=require(_0xa380('0x5'));var moment=require('moment');var BPromise=require(_0xa380('0x6'));var Mustache=require(_0xa380('0x7'));var util=require(_0xa380('0x8'));var path=require(_0xa380('0x9'));var sox=require(_0xa380('0xa'));var csv=require('to-csv');var ejs=require(_0xa380('0xb'));var fs=require('fs');var _=require(_0xa380('0xc'));var squel=require('squel');var crypto=require(_0xa380('0xd'));var jsforce=require('jsforce');var deskjs=require(_0xa380('0xe'));var toCsv=require(_0xa380('0xf'));var querystring=require(_0xa380('0x10'));var Papa=require(_0xa380('0x11'));var Redis=require(_0xa380('0x12'));var authService=require(_0xa380('0x13'));var qs=require(_0xa380('0x14'));var as=require(_0xa380('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xa380('0x16'))(_0xa380('0x17'));var utils=require(_0xa380('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0xa380('0x19'));var db=require(_0xa380('0x1a'))['db'];function respondWithStatusCode(_0x48ddb9,_0x429f77){_0x429f77=_0x429f77||0xcc;return function(_0x4da066){if(_0x4da066){return _0x48ddb9[_0xa380('0x1b')](_0x429f77);}return _0x48ddb9['status'](_0x429f77)['end']();};}function respondWithResult(_0x4667bd,_0x3baf60){_0x3baf60=_0x3baf60||0xc8;return function(_0x1628d3){if(_0x1628d3){return _0x4667bd[_0xa380('0x1c')](_0x3baf60)['json'](_0x1628d3);}};}function respondWithFilteredResult(_0x3b3688,_0x2749c1){return function(_0x20252b){if(_0x20252b){var _0x2c479b=_0x20252b[_0xa380('0x1d')],_0x51aec9=_0x2749c1[_0xa380('0x1e')],_0x30884a=_0x2749c1['offset']+_0x2749c1['limit'],_0x5d9477;if(_0x30884a>=_0x2c479b){_0x30884a=_0x2c479b;_0x5d9477=0xc8;}else{_0x5d9477=0xce;}_0x3b3688[_0xa380('0x1c')](_0x5d9477);return _0x3b3688['set'](_0xa380('0x1f'),_0x51aec9+'-'+_0x30884a+'/'+_0x2c479b)[_0xa380('0x20')](_0x20252b);}return null;};}function patchUpdates(_0xd19b1c){return function(_0x72e20c){try{jsonpatch[_0xa380('0x21')](_0x72e20c,_0xd19b1c,!![]);}catch(_0x504133){return BPromise[_0xa380('0x22')](_0x504133);}return _0x72e20c[_0xa380('0x23')]();};}function saveUpdates(_0x53da3d,_0x24ae28){return function(_0x5d3545){if(_0x5d3545){return _0x5d3545['update'](_0x53da3d)['then'](function(_0x3d7a56){return _0x3d7a56;});}return null;};}function removeEntity(_0x25660e,_0x1f9a2c){return function(_0x5e1023){if(_0x5e1023){return _0x5e1023[_0xa380('0x24')]()[_0xa380('0x25')](function(){var _0x297016=_0x5e1023['get']({'plain':!![]});var _0x102b4a='ODBC';return db[_0xa380('0x26')][_0xa380('0x24')]({'where':{'type':_0x102b4a,'resourceId':_0x297016['id']}})['then'](function(){return _0x5e1023;});})[_0xa380('0x25')](function(){_0x25660e[_0xa380('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5438ff,_0x216114){return function(_0x4c130b){if(!_0x4c130b){_0x5438ff['sendStatus'](0x194);}return _0x4c130b;};}function handleError(_0x1a4f42,_0x20ebbe){_0x20ebbe=_0x20ebbe||0x1f4;return function(_0x38ea5){logger[_0xa380('0x27')](_0x38ea5[_0xa380('0x28')]);if(_0x38ea5['name']){delete _0x38ea5[_0xa380('0x29')];}_0x1a4f42[_0xa380('0x1c')](_0x20ebbe)[_0xa380('0x2a')](_0x38ea5);};}exports['index']=function(_0x43bbf0,_0x15faae){var _0x11a84c={},_0x624091={},_0x3e8a68={'count':0x0,'rows':[]};var _0x13953a=_[_0xa380('0x2b')](db[_0xa380('0x2c')]['rawAttributes'],function(_0x4054f0){return{'name':_0x4054f0[_0xa380('0x2d')],'type':_0x4054f0['type'][_0xa380('0x2e')]};});_0x624091[_0xa380('0x2f')]=_[_0xa380('0x2b')](_0x13953a,_0xa380('0x29'));_0x624091[_0xa380('0x30')]=_['keys'](_0x43bbf0[_0xa380('0x30')]);_0x624091['filters']=_[_0xa380('0x31')](_0x624091[_0xa380('0x2f')],_0x624091['query']);_0x11a84c[_0xa380('0x32')]=_[_0xa380('0x31')](_0x624091[_0xa380('0x2f')],qs['fields'](_0x43bbf0['query']['fields']));_0x11a84c[_0xa380('0x32')]=_0x11a84c[_0xa380('0x32')][_0xa380('0x33')]?_0x11a84c['attributes']:_0x624091[_0xa380('0x2f')];if(!_0x43bbf0[_0xa380('0x30')]['hasOwnProperty'](_0xa380('0x34'))){_0x11a84c[_0xa380('0x35')]=qs[_0xa380('0x35')](_0x43bbf0[_0xa380('0x30')][_0xa380('0x35')]);_0x11a84c[_0xa380('0x1e')]=qs[_0xa380('0x1e')](_0x43bbf0[_0xa380('0x30')][_0xa380('0x1e')]);}_0x11a84c[_0xa380('0x36')]=qs[_0xa380('0x37')](_0x43bbf0[_0xa380('0x30')][_0xa380('0x37')]);_0x11a84c[_0xa380('0x38')]=qs[_0xa380('0x39')](_[_0xa380('0x3a')](_0x43bbf0[_0xa380('0x30')],_0x624091[_0xa380('0x39')]),_0x13953a);if(_0x43bbf0[_0xa380('0x30')]['filter']){_0x11a84c[_0xa380('0x38')]=_[_0xa380('0x3b')](_0x11a84c['where'],{'$or':_[_0xa380('0x2b')](_0x13953a,function(_0x56589b){if(_0x56589b[_0xa380('0x3c')]!=='VIRTUAL'){var _0x33f0cf={};_0x33f0cf[_0x56589b[_0xa380('0x29')]]={'$like':'%'+_0x43bbf0[_0xa380('0x30')][_0xa380('0x3d')]+'%'};return _0x33f0cf;}})});}_0x11a84c=_[_0xa380('0x3b')]({},_0x11a84c,_0x43bbf0[_0xa380('0x3e')]);var _0x1243b9={'where':_0x11a84c[_0xa380('0x38')]};return db[_0xa380('0x2c')][_0xa380('0x1d')](_0x1243b9)[_0xa380('0x25')](function(_0x559cae){_0x3e8a68[_0xa380('0x1d')]=_0x559cae;if(_0x43bbf0[_0xa380('0x30')]['includeAll']){_0x11a84c['include']=[{'all':!![]}];}return db[_0xa380('0x2c')][_0xa380('0x3f')](_0x11a84c);})[_0xa380('0x25')](function(_0x31b04d){_0x3e8a68[_0xa380('0x40')]=_0x31b04d;return _0x3e8a68;})[_0xa380('0x25')](respondWithFilteredResult(_0x15faae,_0x11a84c))[_0xa380('0x41')](handleError(_0x15faae,null));};exports['show']=function(_0x15e59d,_0x1886f7){var _0x3f006f={'raw':!![],'where':{'id':_0x15e59d[_0xa380('0x42')]['id']}},_0x5c2e66={};_0x5c2e66[_0xa380('0x2f')]=_[_0xa380('0x43')](db[_0xa380('0x2c')][_0xa380('0x44')]);_0x5c2e66[_0xa380('0x30')]=_[_0xa380('0x43')](_0x15e59d['query']);_0x5c2e66[_0xa380('0x39')]=_[_0xa380('0x31')](_0x5c2e66[_0xa380('0x2f')],_0x5c2e66['query']);_0x3f006f[_0xa380('0x32')]=_[_0xa380('0x31')](_0x5c2e66[_0xa380('0x2f')],qs[_0xa380('0x45')](_0x15e59d['query'][_0xa380('0x45')]));_0x3f006f[_0xa380('0x32')]=_0x3f006f[_0xa380('0x32')][_0xa380('0x33')]?_0x3f006f['attributes']:_0x5c2e66[_0xa380('0x2f')];if(_0x15e59d[_0xa380('0x30')][_0xa380('0x46')]){_0x3f006f[_0xa380('0x47')]=[{'all':!![]}];}_0x3f006f=_[_0xa380('0x3b')]({},_0x3f006f,_0x15e59d[_0xa380('0x3e')]);return db['SquareOdbc'][_0xa380('0x48')](_0x3f006f)[_0xa380('0x25')](handleEntityNotFound(_0x1886f7,null))['then'](respondWithResult(_0x1886f7,null))[_0xa380('0x41')](handleError(_0x1886f7,null));};exports[_0xa380('0x49')]=function(_0x114ddb,_0x55e1f2){return db[_0xa380('0x2c')][_0xa380('0x49')](_0x114ddb[_0xa380('0x4a')],{})[_0xa380('0x25')](function(_0x162433){var _0x5680d1=_0x114ddb[_0xa380('0x4b')][_0xa380('0x4c')]({'plain':!![]});if(!_0x5680d1)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x5680d1[_0xa380('0x4d')]==='user'){var _0x3243=_0x162433[_0xa380('0x4c')]({'plain':!![]});var _0x19a5f2='ODBC';return db['UserProfileSection'][_0xa380('0x48')]({'where':{'name':_0x19a5f2,'userProfileId':_0x5680d1[_0xa380('0x4e')]},'raw':!![]})[_0xa380('0x25')](function(_0x3c62ac){if(_0x3c62ac&&_0x3c62ac[_0xa380('0x4f')]===0x0){return db[_0xa380('0x26')][_0xa380('0x49')]({'name':_0x3243[_0xa380('0x29')],'resourceId':_0x3243['id'],'type':_0x3c62ac[_0xa380('0x29')],'sectionId':_0x3c62ac['id']},{})['then'](function(){return _0x162433;});}else{return _0x162433;}})[_0xa380('0x41')](function(_0x1c5c16){logger[_0xa380('0x27')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x1c5c16);throw _0x1c5c16;});}return _0x162433;})[_0xa380('0x25')](respondWithResult(_0x55e1f2,0xc9))[_0xa380('0x41')](handleError(_0x55e1f2,null));};exports[_0xa380('0x50')]=function(_0x5e5e5a,_0x42a072){if(_0x5e5e5a['body']['id']){delete _0x5e5e5a[_0xa380('0x4a')]['id'];}return db[_0xa380('0x2c')][_0xa380('0x48')]({'where':{'id':_0x5e5e5a[_0xa380('0x42')]['id']}})[_0xa380('0x25')](handleEntityNotFound(_0x42a072,null))[_0xa380('0x25')](saveUpdates(_0x5e5e5a[_0xa380('0x4a')],null))['then'](respondWithResult(_0x42a072,null))['catch'](handleError(_0x42a072,null));};exports[_0xa380('0x24')]=function(_0x1e5715,_0x52aa8a){return db[_0xa380('0x2c')][_0xa380('0x48')]({'where':{'id':_0x1e5715[_0xa380('0x42')]['id']}})[_0xa380('0x25')](handleEntityNotFound(_0x52aa8a,null))[_0xa380('0x25')](removeEntity(_0x52aa8a,null))[_0xa380('0x41')](handleError(_0x52aa8a,null));};exports['test']=function(_0x31a152,_0x537f8a,_0x5b6275){var _0x1c288d;return db[_0xa380('0x2c')]['find']({'where':{'id':_0x31a152['params']['id']},'attributes':['id',_0xa380('0x51')]})[_0xa380('0x25')](handleEntityNotFound(_0x537f8a,null))[_0xa380('0x25')](function(_0x157890){if(_0x157890){var _0x49c172=require(_0xa380('0x52'))();_0x49c172['openSync'](_0x157890['dsn']);_0x49c172[_0xa380('0x53')]();return _0x157890;}})[_0xa380('0x25')](respondWithResult(_0x537f8a,null))[_0xa380('0x41')](handleError(_0x537f8a,null));};