Built motion from commit 74d9782e.|2.6.30
[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 _0xa058=['rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','set','apply','reject','save','update','destroy','then','get','ODBC','error','name','send','index','map','SquareOdbc','type','model','query','keys','attributes','fields','length','hasOwnProperty','nolimit','order','sort','filters','pick','filter','where','VIRTUAL','merge','options','include','findAll','rows','catch','params','rawAttributes','intersection','includeAll','find','body','user','role','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','test','dsn','odbc','openSync','closeSync','eml-format'];(function(_0x3efabd,_0x8cbc81){var _0x3b07e2=function(_0x2a0d3c){while(--_0x2a0d3c){_0x3efabd['push'](_0x3efabd['shift']());}};_0x3b07e2(++_0x8cbc81);}(_0xa058,0x153));var _0x8a05=function(_0x4017b0,_0x4347db){_0x4017b0=_0x4017b0-0x0;var _0x5ed4f7=_0xa058[_0x4017b0];return _0x5ed4f7;};'use strict';var emlformat=require(_0x8a05('0x0'));var rimraf=require(_0x8a05('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x8a05('0x2'));var rp=require(_0x8a05('0x3'));var moment=require(_0x8a05('0x4'));var BPromise=require(_0x8a05('0x5'));var Mustache=require(_0x8a05('0x6'));var util=require(_0x8a05('0x7'));var path=require(_0x8a05('0x8'));var sox=require(_0x8a05('0x9'));var csv=require(_0x8a05('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x8a05('0xb'));var crypto=require(_0x8a05('0xc'));var jsforce=require(_0x8a05('0xd'));var deskjs=require(_0x8a05('0xe'));var toCsv=require('to-csv');var querystring=require(_0x8a05('0xf'));var Papa=require('papaparse');var Redis=require(_0x8a05('0x10'));var authService=require(_0x8a05('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x8a05('0x12'));var hardwareService=require(_0x8a05('0x13'));var logger=require(_0x8a05('0x14'))(_0x8a05('0x15'));var utils=require('../../config/utils');var config=require(_0x8a05('0x16'));var licenseUtil=require(_0x8a05('0x17'));var db=require(_0x8a05('0x18'))['db'];function respondWithStatusCode(_0x444d03,_0x3dd101){_0x3dd101=_0x3dd101||0xcc;return function(_0x320288){if(_0x320288){return _0x444d03[_0x8a05('0x19')](_0x3dd101);}return _0x444d03[_0x8a05('0x1a')](_0x3dd101)['end']();};}function respondWithResult(_0x13da75,_0x292ee){_0x292ee=_0x292ee||0xc8;return function(_0x6e0586){if(_0x6e0586){return _0x13da75[_0x8a05('0x1a')](_0x292ee)[_0x8a05('0x1b')](_0x6e0586);}};}function respondWithFilteredResult(_0x169330,_0x3e11e){return function(_0x2bdab3){if(_0x2bdab3){var _0x13a317=typeof _0x3e11e[_0x8a05('0x1c')]===_0x8a05('0x1d')&&typeof _0x3e11e[_0x8a05('0x1e')]===_0x8a05('0x1d');var _0x4815c9=_0x2bdab3[_0x8a05('0x1f')];var _0x530b4d=_0x13a317?0x0:_0x3e11e[_0x8a05('0x1c')];var _0x17eac0=_0x13a317?_0x2bdab3[_0x8a05('0x1f')]:_0x3e11e[_0x8a05('0x1c')]+_0x3e11e[_0x8a05('0x1e')];var _0x4a700a;if(_0x17eac0>=_0x4815c9){_0x17eac0=_0x4815c9;_0x4a700a=0xc8;}else{_0x4a700a=0xce;}_0x169330[_0x8a05('0x1a')](_0x4a700a);return _0x169330[_0x8a05('0x20')]('Content-Range',_0x530b4d+'-'+_0x17eac0+'/'+_0x4815c9)[_0x8a05('0x1b')](_0x2bdab3);}return null;};}function patchUpdates(_0x9e9f9c){return function(_0x765ffa){try{jsonpatch[_0x8a05('0x21')](_0x765ffa,_0x9e9f9c,!![]);}catch(_0x13bf38){return BPromise[_0x8a05('0x22')](_0x13bf38);}return _0x765ffa[_0x8a05('0x23')]();};}function saveUpdates(_0x1cfb93,_0x543f2e){return function(_0x331311){if(_0x331311){return _0x331311[_0x8a05('0x24')](_0x1cfb93)['then'](function(_0x36c54f){return _0x36c54f;});}return null;};}function removeEntity(_0xeb944d,_0x4d422f){return function(_0x23c59e){if(_0x23c59e){return _0x23c59e[_0x8a05('0x25')]()[_0x8a05('0x26')](function(){var _0x179f45=_0x23c59e[_0x8a05('0x27')]({'plain':!![]});var _0x7d844b=_0x8a05('0x28');return db['UserProfileResource']['destroy']({'where':{'type':_0x7d844b,'resourceId':_0x179f45['id']}})['then'](function(){return _0x23c59e;});})['then'](function(){_0xeb944d['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x28b5af,_0x2573ab){return function(_0xcdca48){if(!_0xcdca48){_0x28b5af['sendStatus'](0x194);}return _0xcdca48;};}function handleError(_0x445cf5,_0x5e45e8){_0x5e45e8=_0x5e45e8||0x1f4;return function(_0x5de4fa){logger[_0x8a05('0x29')](_0x5de4fa['stack']);if(_0x5de4fa[_0x8a05('0x2a')]){delete _0x5de4fa[_0x8a05('0x2a')];}_0x445cf5['status'](_0x5e45e8)[_0x8a05('0x2b')](_0x5de4fa);};}exports[_0x8a05('0x2c')]=function(_0x4fa9fc,_0x59a500){var _0xfb2be1={},_0x5111df={},_0x28fd55={'count':0x0,'rows':[]};var _0x44f967=_[_0x8a05('0x2d')](db[_0x8a05('0x2e')]['rawAttributes'],function(_0x404e99){return{'name':_0x404e99['fieldName'],'type':_0x404e99[_0x8a05('0x2f')]['key']};});_0x5111df[_0x8a05('0x30')]=_[_0x8a05('0x2d')](_0x44f967,_0x8a05('0x2a'));_0x5111df[_0x8a05('0x31')]=_[_0x8a05('0x32')](_0x4fa9fc[_0x8a05('0x31')]);_0x5111df['filters']=_['intersection'](_0x5111df[_0x8a05('0x30')],_0x5111df[_0x8a05('0x31')]);_0xfb2be1[_0x8a05('0x33')]=_['intersection'](_0x5111df[_0x8a05('0x30')],qs['fields'](_0x4fa9fc[_0x8a05('0x31')][_0x8a05('0x34')]));_0xfb2be1['attributes']=_0xfb2be1['attributes'][_0x8a05('0x35')]?_0xfb2be1[_0x8a05('0x33')]:_0x5111df[_0x8a05('0x30')];if(!_0x4fa9fc[_0x8a05('0x31')][_0x8a05('0x36')](_0x8a05('0x37'))){_0xfb2be1[_0x8a05('0x1e')]=qs['limit'](_0x4fa9fc[_0x8a05('0x31')][_0x8a05('0x1e')]);_0xfb2be1[_0x8a05('0x1c')]=qs[_0x8a05('0x1c')](_0x4fa9fc['query']['offset']);}_0xfb2be1[_0x8a05('0x38')]=qs[_0x8a05('0x39')](_0x4fa9fc[_0x8a05('0x31')]['sort']);_0xfb2be1['where']=qs[_0x8a05('0x3a')](_[_0x8a05('0x3b')](_0x4fa9fc['query'],_0x5111df[_0x8a05('0x3a')]),_0x44f967);if(_0x4fa9fc[_0x8a05('0x31')][_0x8a05('0x3c')]){_0xfb2be1[_0x8a05('0x3d')]=_['merge'](_0xfb2be1[_0x8a05('0x3d')],{'$or':_[_0x8a05('0x2d')](_0x44f967,function(_0x5a1a30){if(_0x5a1a30[_0x8a05('0x2f')]!==_0x8a05('0x3e')){var _0x3c00ab={};_0x3c00ab[_0x5a1a30[_0x8a05('0x2a')]]={'$like':'%'+_0x4fa9fc[_0x8a05('0x31')][_0x8a05('0x3c')]+'%'};return _0x3c00ab;}})});}_0xfb2be1=_[_0x8a05('0x3f')]({},_0xfb2be1,_0x4fa9fc[_0x8a05('0x40')]);var _0x36f57e={'where':_0xfb2be1['where']};return db['SquareOdbc'][_0x8a05('0x1f')](_0x36f57e)[_0x8a05('0x26')](function(_0x411ac3){_0x28fd55[_0x8a05('0x1f')]=_0x411ac3;if(_0x4fa9fc['query']['includeAll']){_0xfb2be1[_0x8a05('0x41')]=[{'all':!![]}];}return db[_0x8a05('0x2e')][_0x8a05('0x42')](_0xfb2be1);})[_0x8a05('0x26')](function(_0x720696){_0x28fd55[_0x8a05('0x43')]=_0x720696;return _0x28fd55;})[_0x8a05('0x26')](respondWithFilteredResult(_0x59a500,_0xfb2be1))[_0x8a05('0x44')](handleError(_0x59a500,null));};exports['show']=function(_0x2dc3f0,_0x459fdf){var _0x4d34a8={'raw':!![],'where':{'id':_0x2dc3f0[_0x8a05('0x45')]['id']}},_0x1727e1={};_0x1727e1[_0x8a05('0x30')]=_['keys'](db[_0x8a05('0x2e')][_0x8a05('0x46')]);_0x1727e1[_0x8a05('0x31')]=_[_0x8a05('0x32')](_0x2dc3f0[_0x8a05('0x31')]);_0x1727e1[_0x8a05('0x3a')]=_['intersection'](_0x1727e1['model'],_0x1727e1[_0x8a05('0x31')]);_0x4d34a8[_0x8a05('0x33')]=_[_0x8a05('0x47')](_0x1727e1[_0x8a05('0x30')],qs[_0x8a05('0x34')](_0x2dc3f0[_0x8a05('0x31')]['fields']));_0x4d34a8[_0x8a05('0x33')]=_0x4d34a8['attributes'][_0x8a05('0x35')]?_0x4d34a8['attributes']:_0x1727e1['model'];if(_0x2dc3f0[_0x8a05('0x31')][_0x8a05('0x48')]){_0x4d34a8['include']=[{'all':!![]}];}_0x4d34a8=_['merge']({},_0x4d34a8,_0x2dc3f0[_0x8a05('0x40')]);return db[_0x8a05('0x2e')][_0x8a05('0x49')](_0x4d34a8)['then'](handleEntityNotFound(_0x459fdf,null))[_0x8a05('0x26')](respondWithResult(_0x459fdf,null))[_0x8a05('0x44')](handleError(_0x459fdf,null));};exports['create']=function(_0x209c31,_0x224cfd){return db[_0x8a05('0x2e')]['create'](_0x209c31[_0x8a05('0x4a')],{})[_0x8a05('0x26')](function(_0x579946){var _0x4c1651=_0x209c31[_0x8a05('0x4b')][_0x8a05('0x27')]({'plain':!![]});if(!_0x4c1651)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x4c1651[_0x8a05('0x4c')]===_0x8a05('0x4b')){var _0x3fec88=_0x579946[_0x8a05('0x27')]({'plain':!![]});var _0x4b4278=_0x8a05('0x28');return db[_0x8a05('0x4d')]['find']({'where':{'name':_0x4b4278,'userProfileId':_0x4c1651['userProfileId']},'raw':!![]})[_0x8a05('0x26')](function(_0x475d42){if(_0x475d42&&_0x475d42[_0x8a05('0x4e')]===0x0){return db['UserProfileResource']['create']({'name':_0x3fec88['name'],'resourceId':_0x3fec88['id'],'type':_0x475d42[_0x8a05('0x2a')],'sectionId':_0x475d42['id']},{})['then'](function(){return _0x579946;});}else{return _0x579946;}})[_0x8a05('0x44')](function(_0x3acba2){logger['error'](_0x8a05('0x4f'),_0x3acba2);throw _0x3acba2;});}return _0x579946;})[_0x8a05('0x26')](respondWithResult(_0x224cfd,0xc9))['catch'](handleError(_0x224cfd,null));};exports['update']=function(_0x599750,_0x5b72bf){if(_0x599750[_0x8a05('0x4a')]['id']){delete _0x599750['body']['id'];}return db[_0x8a05('0x2e')]['find']({'where':{'id':_0x599750[_0x8a05('0x45')]['id']}})[_0x8a05('0x26')](handleEntityNotFound(_0x5b72bf,null))[_0x8a05('0x26')](saveUpdates(_0x599750[_0x8a05('0x4a')],null))['then'](respondWithResult(_0x5b72bf,null))[_0x8a05('0x44')](handleError(_0x5b72bf,null));};exports[_0x8a05('0x25')]=function(_0x36444a,_0x5b00b5){return db['SquareOdbc'][_0x8a05('0x49')]({'where':{'id':_0x36444a['params']['id']}})['then'](handleEntityNotFound(_0x5b00b5,null))['then'](removeEntity(_0x5b00b5,null))[_0x8a05('0x44')](handleError(_0x5b00b5,null));};exports[_0x8a05('0x50')]=function(_0xbe7523,_0x1a3b45,_0x5b1920){var _0x55cb37;return db['SquareOdbc']['find']({'where':{'id':_0xbe7523[_0x8a05('0x45')]['id']},'attributes':['id',_0x8a05('0x51')]})[_0x8a05('0x26')](handleEntityNotFound(_0x1a3b45,null))[_0x8a05('0x26')](function(_0x7ed79a){if(_0x7ed79a){var _0xd81803=require(_0x8a05('0x52'))();_0xd81803[_0x8a05('0x53')](_0x7ed79a['dsn']);_0xd81803[_0x8a05('0x54')]();return _0x7ed79a;}})[_0x8a05('0x26')](respondWithResult(_0x1a3b45,null))[_0x8a05('0x44')](handleError(_0x1a3b45,null));};