Built motion from commit 5293bb2a.|2.6.30
[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 _0xf28f=['get','UserProfileResource','end','error','stack','send','index','map','SquareOdbc','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','name','merge','includeAll','include','findAll','catch','show','params','options','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','test','odbc','openSync','dsn','closeSync','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','util','sox','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','json','offset','undefined','limit','count','Content-Range','apply','reject','save','then','destroy'];(function(_0x3c1ad6,_0x1dd210){var _0x4e24fb=function(_0x30ceea){while(--_0x30ceea){_0x3c1ad6['push'](_0x3c1ad6['shift']());}};_0x4e24fb(++_0x1dd210);}(_0xf28f,0x13c));var _0xff28=function(_0x55abd9,_0x1148af){_0x55abd9=_0x55abd9-0x0;var _0x3e5669=_0xf28f[_0x55abd9];return _0x3e5669;};'use strict';var emlformat=require(_0xff28('0x0'));var rimraf=require(_0xff28('0x1'));var zipdir=require(_0xff28('0x2'));var jsonpatch=require(_0xff28('0x3'));var rp=require('request-promise');var moment=require(_0xff28('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xff28('0x5'));var util=require(_0xff28('0x6'));var path=require('path');var sox=require(_0xff28('0x7'));var csv=require('to-csv');var ejs=require(_0xff28('0x8'));var fs=require('fs');var fs_extra=require(_0xff28('0x9'));var _=require(_0xff28('0xa'));var squel=require(_0xff28('0xb'));var crypto=require(_0xff28('0xc'));var jsforce=require('jsforce');var deskjs=require(_0xff28('0xd'));var toCsv=require('to-csv');var querystring=require(_0xff28('0xe'));var Papa=require('papaparse');var Redis=require(_0xff28('0xf'));var authService=require(_0xff28('0x10'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xff28('0x11'));var logger=require(_0xff28('0x12'))(_0xff28('0x13'));var utils=require(_0xff28('0x14'));var config=require(_0xff28('0x15'));var licenseUtil=require(_0xff28('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x3e68a4,_0x41b005){_0x41b005=_0x41b005||0xcc;return function(_0x199d04){if(_0x199d04){return _0x3e68a4[_0xff28('0x17')](_0x41b005);}return _0x3e68a4[_0xff28('0x18')](_0x41b005)['end']();};}function respondWithResult(_0x402ec7,_0x2b2350){_0x2b2350=_0x2b2350||0xc8;return function(_0x29b86c){if(_0x29b86c){return _0x402ec7['status'](_0x2b2350)[_0xff28('0x19')](_0x29b86c);}};}function respondWithFilteredResult(_0x42c87f,_0x4e504a){return function(_0x1269a6){if(_0x1269a6){var _0x2278b6=typeof _0x4e504a[_0xff28('0x1a')]===_0xff28('0x1b')&&typeof _0x4e504a[_0xff28('0x1c')]==='undefined';var _0x123560=_0x1269a6[_0xff28('0x1d')];var _0x48169e=_0x2278b6?0x0:_0x4e504a['offset'];var _0xc71006=_0x2278b6?_0x1269a6['count']:_0x4e504a[_0xff28('0x1a')]+_0x4e504a[_0xff28('0x1c')];var _0x1ae8a6;if(_0xc71006>=_0x123560){_0xc71006=_0x123560;_0x1ae8a6=0xc8;}else{_0x1ae8a6=0xce;}_0x42c87f[_0xff28('0x18')](_0x1ae8a6);return _0x42c87f['set'](_0xff28('0x1e'),_0x48169e+'-'+_0xc71006+'/'+_0x123560)[_0xff28('0x19')](_0x1269a6);}return null;};}function patchUpdates(_0xa4403){return function(_0x5dd08a){try{jsonpatch[_0xff28('0x1f')](_0x5dd08a,_0xa4403,!![]);}catch(_0x12f417){return BPromise[_0xff28('0x20')](_0x12f417);}return _0x5dd08a[_0xff28('0x21')]();};}function saveUpdates(_0x3d912b,_0x53031a){return function(_0x470a67){if(_0x470a67){return _0x470a67['update'](_0x3d912b)[_0xff28('0x22')](function(_0x187623){return _0x187623;});}return null;};}function removeEntity(_0x1605f4,_0x398bdf){return function(_0x535642){if(_0x535642){return _0x535642[_0xff28('0x23')]()[_0xff28('0x22')](function(){var _0x53b86f=_0x535642[_0xff28('0x24')]({'plain':!![]});var _0x25185a='ODBC';return db[_0xff28('0x25')][_0xff28('0x23')]({'where':{'type':_0x25185a,'resourceId':_0x53b86f['id']}})[_0xff28('0x22')](function(){return _0x535642;});})[_0xff28('0x22')](function(){_0x1605f4['status'](0xcc)[_0xff28('0x26')]();});}};}function handleEntityNotFound(_0x353e29,_0x39cab0){return function(_0x38975f){if(!_0x38975f){_0x353e29[_0xff28('0x17')](0x194);}return _0x38975f;};}function handleError(_0x4e2e49,_0x163e56){_0x163e56=_0x163e56||0x1f4;return function(_0x564f16){logger[_0xff28('0x27')](_0x564f16[_0xff28('0x28')]);if(_0x564f16['name']){delete _0x564f16['name'];}_0x4e2e49[_0xff28('0x18')](_0x163e56)[_0xff28('0x29')](_0x564f16);};}exports[_0xff28('0x2a')]=function(_0x5087fe,_0xea8922){var _0x20ee50={},_0x2dd9b7={},_0x19bd77={'count':0x0,'rows':[]};var _0x2f096f=_[_0xff28('0x2b')](db[_0xff28('0x2c')][_0xff28('0x2d')],function(_0x2eeb4d){return{'name':_0x2eeb4d[_0xff28('0x2e')],'type':_0x2eeb4d[_0xff28('0x2f')][_0xff28('0x30')]};});_0x2dd9b7[_0xff28('0x31')]=_['map'](_0x2f096f,'name');_0x2dd9b7[_0xff28('0x32')]=_[_0xff28('0x33')](_0x5087fe[_0xff28('0x32')]);_0x2dd9b7[_0xff28('0x34')]=_[_0xff28('0x35')](_0x2dd9b7[_0xff28('0x31')],_0x2dd9b7[_0xff28('0x32')]);_0x20ee50[_0xff28('0x36')]=_[_0xff28('0x35')](_0x2dd9b7[_0xff28('0x31')],qs['fields'](_0x5087fe['query'][_0xff28('0x37')]));_0x20ee50[_0xff28('0x36')]=_0x20ee50[_0xff28('0x36')][_0xff28('0x38')]?_0x20ee50[_0xff28('0x36')]:_0x2dd9b7[_0xff28('0x31')];if(!_0x5087fe[_0xff28('0x32')][_0xff28('0x39')](_0xff28('0x3a'))){_0x20ee50['limit']=qs['limit'](_0x5087fe[_0xff28('0x32')][_0xff28('0x1c')]);_0x20ee50[_0xff28('0x1a')]=qs[_0xff28('0x1a')](_0x5087fe[_0xff28('0x32')][_0xff28('0x1a')]);}_0x20ee50[_0xff28('0x3b')]=qs[_0xff28('0x3c')](_0x5087fe['query'][_0xff28('0x3c')]);_0x20ee50[_0xff28('0x3d')]=qs[_0xff28('0x34')](_[_0xff28('0x3e')](_0x5087fe[_0xff28('0x32')],_0x2dd9b7[_0xff28('0x34')]),_0x2f096f);if(_0x5087fe['query'][_0xff28('0x3f')]){_0x20ee50[_0xff28('0x3d')]=_['merge'](_0x20ee50[_0xff28('0x3d')],{'$or':_[_0xff28('0x2b')](_0x2f096f,function(_0x4984c2){if(_0x4984c2[_0xff28('0x2f')]!==_0xff28('0x40')){var _0x109180={};_0x109180[_0x4984c2[_0xff28('0x41')]]={'$like':'%'+_0x5087fe[_0xff28('0x32')][_0xff28('0x3f')]+'%'};return _0x109180;}})});}_0x20ee50=_[_0xff28('0x42')]({},_0x20ee50,_0x5087fe['options']);var _0x551efd={'where':_0x20ee50[_0xff28('0x3d')]};return db[_0xff28('0x2c')][_0xff28('0x1d')](_0x551efd)[_0xff28('0x22')](function(_0x1e40bb){_0x19bd77['count']=_0x1e40bb;if(_0x5087fe[_0xff28('0x32')][_0xff28('0x43')]){_0x20ee50[_0xff28('0x44')]=[{'all':!![]}];}return db['SquareOdbc'][_0xff28('0x45')](_0x20ee50);})[_0xff28('0x22')](function(_0x53ffb5){_0x19bd77['rows']=_0x53ffb5;return _0x19bd77;})['then'](respondWithFilteredResult(_0xea8922,_0x20ee50))[_0xff28('0x46')](handleError(_0xea8922,null));};exports[_0xff28('0x47')]=function(_0x398969,_0x50d479){var _0x44ef3f={'raw':!![],'where':{'id':_0x398969[_0xff28('0x48')]['id']}},_0x41038e={};_0x41038e[_0xff28('0x31')]=_[_0xff28('0x33')](db[_0xff28('0x2c')][_0xff28('0x2d')]);_0x41038e[_0xff28('0x32')]=_[_0xff28('0x33')](_0x398969[_0xff28('0x32')]);_0x41038e['filters']=_[_0xff28('0x35')](_0x41038e[_0xff28('0x31')],_0x41038e['query']);_0x44ef3f[_0xff28('0x36')]=_[_0xff28('0x35')](_0x41038e[_0xff28('0x31')],qs[_0xff28('0x37')](_0x398969[_0xff28('0x32')][_0xff28('0x37')]));_0x44ef3f[_0xff28('0x36')]=_0x44ef3f[_0xff28('0x36')][_0xff28('0x38')]?_0x44ef3f[_0xff28('0x36')]:_0x41038e[_0xff28('0x31')];if(_0x398969[_0xff28('0x32')][_0xff28('0x43')]){_0x44ef3f[_0xff28('0x44')]=[{'all':!![]}];}_0x44ef3f=_[_0xff28('0x42')]({},_0x44ef3f,_0x398969[_0xff28('0x49')]);return db[_0xff28('0x2c')][_0xff28('0x4a')](_0x44ef3f)[_0xff28('0x22')](handleEntityNotFound(_0x50d479,null))[_0xff28('0x22')](respondWithResult(_0x50d479,null))[_0xff28('0x46')](handleError(_0x50d479,null));};exports[_0xff28('0x4b')]=function(_0x4fbe13,_0x56578a){return db[_0xff28('0x2c')][_0xff28('0x4b')](_0x4fbe13[_0xff28('0x4c')],{})[_0xff28('0x22')](function(_0x5d9dc7){var _0x4279c4=_0x4fbe13[_0xff28('0x4d')][_0xff28('0x24')]({'plain':!![]});if(!_0x4279c4)throw new Error(_0xff28('0x4e'));if(_0x4279c4['role']===_0xff28('0x4d')){var _0xd853f6=_0x5d9dc7['get']({'plain':!![]});var _0x376111='ODBC';return db[_0xff28('0x4f')][_0xff28('0x4a')]({'where':{'name':_0x376111,'userProfileId':_0x4279c4[_0xff28('0x50')]},'raw':!![]})[_0xff28('0x22')](function(_0x599b52){if(_0x599b52&&_0x599b52['autoAssociation']===0x0){return db['UserProfileResource']['create']({'name':_0xd853f6[_0xff28('0x41')],'resourceId':_0xd853f6['id'],'type':_0x599b52[_0xff28('0x41')],'sectionId':_0x599b52['id']},{})[_0xff28('0x22')](function(){return _0x5d9dc7;});}else{return _0x5d9dc7;}})[_0xff28('0x46')](function(_0x195a3e){logger[_0xff28('0x27')](_0xff28('0x51'),_0x195a3e);throw _0x195a3e;});}return _0x5d9dc7;})[_0xff28('0x22')](respondWithResult(_0x56578a,0xc9))[_0xff28('0x46')](handleError(_0x56578a,null));};exports[_0xff28('0x52')]=function(_0x56603b,_0x217dfe){if(_0x56603b[_0xff28('0x4c')]['id']){delete _0x56603b['body']['id'];}return db[_0xff28('0x2c')]['find']({'where':{'id':_0x56603b[_0xff28('0x48')]['id']}})['then'](handleEntityNotFound(_0x217dfe,null))['then'](saveUpdates(_0x56603b[_0xff28('0x4c')],null))[_0xff28('0x22')](respondWithResult(_0x217dfe,null))['catch'](handleError(_0x217dfe,null));};exports[_0xff28('0x23')]=function(_0x41b0e6,_0x3dbc37){return db['SquareOdbc'][_0xff28('0x4a')]({'where':{'id':_0x41b0e6[_0xff28('0x48')]['id']}})['then'](handleEntityNotFound(_0x3dbc37,null))[_0xff28('0x22')](removeEntity(_0x3dbc37,null))[_0xff28('0x46')](handleError(_0x3dbc37,null));};exports[_0xff28('0x53')]=function(_0x4d31a7,_0x3d10de,_0x54a4de){var _0x1bd302;return db['SquareOdbc']['find']({'where':{'id':_0x4d31a7[_0xff28('0x48')]['id']},'attributes':['id','dsn']})[_0xff28('0x22')](handleEntityNotFound(_0x3d10de,null))[_0xff28('0x22')](function(_0xbcbbef){if(_0xbcbbef){var _0x4f3398=require(_0xff28('0x54'))();_0x4f3398[_0xff28('0x55')](_0xbcbbef[_0xff28('0x56')]);_0x4f3398[_0xff28('0x57')]();return _0xbcbbef;}})[_0xff28('0x22')](respondWithResult(_0x3d10de,null))[_0xff28('0x46')](handleError(_0x3d10de,null));};