Built motion from commit 9d1906d1.|2.5.40
[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 _0xd06d=['options','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','ODBC','find','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','test','dsn','odbc','openSync','closeSync','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','to-csv','fs-extra','lodash','jsforce','querystring','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','count','limit','apply','save','update','get','destroy','then','error','stack','name','send','index','SquareOdbc','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','sort','where','pick','filter','merge','map','VIRTUAL','includeAll','include','findAll','rows','catch','show','params'];(function(_0xcc3801,_0x9aad76){var _0x413313=function(_0x45ae83){while(--_0x45ae83){_0xcc3801['push'](_0xcc3801['shift']());}};_0x413313(++_0x9aad76);}(_0xd06d,0xa6));var _0xdd06=function(_0x35b80e,_0x120fd7){_0x35b80e=_0x35b80e-0x0;var _0x363914=_0xd06d[_0x35b80e];return _0x363914;};'use strict';var emlformat=require(_0xdd06('0x0'));var rimraf=require(_0xdd06('0x1'));var zipdir=require(_0xdd06('0x2'));var jsonpatch=require(_0xdd06('0x3'));var rp=require('request-promise');var moment=require(_0xdd06('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xdd06('0x5'));var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0xdd06('0x6'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xdd06('0x7'));var _=require(_0xdd06('0x8'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xdd06('0x9'));var deskjs=require('desk.js');var toCsv=require(_0xdd06('0x6'));var querystring=require(_0xdd06('0xa'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xdd06('0xb'));var as=require(_0xdd06('0xc'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require(_0xdd06('0xd'));var config=require(_0xdd06('0xe'));var licenseUtil=require('../../config/license/util');var db=require(_0xdd06('0xf'))['db'];function respondWithStatusCode(_0x352b4b,_0x24f9fc){_0x24f9fc=_0x24f9fc||0xcc;return function(_0x409338){if(_0x409338){return _0x352b4b[_0xdd06('0x10')](_0x24f9fc);}return _0x352b4b[_0xdd06('0x11')](_0x24f9fc)[_0xdd06('0x12')]();};}function respondWithResult(_0x5c7820,_0x3231c9){_0x3231c9=_0x3231c9||0xc8;return function(_0x4aa966){if(_0x4aa966){return _0x5c7820[_0xdd06('0x11')](_0x3231c9)[_0xdd06('0x13')](_0x4aa966);}};}function respondWithFilteredResult(_0x1a076f,_0x3bea5c){return function(_0x47ac2f){if(_0x47ac2f){var _0x5dafe8=typeof _0x3bea5c['offset']==='undefined'&&typeof _0x3bea5c['limit']==='undefined';var _0x3e4e4f=_0x47ac2f['count'];var _0x545e71=_0x5dafe8?0x0:_0x3bea5c[_0xdd06('0x14')];var _0x160425=_0x5dafe8?_0x47ac2f[_0xdd06('0x15')]:_0x3bea5c['offset']+_0x3bea5c[_0xdd06('0x16')];var _0x440466;if(_0x160425>=_0x3e4e4f){_0x160425=_0x3e4e4f;_0x440466=0xc8;}else{_0x440466=0xce;}_0x1a076f['status'](_0x440466);return _0x1a076f['set']('Content-Range',_0x545e71+'-'+_0x160425+'/'+_0x3e4e4f)['json'](_0x47ac2f);}return null;};}function patchUpdates(_0x66aaf0){return function(_0x57e9fc){try{jsonpatch[_0xdd06('0x17')](_0x57e9fc,_0x66aaf0,!![]);}catch(_0x1b8fa5){return BPromise['reject'](_0x1b8fa5);}return _0x57e9fc[_0xdd06('0x18')]();};}function saveUpdates(_0x36664e,_0x1c8430){return function(_0x5b14be){if(_0x5b14be){return _0x5b14be[_0xdd06('0x19')](_0x36664e)['then'](function(_0x104ef7){return _0x104ef7;});}return null;};}function removeEntity(_0x26cd4d,_0x10c884){return function(_0x11159d){if(_0x11159d){return _0x11159d['destroy']()['then'](function(){var _0x3c4ccb=_0x11159d[_0xdd06('0x1a')]({'plain':!![]});var _0x5348f3='ODBC';return db['UserProfileResource'][_0xdd06('0x1b')]({'where':{'type':_0x5348f3,'resourceId':_0x3c4ccb['id']}})[_0xdd06('0x1c')](function(){return _0x11159d;});})['then'](function(){_0x26cd4d[_0xdd06('0x11')](0xcc)[_0xdd06('0x12')]();});}};}function handleEntityNotFound(_0x4bac6f,_0x3c3770){return function(_0x435a64){if(!_0x435a64){_0x4bac6f[_0xdd06('0x10')](0x194);}return _0x435a64;};}function handleError(_0x17864e,_0x7687a0){_0x7687a0=_0x7687a0||0x1f4;return function(_0x1c15bd){logger[_0xdd06('0x1d')](_0x1c15bd[_0xdd06('0x1e')]);if(_0x1c15bd[_0xdd06('0x1f')]){delete _0x1c15bd['name'];}_0x17864e[_0xdd06('0x11')](_0x7687a0)[_0xdd06('0x20')](_0x1c15bd);};}exports[_0xdd06('0x21')]=function(_0x47c2d9,_0x5e538b){var _0x282b1c={},_0x1130e2={},_0x48849f={'count':0x0,'rows':[]};var _0x1bba6e=_['map'](db[_0xdd06('0x22')][_0xdd06('0x23')],function(_0x3375a2){return{'name':_0x3375a2[_0xdd06('0x24')],'type':_0x3375a2[_0xdd06('0x25')][_0xdd06('0x26')]};});_0x1130e2[_0xdd06('0x27')]=_['map'](_0x1bba6e,_0xdd06('0x1f'));_0x1130e2[_0xdd06('0x28')]=_[_0xdd06('0x29')](_0x47c2d9[_0xdd06('0x28')]);_0x1130e2[_0xdd06('0x2a')]=_[_0xdd06('0x2b')](_0x1130e2['model'],_0x1130e2[_0xdd06('0x28')]);_0x282b1c[_0xdd06('0x2c')]=_[_0xdd06('0x2b')](_0x1130e2[_0xdd06('0x27')],qs[_0xdd06('0x2d')](_0x47c2d9[_0xdd06('0x28')]['fields']));_0x282b1c[_0xdd06('0x2c')]=_0x282b1c[_0xdd06('0x2c')][_0xdd06('0x2e')]?_0x282b1c[_0xdd06('0x2c')]:_0x1130e2[_0xdd06('0x27')];if(!_0x47c2d9[_0xdd06('0x28')][_0xdd06('0x2f')]('nolimit')){_0x282b1c[_0xdd06('0x16')]=qs[_0xdd06('0x16')](_0x47c2d9[_0xdd06('0x28')][_0xdd06('0x16')]);_0x282b1c[_0xdd06('0x14')]=qs[_0xdd06('0x14')](_0x47c2d9[_0xdd06('0x28')][_0xdd06('0x14')]);}_0x282b1c['order']=qs[_0xdd06('0x30')](_0x47c2d9[_0xdd06('0x28')]['sort']);_0x282b1c[_0xdd06('0x31')]=qs[_0xdd06('0x2a')](_[_0xdd06('0x32')](_0x47c2d9['query'],_0x1130e2[_0xdd06('0x2a')]),_0x1bba6e);if(_0x47c2d9[_0xdd06('0x28')][_0xdd06('0x33')]){_0x282b1c[_0xdd06('0x31')]=_[_0xdd06('0x34')](_0x282b1c[_0xdd06('0x31')],{'$or':_[_0xdd06('0x35')](_0x1bba6e,function(_0x2ff643){if(_0x2ff643[_0xdd06('0x25')]!==_0xdd06('0x36')){var _0x50baed={};_0x50baed[_0x2ff643[_0xdd06('0x1f')]]={'$like':'%'+_0x47c2d9[_0xdd06('0x28')]['filter']+'%'};return _0x50baed;}})});}_0x282b1c=_['merge']({},_0x282b1c,_0x47c2d9['options']);var _0x2ead16={'where':_0x282b1c[_0xdd06('0x31')]};return db[_0xdd06('0x22')][_0xdd06('0x15')](_0x2ead16)[_0xdd06('0x1c')](function(_0x3c2798){_0x48849f[_0xdd06('0x15')]=_0x3c2798;if(_0x47c2d9[_0xdd06('0x28')][_0xdd06('0x37')]){_0x282b1c[_0xdd06('0x38')]=[{'all':!![]}];}return db[_0xdd06('0x22')][_0xdd06('0x39')](_0x282b1c);})[_0xdd06('0x1c')](function(_0x5a22c6){_0x48849f[_0xdd06('0x3a')]=_0x5a22c6;return _0x48849f;})[_0xdd06('0x1c')](respondWithFilteredResult(_0x5e538b,_0x282b1c))[_0xdd06('0x3b')](handleError(_0x5e538b,null));};exports[_0xdd06('0x3c')]=function(_0x21b983,_0xa58953){var _0x2045c6={'raw':!![],'where':{'id':_0x21b983[_0xdd06('0x3d')]['id']}},_0x14daa0={};_0x14daa0[_0xdd06('0x27')]=_[_0xdd06('0x29')](db[_0xdd06('0x22')]['rawAttributes']);_0x14daa0['query']=_['keys'](_0x21b983['query']);_0x14daa0[_0xdd06('0x2a')]=_[_0xdd06('0x2b')](_0x14daa0[_0xdd06('0x27')],_0x14daa0[_0xdd06('0x28')]);_0x2045c6[_0xdd06('0x2c')]=_[_0xdd06('0x2b')](_0x14daa0[_0xdd06('0x27')],qs[_0xdd06('0x2d')](_0x21b983[_0xdd06('0x28')]['fields']));_0x2045c6[_0xdd06('0x2c')]=_0x2045c6['attributes']['length']?_0x2045c6[_0xdd06('0x2c')]:_0x14daa0[_0xdd06('0x27')];if(_0x21b983[_0xdd06('0x28')][_0xdd06('0x37')]){_0x2045c6[_0xdd06('0x38')]=[{'all':!![]}];}_0x2045c6=_['merge']({},_0x2045c6,_0x21b983[_0xdd06('0x3e')]);return db[_0xdd06('0x22')]['find'](_0x2045c6)[_0xdd06('0x1c')](handleEntityNotFound(_0xa58953,null))[_0xdd06('0x1c')](respondWithResult(_0xa58953,null))['catch'](handleError(_0xa58953,null));};exports[_0xdd06('0x3f')]=function(_0x304847,_0x50440c){return db['SquareOdbc'][_0xdd06('0x3f')](_0x304847[_0xdd06('0x40')],{})[_0xdd06('0x1c')](function(_0x40c65a){var _0x24a2d6=_0x304847['user'][_0xdd06('0x1a')]({'plain':!![]});if(!_0x24a2d6)throw new Error(_0xdd06('0x41'));if(_0x24a2d6['role']===_0xdd06('0x42')){var _0x4c8dfb=_0x40c65a[_0xdd06('0x1a')]({'plain':!![]});var _0x366a13=_0xdd06('0x43');return db['UserProfileSection'][_0xdd06('0x44')]({'where':{'name':_0x366a13,'userProfileId':_0x24a2d6[_0xdd06('0x45')]},'raw':!![]})[_0xdd06('0x1c')](function(_0x5ed312){if(_0x5ed312&&_0x5ed312['autoAssociation']===0x0){return db['UserProfileResource']['create']({'name':_0x4c8dfb[_0xdd06('0x1f')],'resourceId':_0x4c8dfb['id'],'type':_0x5ed312[_0xdd06('0x1f')],'sectionId':_0x5ed312['id']},{})[_0xdd06('0x1c')](function(){return _0x40c65a;});}else{return _0x40c65a;}})['catch'](function(_0x5f524d){logger[_0xdd06('0x1d')](_0xdd06('0x46'),_0x5f524d);throw _0x5f524d;});}return _0x40c65a;})[_0xdd06('0x1c')](respondWithResult(_0x50440c,0xc9))[_0xdd06('0x3b')](handleError(_0x50440c,null));};exports[_0xdd06('0x19')]=function(_0x3ba425,_0x17c14c){if(_0x3ba425[_0xdd06('0x40')]['id']){delete _0x3ba425[_0xdd06('0x40')]['id'];}return db[_0xdd06('0x22')][_0xdd06('0x44')]({'where':{'id':_0x3ba425[_0xdd06('0x3d')]['id']}})[_0xdd06('0x1c')](handleEntityNotFound(_0x17c14c,null))['then'](saveUpdates(_0x3ba425[_0xdd06('0x40')],null))[_0xdd06('0x1c')](respondWithResult(_0x17c14c,null))[_0xdd06('0x3b')](handleError(_0x17c14c,null));};exports[_0xdd06('0x1b')]=function(_0x122a8e,_0x5084a1){return db[_0xdd06('0x22')][_0xdd06('0x44')]({'where':{'id':_0x122a8e[_0xdd06('0x3d')]['id']}})['then'](handleEntityNotFound(_0x5084a1,null))[_0xdd06('0x1c')](removeEntity(_0x5084a1,null))[_0xdd06('0x3b')](handleError(_0x5084a1,null));};exports[_0xdd06('0x47')]=function(_0x4152d1,_0x1fb663,_0x4ffa3a){var _0xdaf7e3;return db[_0xdd06('0x22')][_0xdd06('0x44')]({'where':{'id':_0x4152d1['params']['id']},'attributes':['id',_0xdd06('0x48')]})[_0xdd06('0x1c')](handleEntityNotFound(_0x1fb663,null))['then'](function(_0x114da3){if(_0x114da3){var _0x2dbd69=require(_0xdd06('0x49'))();_0x2dbd69[_0xdd06('0x4a')](_0x114da3[_0xdd06('0x48')]);_0x2dbd69[_0xdd06('0x4b')]();return _0x114da3;}})[_0xdd06('0x1c')](respondWithResult(_0x1fb663,null))[_0xdd06('0x3b')](handleError(_0x1fb663,null));};