Built motion from commit 5b761a7b.|2.5.36
[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 _0xeca0=['keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','sort','where','filter','merge','VIRTUAL','options','findAll','rows','catch','show','params','includeAll','include','find','body','user','role','userProfileId','autoAssociation','create','error','update','test','dsn','openSync','eml-format','zip-dir','fast-json-patch','request-promise','moment','mustache','path','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','undefined','limit','count','set','apply','reject','save','then','destroy','get','ODBC','UserProfileResource','stack','name','send','index','map','SquareOdbc','rawAttributes','fieldName','type','key','model','query'];(function(_0x99facc,_0x548cd6){var _0xd39ed0=function(_0x207e47){while(--_0x207e47){_0x99facc['push'](_0x99facc['shift']());}};_0xd39ed0(++_0x548cd6);}(_0xeca0,0x1c9));var _0x0eca=function(_0x47e7cb,_0x4c1b8d){_0x47e7cb=_0x47e7cb-0x0;var _0x2a8874=_0xeca0[_0x47e7cb];return _0x2a8874;};'use strict';var emlformat=require(_0x0eca('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x0eca('0x1'));var jsonpatch=require(_0x0eca('0x2'));var rp=require(_0x0eca('0x3'));var moment=require(_0x0eca('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x0eca('0x5'));var util=require('util');var path=require(_0x0eca('0x6'));var sox=require('sox');var csv=require(_0x0eca('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x0eca('0x8'));var squel=require(_0x0eca('0x9'));var crypto=require(_0x0eca('0xa'));var jsforce=require(_0x0eca('0xb'));var deskjs=require(_0x0eca('0xc'));var toCsv=require(_0x0eca('0x7'));var querystring=require(_0x0eca('0xd'));var Papa=require(_0x0eca('0xe'));var Redis=require(_0x0eca('0xf'));var authService=require(_0x0eca('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x0eca('0x11'));var hardwareService=require(_0x0eca('0x12'));var logger=require(_0x0eca('0x13'))('api');var utils=require(_0x0eca('0x14'));var config=require(_0x0eca('0x15'));var licenseUtil=require(_0x0eca('0x16'));var db=require(_0x0eca('0x17'))['db'];function respondWithStatusCode(_0x512a33,_0x4d44e0){_0x4d44e0=_0x4d44e0||0xcc;return function(_0x1c3630){if(_0x1c3630){return _0x512a33[_0x0eca('0x18')](_0x4d44e0);}return _0x512a33['status'](_0x4d44e0)[_0x0eca('0x19')]();};}function respondWithResult(_0x3449bd,_0x465678){_0x465678=_0x465678||0xc8;return function(_0x36b773){if(_0x36b773){return _0x3449bd[_0x0eca('0x1a')](_0x465678)[_0x0eca('0x1b')](_0x36b773);}};}function respondWithFilteredResult(_0x376cb2,_0x14d91e){return function(_0x33b3f0){if(_0x33b3f0){var _0x527800=typeof _0x14d91e[_0x0eca('0x1c')]===_0x0eca('0x1d')&&typeof _0x14d91e[_0x0eca('0x1e')]==='undefined';var _0x1717fa=_0x33b3f0[_0x0eca('0x1f')];var _0xe1c577=_0x527800?0x0:_0x14d91e['offset'];var _0x12cb80=_0x527800?_0x33b3f0['count']:_0x14d91e['offset']+_0x14d91e[_0x0eca('0x1e')];var _0x562cc7;if(_0x12cb80>=_0x1717fa){_0x12cb80=_0x1717fa;_0x562cc7=0xc8;}else{_0x562cc7=0xce;}_0x376cb2[_0x0eca('0x1a')](_0x562cc7);return _0x376cb2[_0x0eca('0x20')]('Content-Range',_0xe1c577+'-'+_0x12cb80+'/'+_0x1717fa)['json'](_0x33b3f0);}return null;};}function patchUpdates(_0x16818b){return function(_0x2dcf00){try{jsonpatch[_0x0eca('0x21')](_0x2dcf00,_0x16818b,!![]);}catch(_0x4c8c32){return BPromise[_0x0eca('0x22')](_0x4c8c32);}return _0x2dcf00[_0x0eca('0x23')]();};}function saveUpdates(_0x145653,_0x2e31a8){return function(_0xd6099d){if(_0xd6099d){return _0xd6099d['update'](_0x145653)[_0x0eca('0x24')](function(_0x4ff120){return _0x4ff120;});}return null;};}function removeEntity(_0x5d713c,_0xed483f){return function(_0x4421f4){if(_0x4421f4){return _0x4421f4[_0x0eca('0x25')]()[_0x0eca('0x24')](function(){var _0x212f52=_0x4421f4[_0x0eca('0x26')]({'plain':!![]});var _0x33b5a3=_0x0eca('0x27');return db[_0x0eca('0x28')]['destroy']({'where':{'type':_0x33b5a3,'resourceId':_0x212f52['id']}})[_0x0eca('0x24')](function(){return _0x4421f4;});})['then'](function(){_0x5d713c['status'](0xcc)[_0x0eca('0x19')]();});}};}function handleEntityNotFound(_0xcdd2be,_0x3848c2){return function(_0x472c0){if(!_0x472c0){_0xcdd2be[_0x0eca('0x18')](0x194);}return _0x472c0;};}function handleError(_0x532539,_0x39b558){_0x39b558=_0x39b558||0x1f4;return function(_0xdfdccf){logger['error'](_0xdfdccf[_0x0eca('0x29')]);if(_0xdfdccf[_0x0eca('0x2a')]){delete _0xdfdccf[_0x0eca('0x2a')];}_0x532539[_0x0eca('0x1a')](_0x39b558)[_0x0eca('0x2b')](_0xdfdccf);};}exports[_0x0eca('0x2c')]=function(_0x361a52,_0x3e0d11){var _0x1046fd={},_0x1a83e5={},_0x1e1952={'count':0x0,'rows':[]};var _0x5cc36c=_[_0x0eca('0x2d')](db[_0x0eca('0x2e')][_0x0eca('0x2f')],function(_0x568300){return{'name':_0x568300[_0x0eca('0x30')],'type':_0x568300[_0x0eca('0x31')][_0x0eca('0x32')]};});_0x1a83e5[_0x0eca('0x33')]=_[_0x0eca('0x2d')](_0x5cc36c,_0x0eca('0x2a'));_0x1a83e5[_0x0eca('0x34')]=_[_0x0eca('0x35')](_0x361a52[_0x0eca('0x34')]);_0x1a83e5[_0x0eca('0x36')]=_[_0x0eca('0x37')](_0x1a83e5['model'],_0x1a83e5['query']);_0x1046fd[_0x0eca('0x38')]=_[_0x0eca('0x37')](_0x1a83e5[_0x0eca('0x33')],qs['fields'](_0x361a52['query'][_0x0eca('0x39')]));_0x1046fd['attributes']=_0x1046fd[_0x0eca('0x38')]['length']?_0x1046fd[_0x0eca('0x38')]:_0x1a83e5[_0x0eca('0x33')];if(!_0x361a52[_0x0eca('0x34')][_0x0eca('0x3a')](_0x0eca('0x3b'))){_0x1046fd[_0x0eca('0x1e')]=qs[_0x0eca('0x1e')](_0x361a52[_0x0eca('0x34')][_0x0eca('0x1e')]);_0x1046fd[_0x0eca('0x1c')]=qs[_0x0eca('0x1c')](_0x361a52[_0x0eca('0x34')][_0x0eca('0x1c')]);}_0x1046fd['order']=qs[_0x0eca('0x3c')](_0x361a52[_0x0eca('0x34')][_0x0eca('0x3c')]);_0x1046fd[_0x0eca('0x3d')]=qs['filters'](_['pick'](_0x361a52[_0x0eca('0x34')],_0x1a83e5[_0x0eca('0x36')]),_0x5cc36c);if(_0x361a52['query'][_0x0eca('0x3e')]){_0x1046fd[_0x0eca('0x3d')]=_[_0x0eca('0x3f')](_0x1046fd[_0x0eca('0x3d')],{'$or':_['map'](_0x5cc36c,function(_0x21989e){if(_0x21989e['type']!==_0x0eca('0x40')){var _0x10afe3={};_0x10afe3[_0x21989e[_0x0eca('0x2a')]]={'$like':'%'+_0x361a52['query'][_0x0eca('0x3e')]+'%'};return _0x10afe3;}})});}_0x1046fd=_[_0x0eca('0x3f')]({},_0x1046fd,_0x361a52[_0x0eca('0x41')]);var _0x295620={'where':_0x1046fd[_0x0eca('0x3d')]};return db['SquareOdbc']['count'](_0x295620)[_0x0eca('0x24')](function(_0x43237f){_0x1e1952[_0x0eca('0x1f')]=_0x43237f;if(_0x361a52[_0x0eca('0x34')]['includeAll']){_0x1046fd['include']=[{'all':!![]}];}return db[_0x0eca('0x2e')][_0x0eca('0x42')](_0x1046fd);})[_0x0eca('0x24')](function(_0x2183ce){_0x1e1952[_0x0eca('0x43')]=_0x2183ce;return _0x1e1952;})[_0x0eca('0x24')](respondWithFilteredResult(_0x3e0d11,_0x1046fd))[_0x0eca('0x44')](handleError(_0x3e0d11,null));};exports[_0x0eca('0x45')]=function(_0x809170,_0x5aa217){var _0x595db5={'raw':!![],'where':{'id':_0x809170[_0x0eca('0x46')]['id']}},_0x46ecc5={};_0x46ecc5['model']=_['keys'](db[_0x0eca('0x2e')]['rawAttributes']);_0x46ecc5[_0x0eca('0x34')]=_[_0x0eca('0x35')](_0x809170[_0x0eca('0x34')]);_0x46ecc5[_0x0eca('0x36')]=_[_0x0eca('0x37')](_0x46ecc5['model'],_0x46ecc5[_0x0eca('0x34')]);_0x595db5['attributes']=_[_0x0eca('0x37')](_0x46ecc5['model'],qs[_0x0eca('0x39')](_0x809170[_0x0eca('0x34')]['fields']));_0x595db5['attributes']=_0x595db5[_0x0eca('0x38')]['length']?_0x595db5[_0x0eca('0x38')]:_0x46ecc5['model'];if(_0x809170['query'][_0x0eca('0x47')]){_0x595db5[_0x0eca('0x48')]=[{'all':!![]}];}_0x595db5=_[_0x0eca('0x3f')]({},_0x595db5,_0x809170[_0x0eca('0x41')]);return db[_0x0eca('0x2e')][_0x0eca('0x49')](_0x595db5)[_0x0eca('0x24')](handleEntityNotFound(_0x5aa217,null))[_0x0eca('0x24')](respondWithResult(_0x5aa217,null))[_0x0eca('0x44')](handleError(_0x5aa217,null));};exports['create']=function(_0x5a3457,_0x24894a){return db[_0x0eca('0x2e')]['create'](_0x5a3457[_0x0eca('0x4a')],{})[_0x0eca('0x24')](function(_0x5dfdec){var _0x5490a9=_0x5a3457[_0x0eca('0x4b')]['get']({'plain':!![]});if(!_0x5490a9)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x5490a9[_0x0eca('0x4c')]==='user'){var _0x3d2b21=_0x5dfdec[_0x0eca('0x26')]({'plain':!![]});var _0x5f3ed3=_0x0eca('0x27');return db['UserProfileSection'][_0x0eca('0x49')]({'where':{'name':_0x5f3ed3,'userProfileId':_0x5490a9[_0x0eca('0x4d')]},'raw':!![]})['then'](function(_0x46441b){if(_0x46441b&&_0x46441b[_0x0eca('0x4e')]===0x0){return db[_0x0eca('0x28')][_0x0eca('0x4f')]({'name':_0x3d2b21[_0x0eca('0x2a')],'resourceId':_0x3d2b21['id'],'type':_0x46441b['name'],'sectionId':_0x46441b['id']},{})[_0x0eca('0x24')](function(){return _0x5dfdec;});}else{return _0x5dfdec;}})[_0x0eca('0x44')](function(_0x550bfb){logger[_0x0eca('0x50')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x550bfb);throw _0x550bfb;});}return _0x5dfdec;})[_0x0eca('0x24')](respondWithResult(_0x24894a,0xc9))['catch'](handleError(_0x24894a,null));};exports[_0x0eca('0x51')]=function(_0x19d5cf,_0x4db5e2){if(_0x19d5cf['body']['id']){delete _0x19d5cf[_0x0eca('0x4a')]['id'];}return db[_0x0eca('0x2e')]['find']({'where':{'id':_0x19d5cf[_0x0eca('0x46')]['id']}})[_0x0eca('0x24')](handleEntityNotFound(_0x4db5e2,null))[_0x0eca('0x24')](saveUpdates(_0x19d5cf[_0x0eca('0x4a')],null))[_0x0eca('0x24')](respondWithResult(_0x4db5e2,null))[_0x0eca('0x44')](handleError(_0x4db5e2,null));};exports[_0x0eca('0x25')]=function(_0x439da1,_0x410304){return db[_0x0eca('0x2e')][_0x0eca('0x49')]({'where':{'id':_0x439da1[_0x0eca('0x46')]['id']}})[_0x0eca('0x24')](handleEntityNotFound(_0x410304,null))[_0x0eca('0x24')](removeEntity(_0x410304,null))[_0x0eca('0x44')](handleError(_0x410304,null));};exports[_0x0eca('0x52')]=function(_0x23f743,_0x165813,_0x5ce426){var _0x493d86;return db['SquareOdbc']['find']({'where':{'id':_0x23f743[_0x0eca('0x46')]['id']},'attributes':['id',_0x0eca('0x53')]})['then'](handleEntityNotFound(_0x165813,null))['then'](function(_0xe0e5c9){if(_0xe0e5c9){var _0x38e7c0=require('odbc')();_0x38e7c0[_0x0eca('0x54')](_0xe0e5c9[_0x0eca('0x53')]);_0x38e7c0['closeSync']();return _0xe0e5c9;}})[_0x0eca('0x24')](respondWithResult(_0x165813,null))[_0x0eca('0x44')](handleError(_0x165813,null));};