Built motion from commit efa66e19.|2.6.22
[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 _0xcfbc=['intersection','fields','attributes','hasOwnProperty','nolimit','order','where','filters','pick','filter','merge','VIRTUAL','options','SquareOdbc','findAll','rows','catch','show','params','length','include','find','create','body','user','UserProfileSection','userProfileId','autoAssociation','name','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','test','dsn','odbc','openSync','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','ejs','lodash','squel','crypto','jsforce','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','limit','undefined','count','set','apply','reject','save','update','then','destroy','get','ODBC','error','send','index','map','rawAttributes','fieldName','type','model','query','keys'];(function(_0x20dba1,_0x726a24){var _0x47203d=function(_0x1cfb2d){while(--_0x1cfb2d){_0x20dba1['push'](_0x20dba1['shift']());}};_0x47203d(++_0x726a24);}(_0xcfbc,0x127));var _0xccfb=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xcfbc[_0x20a584];return _0x4b41a8;};'use strict';var emlformat=require(_0xccfb('0x0'));var rimraf=require(_0xccfb('0x1'));var zipdir=require(_0xccfb('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xccfb('0x3'));var moment=require(_0xccfb('0x4'));var BPromise=require(_0xccfb('0x5'));var Mustache=require(_0xccfb('0x6'));var util=require(_0xccfb('0x7'));var path=require(_0xccfb('0x8'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xccfb('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xccfb('0xa'));var squel=require(_0xccfb('0xb'));var crypto=require(_0xccfb('0xc'));var jsforce=require(_0xccfb('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xccfb('0xe'));var querystring=require(_0xccfb('0xf'));var Papa=require(_0xccfb('0x10'));var Redis=require(_0xccfb('0x11'));var authService=require('../../components/auth/service');var qs=require(_0xccfb('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xccfb('0x13'));var logger=require(_0xccfb('0x14'))(_0xccfb('0x15'));var utils=require(_0xccfb('0x16'));var config=require(_0xccfb('0x17'));var licenseUtil=require(_0xccfb('0x18'));var db=require(_0xccfb('0x19'))['db'];function respondWithStatusCode(_0x1d1112,_0x18e32c){_0x18e32c=_0x18e32c||0xcc;return function(_0x2437f9){if(_0x2437f9){return _0x1d1112[_0xccfb('0x1a')](_0x18e32c);}return _0x1d1112[_0xccfb('0x1b')](_0x18e32c)[_0xccfb('0x1c')]();};}function respondWithResult(_0xa06d41,_0x2c9c8e){_0x2c9c8e=_0x2c9c8e||0xc8;return function(_0x5f51d0){if(_0x5f51d0){return _0xa06d41[_0xccfb('0x1b')](_0x2c9c8e)[_0xccfb('0x1d')](_0x5f51d0);}};}function respondWithFilteredResult(_0x59a78f,_0x224f6c){return function(_0x993851){if(_0x993851){var _0x2decad=typeof _0x224f6c[_0xccfb('0x1e')]==='undefined'&&typeof _0x224f6c[_0xccfb('0x1f')]===_0xccfb('0x20');var _0x53151d=_0x993851['count'];var _0x394719=_0x2decad?0x0:_0x224f6c[_0xccfb('0x1e')];var _0x59afa5=_0x2decad?_0x993851[_0xccfb('0x21')]:_0x224f6c[_0xccfb('0x1e')]+_0x224f6c[_0xccfb('0x1f')];var _0x279178;if(_0x59afa5>=_0x53151d){_0x59afa5=_0x53151d;_0x279178=0xc8;}else{_0x279178=0xce;}_0x59a78f[_0xccfb('0x1b')](_0x279178);return _0x59a78f[_0xccfb('0x22')]('Content-Range',_0x394719+'-'+_0x59afa5+'/'+_0x53151d)[_0xccfb('0x1d')](_0x993851);}return null;};}function patchUpdates(_0x32941f){return function(_0x4ce47e){try{jsonpatch[_0xccfb('0x23')](_0x4ce47e,_0x32941f,!![]);}catch(_0x51205b){return BPromise[_0xccfb('0x24')](_0x51205b);}return _0x4ce47e[_0xccfb('0x25')]();};}function saveUpdates(_0x2deb66,_0x3d1a46){return function(_0x5bcb02){if(_0x5bcb02){return _0x5bcb02[_0xccfb('0x26')](_0x2deb66)[_0xccfb('0x27')](function(_0x2bcd83){return _0x2bcd83;});}return null;};}function removeEntity(_0x2f77f0,_0x2528b2){return function(_0x5be7c8){if(_0x5be7c8){return _0x5be7c8[_0xccfb('0x28')]()['then'](function(){var _0x274f99=_0x5be7c8[_0xccfb('0x29')]({'plain':!![]});var _0x573442=_0xccfb('0x2a');return db['UserProfileResource']['destroy']({'where':{'type':_0x573442,'resourceId':_0x274f99['id']}})[_0xccfb('0x27')](function(){return _0x5be7c8;});})['then'](function(){_0x2f77f0['status'](0xcc)[_0xccfb('0x1c')]();});}};}function handleEntityNotFound(_0x1e5e28,_0x4a300e){return function(_0x2b6271){if(!_0x2b6271){_0x1e5e28[_0xccfb('0x1a')](0x194);}return _0x2b6271;};}function handleError(_0x2f4f4f,_0x31c838){_0x31c838=_0x31c838||0x1f4;return function(_0x260e8a){logger[_0xccfb('0x2b')](_0x260e8a['stack']);if(_0x260e8a['name']){delete _0x260e8a['name'];}_0x2f4f4f[_0xccfb('0x1b')](_0x31c838)[_0xccfb('0x2c')](_0x260e8a);};}exports[_0xccfb('0x2d')]=function(_0x1f85a0,_0x1db625){var _0x2bbab8={},_0x59cf1f={},_0x3cd575={'count':0x0,'rows':[]};var _0x3ae588=_[_0xccfb('0x2e')](db['SquareOdbc'][_0xccfb('0x2f')],function(_0x4e289e){return{'name':_0x4e289e[_0xccfb('0x30')],'type':_0x4e289e[_0xccfb('0x31')]['key']};});_0x59cf1f[_0xccfb('0x32')]=_[_0xccfb('0x2e')](_0x3ae588,'name');_0x59cf1f[_0xccfb('0x33')]=_[_0xccfb('0x34')](_0x1f85a0[_0xccfb('0x33')]);_0x59cf1f['filters']=_[_0xccfb('0x35')](_0x59cf1f[_0xccfb('0x32')],_0x59cf1f[_0xccfb('0x33')]);_0x2bbab8['attributes']=_['intersection'](_0x59cf1f[_0xccfb('0x32')],qs[_0xccfb('0x36')](_0x1f85a0[_0xccfb('0x33')][_0xccfb('0x36')]));_0x2bbab8[_0xccfb('0x37')]=_0x2bbab8['attributes']['length']?_0x2bbab8[_0xccfb('0x37')]:_0x59cf1f[_0xccfb('0x32')];if(!_0x1f85a0['query'][_0xccfb('0x38')](_0xccfb('0x39'))){_0x2bbab8[_0xccfb('0x1f')]=qs[_0xccfb('0x1f')](_0x1f85a0['query'][_0xccfb('0x1f')]);_0x2bbab8[_0xccfb('0x1e')]=qs[_0xccfb('0x1e')](_0x1f85a0[_0xccfb('0x33')]['offset']);}_0x2bbab8[_0xccfb('0x3a')]=qs['sort'](_0x1f85a0['query']['sort']);_0x2bbab8[_0xccfb('0x3b')]=qs[_0xccfb('0x3c')](_[_0xccfb('0x3d')](_0x1f85a0[_0xccfb('0x33')],_0x59cf1f[_0xccfb('0x3c')]),_0x3ae588);if(_0x1f85a0[_0xccfb('0x33')][_0xccfb('0x3e')]){_0x2bbab8[_0xccfb('0x3b')]=_[_0xccfb('0x3f')](_0x2bbab8[_0xccfb('0x3b')],{'$or':_[_0xccfb('0x2e')](_0x3ae588,function(_0xa38dfd){if(_0xa38dfd[_0xccfb('0x31')]!==_0xccfb('0x40')){var _0x133d59={};_0x133d59[_0xa38dfd['name']]={'$like':'%'+_0x1f85a0[_0xccfb('0x33')]['filter']+'%'};return _0x133d59;}})});}_0x2bbab8=_['merge']({},_0x2bbab8,_0x1f85a0[_0xccfb('0x41')]);var _0x1b9f1f={'where':_0x2bbab8[_0xccfb('0x3b')]};return db[_0xccfb('0x42')][_0xccfb('0x21')](_0x1b9f1f)[_0xccfb('0x27')](function(_0x5a6e4d){_0x3cd575['count']=_0x5a6e4d;if(_0x1f85a0[_0xccfb('0x33')]['includeAll']){_0x2bbab8['include']=[{'all':!![]}];}return db['SquareOdbc'][_0xccfb('0x43')](_0x2bbab8);})[_0xccfb('0x27')](function(_0x27b493){_0x3cd575[_0xccfb('0x44')]=_0x27b493;return _0x3cd575;})[_0xccfb('0x27')](respondWithFilteredResult(_0x1db625,_0x2bbab8))[_0xccfb('0x45')](handleError(_0x1db625,null));};exports[_0xccfb('0x46')]=function(_0x352314,_0x1a053c){var _0x5a6f94={'raw':!![],'where':{'id':_0x352314[_0xccfb('0x47')]['id']}},_0x2d9d18={};_0x2d9d18['model']=_[_0xccfb('0x34')](db[_0xccfb('0x42')][_0xccfb('0x2f')]);_0x2d9d18[_0xccfb('0x33')]=_[_0xccfb('0x34')](_0x352314[_0xccfb('0x33')]);_0x2d9d18[_0xccfb('0x3c')]=_[_0xccfb('0x35')](_0x2d9d18[_0xccfb('0x32')],_0x2d9d18[_0xccfb('0x33')]);_0x5a6f94[_0xccfb('0x37')]=_[_0xccfb('0x35')](_0x2d9d18['model'],qs[_0xccfb('0x36')](_0x352314[_0xccfb('0x33')][_0xccfb('0x36')]));_0x5a6f94['attributes']=_0x5a6f94[_0xccfb('0x37')][_0xccfb('0x48')]?_0x5a6f94[_0xccfb('0x37')]:_0x2d9d18[_0xccfb('0x32')];if(_0x352314[_0xccfb('0x33')]['includeAll']){_0x5a6f94[_0xccfb('0x49')]=[{'all':!![]}];}_0x5a6f94=_[_0xccfb('0x3f')]({},_0x5a6f94,_0x352314[_0xccfb('0x41')]);return db[_0xccfb('0x42')][_0xccfb('0x4a')](_0x5a6f94)['then'](handleEntityNotFound(_0x1a053c,null))[_0xccfb('0x27')](respondWithResult(_0x1a053c,null))[_0xccfb('0x45')](handleError(_0x1a053c,null));};exports['create']=function(_0x54f059,_0x186c36){return db[_0xccfb('0x42')][_0xccfb('0x4b')](_0x54f059[_0xccfb('0x4c')],{})[_0xccfb('0x27')](function(_0x3bd5f3){var _0x5ece70=_0x54f059[_0xccfb('0x4d')][_0xccfb('0x29')]({'plain':!![]});if(!_0x5ece70)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x5ece70['role']===_0xccfb('0x4d')){var _0x4e291f=_0x3bd5f3[_0xccfb('0x29')]({'plain':!![]});var _0x17832a=_0xccfb('0x2a');return db[_0xccfb('0x4e')]['find']({'where':{'name':_0x17832a,'userProfileId':_0x5ece70[_0xccfb('0x4f')]},'raw':!![]})[_0xccfb('0x27')](function(_0x1719f2){if(_0x1719f2&&_0x1719f2[_0xccfb('0x50')]===0x0){return db['UserProfileResource'][_0xccfb('0x4b')]({'name':_0x4e291f[_0xccfb('0x51')],'resourceId':_0x4e291f['id'],'type':_0x1719f2[_0xccfb('0x51')],'sectionId':_0x1719f2['id']},{})[_0xccfb('0x27')](function(){return _0x3bd5f3;});}else{return _0x3bd5f3;}})[_0xccfb('0x45')](function(_0x5eaab0){logger[_0xccfb('0x2b')](_0xccfb('0x52'),_0x5eaab0);throw _0x5eaab0;});}return _0x3bd5f3;})[_0xccfb('0x27')](respondWithResult(_0x186c36,0xc9))[_0xccfb('0x45')](handleError(_0x186c36,null));};exports[_0xccfb('0x26')]=function(_0x4eccff,_0x3fd55c){if(_0x4eccff['body']['id']){delete _0x4eccff[_0xccfb('0x4c')]['id'];}return db[_0xccfb('0x42')][_0xccfb('0x4a')]({'where':{'id':_0x4eccff['params']['id']}})[_0xccfb('0x27')](handleEntityNotFound(_0x3fd55c,null))['then'](saveUpdates(_0x4eccff['body'],null))[_0xccfb('0x27')](respondWithResult(_0x3fd55c,null))[_0xccfb('0x45')](handleError(_0x3fd55c,null));};exports[_0xccfb('0x28')]=function(_0x1656c6,_0x497007){return db[_0xccfb('0x42')]['find']({'where':{'id':_0x1656c6[_0xccfb('0x47')]['id']}})[_0xccfb('0x27')](handleEntityNotFound(_0x497007,null))['then'](removeEntity(_0x497007,null))['catch'](handleError(_0x497007,null));};exports[_0xccfb('0x53')]=function(_0x27304a,_0x30ce4d,_0x11c67f){var _0x5981e3;return db[_0xccfb('0x42')][_0xccfb('0x4a')]({'where':{'id':_0x27304a[_0xccfb('0x47')]['id']},'attributes':['id',_0xccfb('0x54')]})['then'](handleEntityNotFound(_0x30ce4d,null))[_0xccfb('0x27')](function(_0x5cb89d){if(_0x5cb89d){var _0x51ab1f=require(_0xccfb('0x55'))();_0x51ab1f[_0xccfb('0x56')](_0x5cb89d[_0xccfb('0x54')]);_0x51ab1f['closeSync']();return _0x5cb89d;}})['then'](respondWithResult(_0x30ce4d,null))[_0xccfb('0x45')](handleError(_0x30ce4d,null));};