Built motion from commit 43538d75.|2.5.35
[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 _0x6084=['jsforce','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','count','set','Content-Range','reject','update','then','destroy','get','ODBC','UserProfileResource','sendStatus','stack','name','send','index','map','SquareOdbc','rawAttributes','fieldName','type','key','model','query','filters','intersection','fields','attributes','length','limit','sort','where','pick','filter','VIRTUAL','merge','options','includeAll','include','rows','show','find','catch','create','body','user','role','UserProfileSection','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','test','dsn','odbc','openSync','closeSync','eml-format','rimraf','zip-dir','moment','bluebird','mustache','util','path','ejs','fs-extra','lodash','squel','crypto'];(function(_0x578b1,_0x46a2ae){var _0x28aee2=function(_0x34a20e){while(--_0x34a20e){_0x578b1['push'](_0x578b1['shift']());}};_0x28aee2(++_0x46a2ae);}(_0x6084,0x1b0));var _0x4608=function(_0x4d6442,_0x3b566b){_0x4d6442=_0x4d6442-0x0;var _0x384f59=_0x6084[_0x4d6442];return _0x384f59;};'use strict';var emlformat=require(_0x4608('0x0'));var rimraf=require(_0x4608('0x1'));var zipdir=require(_0x4608('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x4608('0x3'));var BPromise=require(_0x4608('0x4'));var Mustache=require(_0x4608('0x5'));var util=require(_0x4608('0x6'));var path=require(_0x4608('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x4608('0x8'));var fs=require('fs');var fs_extra=require(_0x4608('0x9'));var _=require(_0x4608('0xa'));var squel=require(_0x4608('0xb'));var crypto=require(_0x4608('0xc'));var jsforce=require(_0x4608('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x4608('0xe'));var querystring=require(_0x4608('0xf'));var Papa=require(_0x4608('0x10'));var Redis=require(_0x4608('0x11'));var authService=require(_0x4608('0x12'));var qs=require(_0x4608('0x13'));var as=require(_0x4608('0x14'));var hardwareService=require(_0x4608('0x15'));var logger=require(_0x4608('0x16'))(_0x4608('0x17'));var utils=require(_0x4608('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0x4608('0x19'));var db=require(_0x4608('0x1a'))['db'];function respondWithStatusCode(_0x360afb,_0x15acb0){_0x15acb0=_0x15acb0||0xcc;return function(_0x18f468){if(_0x18f468){return _0x360afb['sendStatus'](_0x15acb0);}return _0x360afb[_0x4608('0x1b')](_0x15acb0)[_0x4608('0x1c')]();};}function respondWithResult(_0x2aed07,_0x1f6d4a){_0x1f6d4a=_0x1f6d4a||0xc8;return function(_0x196a72){if(_0x196a72){return _0x2aed07[_0x4608('0x1b')](_0x1f6d4a)[_0x4608('0x1d')](_0x196a72);}};}function respondWithFilteredResult(_0x445ed7,_0x3e675e){return function(_0x237c16){if(_0x237c16){var _0x16dfd1=typeof _0x3e675e[_0x4608('0x1e')]===_0x4608('0x1f')&&typeof _0x3e675e['limit']===_0x4608('0x1f');var _0x10831c=_0x237c16[_0x4608('0x20')];var _0x13f1aa=_0x16dfd1?0x0:_0x3e675e[_0x4608('0x1e')];var _0xd50195=_0x16dfd1?_0x237c16[_0x4608('0x20')]:_0x3e675e['offset']+_0x3e675e['limit'];var _0xe9d0b;if(_0xd50195>=_0x10831c){_0xd50195=_0x10831c;_0xe9d0b=0xc8;}else{_0xe9d0b=0xce;}_0x445ed7[_0x4608('0x1b')](_0xe9d0b);return _0x445ed7[_0x4608('0x21')](_0x4608('0x22'),_0x13f1aa+'-'+_0xd50195+'/'+_0x10831c)[_0x4608('0x1d')](_0x237c16);}return null;};}function patchUpdates(_0xb96fed){return function(_0x503178){try{jsonpatch['apply'](_0x503178,_0xb96fed,!![]);}catch(_0x2470d2){return BPromise[_0x4608('0x23')](_0x2470d2);}return _0x503178['save']();};}function saveUpdates(_0x203545,_0x25ac8c){return function(_0x3beb92){if(_0x3beb92){return _0x3beb92[_0x4608('0x24')](_0x203545)[_0x4608('0x25')](function(_0x30ca82){return _0x30ca82;});}return null;};}function removeEntity(_0x2aecfc,_0x2378f3){return function(_0x45fef9){if(_0x45fef9){return _0x45fef9[_0x4608('0x26')]()['then'](function(){var _0x6ba9c1=_0x45fef9[_0x4608('0x27')]({'plain':!![]});var _0x486480=_0x4608('0x28');return db[_0x4608('0x29')][_0x4608('0x26')]({'where':{'type':_0x486480,'resourceId':_0x6ba9c1['id']}})['then'](function(){return _0x45fef9;});})[_0x4608('0x25')](function(){_0x2aecfc[_0x4608('0x1b')](0xcc)[_0x4608('0x1c')]();});}};}function handleEntityNotFound(_0x5bb7e1,_0x482980){return function(_0x3f3e1a){if(!_0x3f3e1a){_0x5bb7e1[_0x4608('0x2a')](0x194);}return _0x3f3e1a;};}function handleError(_0x37f7c3,_0x34dc08){_0x34dc08=_0x34dc08||0x1f4;return function(_0xfb2d2e){logger['error'](_0xfb2d2e[_0x4608('0x2b')]);if(_0xfb2d2e['name']){delete _0xfb2d2e[_0x4608('0x2c')];}_0x37f7c3[_0x4608('0x1b')](_0x34dc08)[_0x4608('0x2d')](_0xfb2d2e);};}exports[_0x4608('0x2e')]=function(_0x371d82,_0x83f7ac){var _0x57c8e0={},_0x35ef55={},_0x1a6aab={'count':0x0,'rows':[]};var _0x2fa578=_[_0x4608('0x2f')](db[_0x4608('0x30')][_0x4608('0x31')],function(_0x2b2ba){return{'name':_0x2b2ba[_0x4608('0x32')],'type':_0x2b2ba[_0x4608('0x33')][_0x4608('0x34')]};});_0x35ef55[_0x4608('0x35')]=_[_0x4608('0x2f')](_0x2fa578,_0x4608('0x2c'));_0x35ef55[_0x4608('0x36')]=_['keys'](_0x371d82[_0x4608('0x36')]);_0x35ef55[_0x4608('0x37')]=_[_0x4608('0x38')](_0x35ef55['model'],_0x35ef55[_0x4608('0x36')]);_0x57c8e0['attributes']=_['intersection'](_0x35ef55[_0x4608('0x35')],qs['fields'](_0x371d82[_0x4608('0x36')][_0x4608('0x39')]));_0x57c8e0[_0x4608('0x3a')]=_0x57c8e0[_0x4608('0x3a')][_0x4608('0x3b')]?_0x57c8e0[_0x4608('0x3a')]:_0x35ef55[_0x4608('0x35')];if(!_0x371d82[_0x4608('0x36')]['hasOwnProperty']('nolimit')){_0x57c8e0[_0x4608('0x3c')]=qs[_0x4608('0x3c')](_0x371d82[_0x4608('0x36')][_0x4608('0x3c')]);_0x57c8e0[_0x4608('0x1e')]=qs[_0x4608('0x1e')](_0x371d82[_0x4608('0x36')]['offset']);}_0x57c8e0['order']=qs[_0x4608('0x3d')](_0x371d82[_0x4608('0x36')][_0x4608('0x3d')]);_0x57c8e0[_0x4608('0x3e')]=qs[_0x4608('0x37')](_[_0x4608('0x3f')](_0x371d82[_0x4608('0x36')],_0x35ef55[_0x4608('0x37')]),_0x2fa578);if(_0x371d82[_0x4608('0x36')][_0x4608('0x40')]){_0x57c8e0['where']=_['merge'](_0x57c8e0[_0x4608('0x3e')],{'$or':_[_0x4608('0x2f')](_0x2fa578,function(_0x576e4e){if(_0x576e4e[_0x4608('0x33')]!==_0x4608('0x41')){var _0x5c1dec={};_0x5c1dec[_0x576e4e[_0x4608('0x2c')]]={'$like':'%'+_0x371d82[_0x4608('0x36')][_0x4608('0x40')]+'%'};return _0x5c1dec;}})});}_0x57c8e0=_[_0x4608('0x42')]({},_0x57c8e0,_0x371d82[_0x4608('0x43')]);var _0x2c3460={'where':_0x57c8e0[_0x4608('0x3e')]};return db[_0x4608('0x30')][_0x4608('0x20')](_0x2c3460)['then'](function(_0x3247f5){_0x1a6aab[_0x4608('0x20')]=_0x3247f5;if(_0x371d82[_0x4608('0x36')][_0x4608('0x44')]){_0x57c8e0[_0x4608('0x45')]=[{'all':!![]}];}return db[_0x4608('0x30')]['findAll'](_0x57c8e0);})[_0x4608('0x25')](function(_0x18992e){_0x1a6aab[_0x4608('0x46')]=_0x18992e;return _0x1a6aab;})[_0x4608('0x25')](respondWithFilteredResult(_0x83f7ac,_0x57c8e0))['catch'](handleError(_0x83f7ac,null));};exports[_0x4608('0x47')]=function(_0x455e9c,_0x5ec13b){var _0x25ff4c={'raw':!![],'where':{'id':_0x455e9c['params']['id']}},_0x3a595b={};_0x3a595b['model']=_['keys'](db['SquareOdbc'][_0x4608('0x31')]);_0x3a595b[_0x4608('0x36')]=_['keys'](_0x455e9c[_0x4608('0x36')]);_0x3a595b[_0x4608('0x37')]=_[_0x4608('0x38')](_0x3a595b[_0x4608('0x35')],_0x3a595b[_0x4608('0x36')]);_0x25ff4c[_0x4608('0x3a')]=_['intersection'](_0x3a595b[_0x4608('0x35')],qs[_0x4608('0x39')](_0x455e9c[_0x4608('0x36')][_0x4608('0x39')]));_0x25ff4c[_0x4608('0x3a')]=_0x25ff4c[_0x4608('0x3a')][_0x4608('0x3b')]?_0x25ff4c[_0x4608('0x3a')]:_0x3a595b[_0x4608('0x35')];if(_0x455e9c[_0x4608('0x36')][_0x4608('0x44')]){_0x25ff4c['include']=[{'all':!![]}];}_0x25ff4c=_[_0x4608('0x42')]({},_0x25ff4c,_0x455e9c['options']);return db[_0x4608('0x30')][_0x4608('0x48')](_0x25ff4c)[_0x4608('0x25')](handleEntityNotFound(_0x5ec13b,null))[_0x4608('0x25')](respondWithResult(_0x5ec13b,null))[_0x4608('0x49')](handleError(_0x5ec13b,null));};exports[_0x4608('0x4a')]=function(_0x2f51da,_0x371f9e){return db['SquareOdbc'][_0x4608('0x4a')](_0x2f51da[_0x4608('0x4b')],{})['then'](function(_0x5e5c8d){var _0xccd696=_0x2f51da[_0x4608('0x4c')]['get']({'plain':!![]});if(!_0xccd696)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0xccd696[_0x4608('0x4d')]==='user'){var _0x536bcc=_0x5e5c8d['get']({'plain':!![]});var _0x49340b=_0x4608('0x28');return db[_0x4608('0x4e')][_0x4608('0x48')]({'where':{'name':_0x49340b,'userProfileId':_0xccd696[_0x4608('0x4f')]},'raw':!![]})[_0x4608('0x25')](function(_0x30e7db){if(_0x30e7db&&_0x30e7db[_0x4608('0x50')]===0x0){return db[_0x4608('0x29')][_0x4608('0x4a')]({'name':_0x536bcc[_0x4608('0x2c')],'resourceId':_0x536bcc['id'],'type':_0x30e7db[_0x4608('0x2c')],'sectionId':_0x30e7db['id']},{})['then'](function(){return _0x5e5c8d;});}else{return _0x5e5c8d;}})[_0x4608('0x49')](function(_0x2001c9){logger[_0x4608('0x51')](_0x4608('0x52'),_0x2001c9);throw _0x2001c9;});}return _0x5e5c8d;})[_0x4608('0x25')](respondWithResult(_0x371f9e,0xc9))['catch'](handleError(_0x371f9e,null));};exports[_0x4608('0x24')]=function(_0x34e84e,_0x533fa1){if(_0x34e84e[_0x4608('0x4b')]['id']){delete _0x34e84e[_0x4608('0x4b')]['id'];}return db['SquareOdbc'][_0x4608('0x48')]({'where':{'id':_0x34e84e['params']['id']}})[_0x4608('0x25')](handleEntityNotFound(_0x533fa1,null))['then'](saveUpdates(_0x34e84e[_0x4608('0x4b')],null))['then'](respondWithResult(_0x533fa1,null))['catch'](handleError(_0x533fa1,null));};exports['destroy']=function(_0x1082da,_0xd9d27e){return db[_0x4608('0x30')]['find']({'where':{'id':_0x1082da[_0x4608('0x53')]['id']}})[_0x4608('0x25')](handleEntityNotFound(_0xd9d27e,null))['then'](removeEntity(_0xd9d27e,null))[_0x4608('0x49')](handleError(_0xd9d27e,null));};exports[_0x4608('0x54')]=function(_0x3f18f1,_0x2a05aa,_0x166226){var _0x2ee42c;return db[_0x4608('0x30')][_0x4608('0x48')]({'where':{'id':_0x3f18f1[_0x4608('0x53')]['id']},'attributes':['id',_0x4608('0x55')]})['then'](handleEntityNotFound(_0x2a05aa,null))[_0x4608('0x25')](function(_0x1f109d){if(_0x1f109d){var _0x40449f=require(_0x4608('0x56'))();_0x40449f[_0x4608('0x57')](_0x1f109d[_0x4608('0x55')]);_0x40449f[_0x4608('0x58')]();return _0x1f109d;}})[_0x4608('0x25')](respondWithResult(_0x2a05aa,null))[_0x4608('0x49')](handleError(_0x2a05aa,null));};