4ec062a36aced9c0e1e52f233597b5e8d45b00b8
[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 _0x8e6f=['SquareOdbc','rawAttributes','fieldName','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','VIRTUAL','merge','options','includeAll','include','findAll','rows','show','params','find','catch','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','test','dsn','odbc','closeSync','html-pdf','eml-format','rimraf','bluebird','mustache','util','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','sendStatus','status','end','json','count','offset','limit','set','apply','reject','then','destroy','get','ODBC','UserProfileResource','error','name','send','index'];(function(_0xfae23b,_0x2be4ba){var _0x200640=function(_0x4ae258){while(--_0x4ae258){_0xfae23b['push'](_0xfae23b['shift']());}};_0x200640(++_0x2be4ba);}(_0x8e6f,0xcd));var _0xf8e6=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x8e6f[_0x3dd15e];return _0x231fd0;};'use strict';var pdf=require(_0xf8e6('0x0'));var emlformat=require(_0xf8e6('0x1'));var rimraf=require(_0xf8e6('0x2'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xf8e6('0x3'));var Mustache=require(_0xf8e6('0x4'));var util=require(_0xf8e6('0x5'));var path=require('path');var sox=require(_0xf8e6('0x6'));var csv=require(_0xf8e6('0x7'));var ejs=require(_0xf8e6('0x8'));var fs=require('fs');var _=require(_0xf8e6('0x9'));var squel=require('squel');var crypto=require(_0xf8e6('0xa'));var jsforce=require(_0xf8e6('0xb'));var deskjs=require(_0xf8e6('0xc'));var toCsv=require(_0xf8e6('0x7'));var querystring=require(_0xf8e6('0xd'));var Papa=require(_0xf8e6('0xe'));var Redis=require(_0xf8e6('0xf'));var authService=require('../../components/auth/service');var qs=require(_0xf8e6('0x10'));var as=require(_0xf8e6('0x11'));var hardwareService=require(_0xf8e6('0x12'));var logger=require(_0xf8e6('0x13'))('api');var utils=require(_0xf8e6('0x14'));var config=require(_0xf8e6('0x15'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x56593d,_0x22115b){_0x22115b=_0x22115b||0xcc;return function(_0x2f1262){if(_0x2f1262){return _0x56593d[_0xf8e6('0x16')](_0x22115b);}return _0x56593d[_0xf8e6('0x17')](_0x22115b)[_0xf8e6('0x18')]();};}function respondWithResult(_0x4fe6da,_0x2f2d19){_0x2f2d19=_0x2f2d19||0xc8;return function(_0x3e47de){if(_0x3e47de){return _0x4fe6da[_0xf8e6('0x17')](_0x2f2d19)[_0xf8e6('0x19')](_0x3e47de);}};}function respondWithFilteredResult(_0x4667c5,_0x5d33ae){return function(_0xc9cbb3){if(_0xc9cbb3){var _0x450b4e=_0xc9cbb3[_0xf8e6('0x1a')],_0x214266=_0x5d33ae['offset'],_0x14afb9=_0x5d33ae[_0xf8e6('0x1b')]+_0x5d33ae[_0xf8e6('0x1c')],_0x4648c2;if(_0x14afb9>=_0x450b4e){_0x14afb9=_0x450b4e;_0x4648c2=0xc8;}else{_0x4648c2=0xce;}_0x4667c5[_0xf8e6('0x17')](_0x4648c2);return _0x4667c5[_0xf8e6('0x1d')]('Content-Range',_0x214266+'-'+_0x14afb9+'/'+_0x450b4e)['json'](_0xc9cbb3);}return null;};}function patchUpdates(_0x1709b4){return function(_0x32d1c5){try{jsonpatch[_0xf8e6('0x1e')](_0x32d1c5,_0x1709b4,!![]);}catch(_0x131b6d){return BPromise[_0xf8e6('0x1f')](_0x131b6d);}return _0x32d1c5['save']();};}function saveUpdates(_0x5be989,_0x5907fd){return function(_0x406b6a){if(_0x406b6a){return _0x406b6a['update'](_0x5be989)[_0xf8e6('0x20')](function(_0x15a6fa){return _0x15a6fa;});}return null;};}function removeEntity(_0x3c675b,_0x4ee424){return function(_0x22664f){if(_0x22664f){return _0x22664f[_0xf8e6('0x21')]()['then'](function(){var _0x573ee7=_0x22664f[_0xf8e6('0x22')]({'plain':!![]});var _0x3408c3=_0xf8e6('0x23');return db[_0xf8e6('0x24')][_0xf8e6('0x21')]({'where':{'type':_0x3408c3,'resourceId':_0x573ee7['id']}})[_0xf8e6('0x20')](function(){return _0x22664f;});})[_0xf8e6('0x20')](function(){_0x3c675b[_0xf8e6('0x17')](0xcc)[_0xf8e6('0x18')]();});}};}function handleEntityNotFound(_0x4462bc,_0x15c726){return function(_0x56e666){if(!_0x56e666){_0x4462bc[_0xf8e6('0x16')](0x194);}return _0x56e666;};}function handleError(_0x777ca3,_0x22483c){_0x22483c=_0x22483c||0x1f4;return function(_0x3d76a3){logger[_0xf8e6('0x25')](_0x3d76a3['stack']);if(_0x3d76a3[_0xf8e6('0x26')]){delete _0x3d76a3[_0xf8e6('0x26')];}_0x777ca3[_0xf8e6('0x17')](_0x22483c)[_0xf8e6('0x27')](_0x3d76a3);};}exports[_0xf8e6('0x28')]=function(_0x3cf64d,_0x184df4){var _0x4ae2e0={},_0x2552ec={},_0xc57b7e={'count':0x0,'rows':[]};var _0x742777=_['map'](db[_0xf8e6('0x29')][_0xf8e6('0x2a')],function(_0x1d1524){return{'name':_0x1d1524[_0xf8e6('0x2b')],'type':_0x1d1524['type']['key']};});_0x2552ec[_0xf8e6('0x2c')]=_[_0xf8e6('0x2d')](_0x742777,'name');_0x2552ec[_0xf8e6('0x2e')]=_[_0xf8e6('0x2f')](_0x3cf64d[_0xf8e6('0x2e')]);_0x2552ec[_0xf8e6('0x30')]=_[_0xf8e6('0x31')](_0x2552ec[_0xf8e6('0x2c')],_0x2552ec['query']);_0x4ae2e0[_0xf8e6('0x32')]=_[_0xf8e6('0x31')](_0x2552ec[_0xf8e6('0x2c')],qs[_0xf8e6('0x33')](_0x3cf64d[_0xf8e6('0x2e')][_0xf8e6('0x33')]));_0x4ae2e0[_0xf8e6('0x32')]=_0x4ae2e0[_0xf8e6('0x32')][_0xf8e6('0x34')]?_0x4ae2e0['attributes']:_0x2552ec[_0xf8e6('0x2c')];if(!_0x3cf64d[_0xf8e6('0x2e')][_0xf8e6('0x35')](_0xf8e6('0x36'))){_0x4ae2e0['limit']=qs[_0xf8e6('0x1c')](_0x3cf64d[_0xf8e6('0x2e')][_0xf8e6('0x1c')]);_0x4ae2e0[_0xf8e6('0x1b')]=qs[_0xf8e6('0x1b')](_0x3cf64d['query'][_0xf8e6('0x1b')]);}_0x4ae2e0['order']=qs[_0xf8e6('0x37')](_0x3cf64d['query']['sort']);_0x4ae2e0[_0xf8e6('0x38')]=qs['filters'](_[_0xf8e6('0x39')](_0x3cf64d[_0xf8e6('0x2e')],_0x2552ec[_0xf8e6('0x30')]));if(_0x3cf64d[_0xf8e6('0x2e')][_0xf8e6('0x3a')]){_0x4ae2e0[_0xf8e6('0x38')]=_['merge'](_0x4ae2e0[_0xf8e6('0x38')],{'$or':_[_0xf8e6('0x2d')](_0x742777,function(_0x53566c){if(_0x53566c['type']!==_0xf8e6('0x3b')){var _0x29b906={};_0x29b906[_0x53566c[_0xf8e6('0x26')]]={'$like':'%'+_0x3cf64d[_0xf8e6('0x2e')][_0xf8e6('0x3a')]+'%'};return _0x29b906;}})});}_0x4ae2e0=_[_0xf8e6('0x3c')]({},_0x4ae2e0,_0x3cf64d[_0xf8e6('0x3d')]);var _0x48f058={'where':_0x4ae2e0[_0xf8e6('0x38')]};return db[_0xf8e6('0x29')][_0xf8e6('0x1a')](_0x48f058)[_0xf8e6('0x20')](function(_0x16c7c3){_0xc57b7e[_0xf8e6('0x1a')]=_0x16c7c3;if(_0x3cf64d['query'][_0xf8e6('0x3e')]){_0x4ae2e0[_0xf8e6('0x3f')]=[{'all':!![]}];}return db['SquareOdbc'][_0xf8e6('0x40')](_0x4ae2e0);})[_0xf8e6('0x20')](function(_0xf08a39){_0xc57b7e[_0xf8e6('0x41')]=_0xf08a39;return _0xc57b7e;})[_0xf8e6('0x20')](respondWithFilteredResult(_0x184df4,_0x4ae2e0))['catch'](handleError(_0x184df4,null));};exports[_0xf8e6('0x42')]=function(_0x1139fd,_0x5c824b){var _0x40c6ce={'raw':!![],'where':{'id':_0x1139fd[_0xf8e6('0x43')]['id']}},_0x26e40e={};_0x26e40e[_0xf8e6('0x2c')]=_[_0xf8e6('0x2f')](db[_0xf8e6('0x29')][_0xf8e6('0x2a')]);_0x26e40e[_0xf8e6('0x2e')]=_['keys'](_0x1139fd[_0xf8e6('0x2e')]);_0x26e40e[_0xf8e6('0x30')]=_['intersection'](_0x26e40e[_0xf8e6('0x2c')],_0x26e40e[_0xf8e6('0x2e')]);_0x40c6ce[_0xf8e6('0x32')]=_['intersection'](_0x26e40e['model'],qs[_0xf8e6('0x33')](_0x1139fd[_0xf8e6('0x2e')][_0xf8e6('0x33')]));_0x40c6ce[_0xf8e6('0x32')]=_0x40c6ce[_0xf8e6('0x32')]['length']?_0x40c6ce[_0xf8e6('0x32')]:_0x26e40e[_0xf8e6('0x2c')];if(_0x1139fd['query'][_0xf8e6('0x3e')]){_0x40c6ce[_0xf8e6('0x3f')]=[{'all':!![]}];}_0x40c6ce=_[_0xf8e6('0x3c')]({},_0x40c6ce,_0x1139fd['options']);return db[_0xf8e6('0x29')][_0xf8e6('0x44')](_0x40c6ce)[_0xf8e6('0x20')](handleEntityNotFound(_0x5c824b,null))[_0xf8e6('0x20')](respondWithResult(_0x5c824b,null))[_0xf8e6('0x45')](handleError(_0x5c824b,null));};exports[_0xf8e6('0x46')]=function(_0xd2884e,_0x44b484){return db[_0xf8e6('0x29')][_0xf8e6('0x46')](_0xd2884e[_0xf8e6('0x47')],{})[_0xf8e6('0x20')](function(_0x457293){var _0x30d2f0=_0xd2884e[_0xf8e6('0x48')]['get']({'plain':!![]});if(!_0x30d2f0)throw new Error(_0xf8e6('0x49'));if(_0x30d2f0['role']===_0xf8e6('0x48')){var _0x416cc9=_0x457293['get']({'plain':!![]});var _0x235cb8=_0xf8e6('0x23');return db[_0xf8e6('0x4a')][_0xf8e6('0x44')]({'where':{'name':_0x235cb8,'userProfileId':_0x30d2f0[_0xf8e6('0x4b')]},'raw':!![]})[_0xf8e6('0x20')](function(_0x428db1){if(_0x428db1&&_0x428db1['autoAssociation']===0x0){return db[_0xf8e6('0x24')][_0xf8e6('0x46')]({'name':_0x416cc9[_0xf8e6('0x26')],'resourceId':_0x416cc9['id'],'type':_0x428db1['name'],'sectionId':_0x428db1['id']},{})[_0xf8e6('0x20')](function(){return _0x457293;});}else{return _0x457293;}})[_0xf8e6('0x45')](function(_0x33ceac){logger['error'](_0xf8e6('0x4c'),_0x33ceac);throw _0x33ceac;});}return _0x457293;})[_0xf8e6('0x20')](respondWithResult(_0x44b484,0xc9))[_0xf8e6('0x45')](handleError(_0x44b484,null));};exports[_0xf8e6('0x4d')]=function(_0x5dff04,_0x34f143){if(_0x5dff04[_0xf8e6('0x47')]['id']){delete _0x5dff04[_0xf8e6('0x47')]['id'];}return db['SquareOdbc']['find']({'where':{'id':_0x5dff04['params']['id']}})[_0xf8e6('0x20')](handleEntityNotFound(_0x34f143,null))[_0xf8e6('0x20')](saveUpdates(_0x5dff04[_0xf8e6('0x47')],null))[_0xf8e6('0x20')](respondWithResult(_0x34f143,null))['catch'](handleError(_0x34f143,null));};exports['destroy']=function(_0x253ba1,_0x2c51a0){return db['SquareOdbc']['find']({'where':{'id':_0x253ba1[_0xf8e6('0x43')]['id']}})[_0xf8e6('0x20')](handleEntityNotFound(_0x2c51a0,null))[_0xf8e6('0x20')](removeEntity(_0x2c51a0,null))[_0xf8e6('0x45')](handleError(_0x2c51a0,null));};exports[_0xf8e6('0x4e')]=function(_0x34fedf,_0x48469b,_0x54a3f6){var _0x4e6d9b;return db[_0xf8e6('0x29')][_0xf8e6('0x44')]({'where':{'id':_0x34fedf[_0xf8e6('0x43')]['id']},'attributes':['id',_0xf8e6('0x4f')]})['then'](handleEntityNotFound(_0x48469b,null))[_0xf8e6('0x20')](function(_0x57378a){if(_0x57378a){var _0x2bc1cb=require(_0xf8e6('0x50'))();_0x2bc1cb['openSync'](_0x57378a[_0xf8e6('0x4f')]);_0x2bc1cb[_0xf8e6('0x51')]();return _0x57378a;}})[_0xf8e6('0x20')](respondWithResult(_0x48469b,null))[_0xf8e6('0x45')](handleError(_0x48469b,null));};