Built motion from commit 5ad77b03.|2.6.3
[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 _0x6bac=['../../config/environment','../../config/license/util','sendStatus','status','json','limit','undefined','offset','set','Content-Range','update','then','destroy','UserProfileResource','error','stack','name','index','map','rawAttributes','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','filter','merge','type','VIRTUAL','options','count','includeAll','include','SquareOdbc','findAll','catch','params','find','create','body','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','autoAssociation','test','dsn','openSync','closeSync','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','../../config/utils'];(function(_0x12436d,_0x3b8119){var _0x16e4a1=function(_0x45237e){while(--_0x45237e){_0x12436d['push'](_0x12436d['shift']());}};_0x16e4a1(++_0x3b8119);}(_0x6bac,0x1c9));var _0xc6ba=function(_0x2c8fdf,_0x5366ed){_0x2c8fdf=_0x2c8fdf-0x0;var _0x3b8058=_0x6bac[_0x2c8fdf];return _0x3b8058;};'use strict';var emlformat=require(_0xc6ba('0x0'));var rimraf=require(_0xc6ba('0x1'));var zipdir=require(_0xc6ba('0x2'));var jsonpatch=require(_0xc6ba('0x3'));var rp=require('request-promise');var moment=require(_0xc6ba('0x4'));var BPromise=require(_0xc6ba('0x5'));var Mustache=require(_0xc6ba('0x6'));var util=require(_0xc6ba('0x7'));var path=require(_0xc6ba('0x8'));var sox=require(_0xc6ba('0x9'));var csv=require(_0xc6ba('0xa'));var ejs=require(_0xc6ba('0xb'));var fs=require('fs');var fs_extra=require(_0xc6ba('0xc'));var _=require(_0xc6ba('0xd'));var squel=require(_0xc6ba('0xe'));var crypto=require(_0xc6ba('0xf'));var jsforce=require('jsforce');var deskjs=require(_0xc6ba('0x10'));var toCsv=require(_0xc6ba('0xa'));var querystring=require(_0xc6ba('0x11'));var Papa=require('papaparse');var Redis=require(_0xc6ba('0x12'));var authService=require(_0xc6ba('0x13'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xc6ba('0x14'));var logger=require(_0xc6ba('0x15'))('api');var utils=require(_0xc6ba('0x16'));var config=require(_0xc6ba('0x17'));var licenseUtil=require(_0xc6ba('0x18'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x5486a8,_0x48a08b){_0x48a08b=_0x48a08b||0xcc;return function(_0x42a226){if(_0x42a226){return _0x5486a8[_0xc6ba('0x19')](_0x48a08b);}return _0x5486a8[_0xc6ba('0x1a')](_0x48a08b)['end']();};}function respondWithResult(_0x2c6cd7,_0x299efc){_0x299efc=_0x299efc||0xc8;return function(_0x55628d){if(_0x55628d){return _0x2c6cd7[_0xc6ba('0x1a')](_0x299efc)[_0xc6ba('0x1b')](_0x55628d);}};}function respondWithFilteredResult(_0x4afe7a,_0x25321e){return function(_0x22fcb7){if(_0x22fcb7){var _0x588f7f=typeof _0x25321e['offset']==='undefined'&&typeof _0x25321e[_0xc6ba('0x1c')]===_0xc6ba('0x1d');var _0x37f868=_0x22fcb7['count'];var _0x57f4ec=_0x588f7f?0x0:_0x25321e[_0xc6ba('0x1e')];var _0x118098=_0x588f7f?_0x22fcb7['count']:_0x25321e[_0xc6ba('0x1e')]+_0x25321e['limit'];var _0x52496a;if(_0x118098>=_0x37f868){_0x118098=_0x37f868;_0x52496a=0xc8;}else{_0x52496a=0xce;}_0x4afe7a[_0xc6ba('0x1a')](_0x52496a);return _0x4afe7a[_0xc6ba('0x1f')](_0xc6ba('0x20'),_0x57f4ec+'-'+_0x118098+'/'+_0x37f868)[_0xc6ba('0x1b')](_0x22fcb7);}return null;};}function patchUpdates(_0x380fb2){return function(_0x35a257){try{jsonpatch['apply'](_0x35a257,_0x380fb2,!![]);}catch(_0x59dcb4){return BPromise['reject'](_0x59dcb4);}return _0x35a257['save']();};}function saveUpdates(_0x536d61,_0x4252ba){return function(_0x1a5154){if(_0x1a5154){return _0x1a5154[_0xc6ba('0x21')](_0x536d61)[_0xc6ba('0x22')](function(_0x547044){return _0x547044;});}return null;};}function removeEntity(_0x1c3bed,_0x318e20){return function(_0x33cdf2){if(_0x33cdf2){return _0x33cdf2[_0xc6ba('0x23')]()[_0xc6ba('0x22')](function(){var _0x2892e2=_0x33cdf2['get']({'plain':!![]});var _0x51c933='ODBC';return db[_0xc6ba('0x24')][_0xc6ba('0x23')]({'where':{'type':_0x51c933,'resourceId':_0x2892e2['id']}})[_0xc6ba('0x22')](function(){return _0x33cdf2;});})['then'](function(){_0x1c3bed['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x96d2d1,_0x5e8c65){return function(_0x246798){if(!_0x246798){_0x96d2d1['sendStatus'](0x194);}return _0x246798;};}function handleError(_0x2c3cf1,_0x36bc1a){_0x36bc1a=_0x36bc1a||0x1f4;return function(_0x10f84c){logger[_0xc6ba('0x25')](_0x10f84c[_0xc6ba('0x26')]);if(_0x10f84c[_0xc6ba('0x27')]){delete _0x10f84c[_0xc6ba('0x27')];}_0x2c3cf1[_0xc6ba('0x1a')](_0x36bc1a)['send'](_0x10f84c);};}exports[_0xc6ba('0x28')]=function(_0x23385f,_0xb88c0d){var _0x1e775e={},_0x29820f={},_0x44d2cd={'count':0x0,'rows':[]};var _0x3c8eed=_[_0xc6ba('0x29')](db['SquareOdbc'][_0xc6ba('0x2a')],function(_0x1b83e3){return{'name':_0x1b83e3['fieldName'],'type':_0x1b83e3['type'][_0xc6ba('0x2b')]};});_0x29820f[_0xc6ba('0x2c')]=_[_0xc6ba('0x29')](_0x3c8eed,_0xc6ba('0x27'));_0x29820f['query']=_[_0xc6ba('0x2d')](_0x23385f[_0xc6ba('0x2e')]);_0x29820f[_0xc6ba('0x2f')]=_[_0xc6ba('0x30')](_0x29820f['model'],_0x29820f['query']);_0x1e775e[_0xc6ba('0x31')]=_['intersection'](_0x29820f[_0xc6ba('0x2c')],qs[_0xc6ba('0x32')](_0x23385f['query'][_0xc6ba('0x32')]));_0x1e775e['attributes']=_0x1e775e[_0xc6ba('0x31')][_0xc6ba('0x33')]?_0x1e775e[_0xc6ba('0x31')]:_0x29820f['model'];if(!_0x23385f[_0xc6ba('0x2e')][_0xc6ba('0x34')]('nolimit')){_0x1e775e[_0xc6ba('0x1c')]=qs['limit'](_0x23385f[_0xc6ba('0x2e')][_0xc6ba('0x1c')]);_0x1e775e[_0xc6ba('0x1e')]=qs[_0xc6ba('0x1e')](_0x23385f[_0xc6ba('0x2e')][_0xc6ba('0x1e')]);}_0x1e775e[_0xc6ba('0x35')]=qs[_0xc6ba('0x36')](_0x23385f['query'][_0xc6ba('0x36')]);_0x1e775e[_0xc6ba('0x37')]=qs[_0xc6ba('0x2f')](_['pick'](_0x23385f[_0xc6ba('0x2e')],_0x29820f['filters']),_0x3c8eed);if(_0x23385f[_0xc6ba('0x2e')][_0xc6ba('0x38')]){_0x1e775e['where']=_[_0xc6ba('0x39')](_0x1e775e[_0xc6ba('0x37')],{'$or':_[_0xc6ba('0x29')](_0x3c8eed,function(_0x3af6d3){if(_0x3af6d3[_0xc6ba('0x3a')]!==_0xc6ba('0x3b')){var _0x1bb493={};_0x1bb493[_0x3af6d3[_0xc6ba('0x27')]]={'$like':'%'+_0x23385f[_0xc6ba('0x2e')][_0xc6ba('0x38')]+'%'};return _0x1bb493;}})});}_0x1e775e=_['merge']({},_0x1e775e,_0x23385f[_0xc6ba('0x3c')]);var _0x56ee08={'where':_0x1e775e[_0xc6ba('0x37')]};return db['SquareOdbc'][_0xc6ba('0x3d')](_0x56ee08)[_0xc6ba('0x22')](function(_0x4b99e){_0x44d2cd['count']=_0x4b99e;if(_0x23385f[_0xc6ba('0x2e')][_0xc6ba('0x3e')]){_0x1e775e[_0xc6ba('0x3f')]=[{'all':!![]}];}return db[_0xc6ba('0x40')][_0xc6ba('0x41')](_0x1e775e);})[_0xc6ba('0x22')](function(_0x57b146){_0x44d2cd['rows']=_0x57b146;return _0x44d2cd;})['then'](respondWithFilteredResult(_0xb88c0d,_0x1e775e))[_0xc6ba('0x42')](handleError(_0xb88c0d,null));};exports['show']=function(_0x57f358,_0x55dbc1){var _0x1536df={'raw':!![],'where':{'id':_0x57f358[_0xc6ba('0x43')]['id']}},_0x1e0026={};_0x1e0026[_0xc6ba('0x2c')]=_['keys'](db[_0xc6ba('0x40')][_0xc6ba('0x2a')]);_0x1e0026[_0xc6ba('0x2e')]=_['keys'](_0x57f358['query']);_0x1e0026['filters']=_['intersection'](_0x1e0026[_0xc6ba('0x2c')],_0x1e0026['query']);_0x1536df[_0xc6ba('0x31')]=_[_0xc6ba('0x30')](_0x1e0026[_0xc6ba('0x2c')],qs['fields'](_0x57f358['query'][_0xc6ba('0x32')]));_0x1536df['attributes']=_0x1536df[_0xc6ba('0x31')]['length']?_0x1536df['attributes']:_0x1e0026['model'];if(_0x57f358[_0xc6ba('0x2e')][_0xc6ba('0x3e')]){_0x1536df['include']=[{'all':!![]}];}_0x1536df=_[_0xc6ba('0x39')]({},_0x1536df,_0x57f358[_0xc6ba('0x3c')]);return db['SquareOdbc'][_0xc6ba('0x44')](_0x1536df)[_0xc6ba('0x22')](handleEntityNotFound(_0x55dbc1,null))[_0xc6ba('0x22')](respondWithResult(_0x55dbc1,null))[_0xc6ba('0x42')](handleError(_0x55dbc1,null));};exports['create']=function(_0x1a0171,_0x227010){return db['SquareOdbc'][_0xc6ba('0x45')](_0x1a0171[_0xc6ba('0x46')],{})[_0xc6ba('0x22')](function(_0x416638){var _0xd5f3fc=_0x1a0171['user'][_0xc6ba('0x47')]({'plain':!![]});if(!_0xd5f3fc)throw new Error(_0xc6ba('0x48'));if(_0xd5f3fc['role']==='user'){var _0x2ca78=_0x416638['get']({'plain':!![]});var _0x3e2595='ODBC';return db[_0xc6ba('0x49')]['find']({'where':{'name':_0x3e2595,'userProfileId':_0xd5f3fc[_0xc6ba('0x4a')]},'raw':!![]})['then'](function(_0xfebc9c){if(_0xfebc9c&&_0xfebc9c[_0xc6ba('0x4b')]===0x0){return db[_0xc6ba('0x24')][_0xc6ba('0x45')]({'name':_0x2ca78[_0xc6ba('0x27')],'resourceId':_0x2ca78['id'],'type':_0xfebc9c[_0xc6ba('0x27')],'sectionId':_0xfebc9c['id']},{})['then'](function(){return _0x416638;});}else{return _0x416638;}})['catch'](function(_0x13136f){logger[_0xc6ba('0x25')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x13136f);throw _0x13136f;});}return _0x416638;})[_0xc6ba('0x22')](respondWithResult(_0x227010,0xc9))['catch'](handleError(_0x227010,null));};exports[_0xc6ba('0x21')]=function(_0x35e14c,_0x31dd76){if(_0x35e14c[_0xc6ba('0x46')]['id']){delete _0x35e14c[_0xc6ba('0x46')]['id'];}return db[_0xc6ba('0x40')][_0xc6ba('0x44')]({'where':{'id':_0x35e14c[_0xc6ba('0x43')]['id']}})['then'](handleEntityNotFound(_0x31dd76,null))['then'](saveUpdates(_0x35e14c['body'],null))[_0xc6ba('0x22')](respondWithResult(_0x31dd76,null))['catch'](handleError(_0x31dd76,null));};exports[_0xc6ba('0x23')]=function(_0x310cc9,_0xb6eac1){return db['SquareOdbc'][_0xc6ba('0x44')]({'where':{'id':_0x310cc9['params']['id']}})['then'](handleEntityNotFound(_0xb6eac1,null))[_0xc6ba('0x22')](removeEntity(_0xb6eac1,null))[_0xc6ba('0x42')](handleError(_0xb6eac1,null));};exports[_0xc6ba('0x4c')]=function(_0x2e5291,_0x2f8748,_0x22aedd){var _0xf09cb5;return db[_0xc6ba('0x40')][_0xc6ba('0x44')]({'where':{'id':_0x2e5291[_0xc6ba('0x43')]['id']},'attributes':['id',_0xc6ba('0x4d')]})[_0xc6ba('0x22')](handleEntityNotFound(_0x2f8748,null))[_0xc6ba('0x22')](function(_0x2435db){if(_0x2435db){var _0x43feb9=require('odbc')();_0x43feb9[_0xc6ba('0x4e')](_0x2435db[_0xc6ba('0x4d')]);_0x43feb9[_0xc6ba('0x4f')]();return _0x2435db;}})['then'](respondWithResult(_0x2f8748,null))[_0xc6ba('0x42')](handleError(_0x2f8748,null));};