0ccba607c3b781fb2d530877c8af89a089647600
[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 _0x03b8=['limit','order','sort','pick','filter','merge','where','VIRTUAL','options','includeAll','findAll','rows','catch','show','params','length','include','find','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','create','test','dsn','openSync','closeSync','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','../../config/environment','../../mysqldb','status','end','json','count','offset','set','Content-Range','apply','reject','save','update','then','destroy','get','ODBC','UserProfileResource','sendStatus','error','name','send','map','SquareOdbc','rawAttributes','fieldName','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty'];(function(_0x2ddf0d,_0x24569f){var _0x5bd7d6=function(_0x27d2ee){while(--_0x27d2ee){_0x2ddf0d['push'](_0x2ddf0d['shift']());}};_0x5bd7d6(++_0x24569f);}(_0x03b8,0xbb));var _0x803b=function(_0x6c1312,_0x4a6a7a){_0x6c1312=_0x6c1312-0x0;var _0x1f986c=_0x03b8[_0x6c1312];return _0x1f986c;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0x803b('0x0'));var zipdir=require(_0x803b('0x1'));var jsonpatch=require(_0x803b('0x2'));var rp=require(_0x803b('0x3'));var moment=require(_0x803b('0x4'));var BPromise=require(_0x803b('0x5'));var Mustache=require(_0x803b('0x6'));var util=require('util');var path=require(_0x803b('0x7'));var sox=require(_0x803b('0x8'));var csv=require(_0x803b('0x9'));var ejs=require(_0x803b('0xa'));var fs=require('fs');var _=require(_0x803b('0xb'));var squel=require(_0x803b('0xc'));var crypto=require(_0x803b('0xd'));var jsforce=require(_0x803b('0xe'));var deskjs=require(_0x803b('0xf'));var toCsv=require(_0x803b('0x9'));var querystring=require(_0x803b('0x10'));var Papa=require(_0x803b('0x11'));var Redis=require(_0x803b('0x12'));var authService=require(_0x803b('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0x803b('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x803b('0x15'))('api');var utils=require('../../config/utils');var config=require(_0x803b('0x16'));var db=require(_0x803b('0x17'))['db'];function respondWithStatusCode(_0x3a76b8,_0x2fdad8){_0x2fdad8=_0x2fdad8||0xcc;return function(_0x4bee45){if(_0x4bee45){return _0x3a76b8['sendStatus'](_0x2fdad8);}return _0x3a76b8[_0x803b('0x18')](_0x2fdad8)[_0x803b('0x19')]();};}function respondWithResult(_0x104bca,_0xf13e4f){_0xf13e4f=_0xf13e4f||0xc8;return function(_0x4f92f5){if(_0x4f92f5){return _0x104bca[_0x803b('0x18')](_0xf13e4f)[_0x803b('0x1a')](_0x4f92f5);}};}function respondWithFilteredResult(_0x1447a9,_0x142e79){return function(_0x247145){if(_0x247145){var _0x11e39f=_0x247145[_0x803b('0x1b')],_0x5e6010=_0x142e79[_0x803b('0x1c')],_0x48caf2=_0x142e79[_0x803b('0x1c')]+_0x142e79['limit'],_0x4c0412;if(_0x48caf2>=_0x11e39f){_0x48caf2=_0x11e39f;_0x4c0412=0xc8;}else{_0x4c0412=0xce;}_0x1447a9[_0x803b('0x18')](_0x4c0412);return _0x1447a9[_0x803b('0x1d')](_0x803b('0x1e'),_0x5e6010+'-'+_0x48caf2+'/'+_0x11e39f)[_0x803b('0x1a')](_0x247145);}return null;};}function patchUpdates(_0x204275){return function(_0x3d300b){try{jsonpatch[_0x803b('0x1f')](_0x3d300b,_0x204275,!![]);}catch(_0x2c5460){return BPromise[_0x803b('0x20')](_0x2c5460);}return _0x3d300b[_0x803b('0x21')]();};}function saveUpdates(_0x4c3fb7,_0x4fb66f){return function(_0x51ae73){if(_0x51ae73){return _0x51ae73[_0x803b('0x22')](_0x4c3fb7)[_0x803b('0x23')](function(_0x3220cd){return _0x3220cd;});}return null;};}function removeEntity(_0x28e0f5,_0x25510f){return function(_0x541af1){if(_0x541af1){return _0x541af1[_0x803b('0x24')]()[_0x803b('0x23')](function(){var _0x405204=_0x541af1[_0x803b('0x25')]({'plain':!![]});var _0xa5f326=_0x803b('0x26');return db[_0x803b('0x27')]['destroy']({'where':{'type':_0xa5f326,'resourceId':_0x405204['id']}})[_0x803b('0x23')](function(){return _0x541af1;});})[_0x803b('0x23')](function(){_0x28e0f5['status'](0xcc)[_0x803b('0x19')]();});}};}function handleEntityNotFound(_0x34c9bf,_0x10b0e7){return function(_0x285845){if(!_0x285845){_0x34c9bf[_0x803b('0x28')](0x194);}return _0x285845;};}function handleError(_0x1295e1,_0xfc1f40){_0xfc1f40=_0xfc1f40||0x1f4;return function(_0x119b4b){logger[_0x803b('0x29')](_0x119b4b['stack']);if(_0x119b4b['name']){delete _0x119b4b[_0x803b('0x2a')];}_0x1295e1[_0x803b('0x18')](_0xfc1f40)[_0x803b('0x2b')](_0x119b4b);};}exports['index']=function(_0x472d7f,_0xdcb99a){var _0x213aff={},_0x149a84={},_0x5c9a1a={'count':0x0,'rows':[]};var _0x469045=_[_0x803b('0x2c')](db[_0x803b('0x2d')][_0x803b('0x2e')],function(_0x33b455){return{'name':_0x33b455[_0x803b('0x2f')],'type':_0x33b455['type']['key']};});_0x149a84[_0x803b('0x30')]=_[_0x803b('0x2c')](_0x469045,'name');_0x149a84[_0x803b('0x31')]=_[_0x803b('0x32')](_0x472d7f['query']);_0x149a84[_0x803b('0x33')]=_[_0x803b('0x34')](_0x149a84[_0x803b('0x30')],_0x149a84[_0x803b('0x31')]);_0x213aff[_0x803b('0x35')]=_[_0x803b('0x34')](_0x149a84['model'],qs[_0x803b('0x36')](_0x472d7f[_0x803b('0x31')][_0x803b('0x36')]));_0x213aff[_0x803b('0x35')]=_0x213aff['attributes']['length']?_0x213aff[_0x803b('0x35')]:_0x149a84['model'];if(!_0x472d7f['query'][_0x803b('0x37')]('nolimit')){_0x213aff['limit']=qs['limit'](_0x472d7f[_0x803b('0x31')][_0x803b('0x38')]);_0x213aff[_0x803b('0x1c')]=qs[_0x803b('0x1c')](_0x472d7f[_0x803b('0x31')][_0x803b('0x1c')]);}_0x213aff[_0x803b('0x39')]=qs[_0x803b('0x3a')](_0x472d7f['query'][_0x803b('0x3a')]);_0x213aff['where']=qs[_0x803b('0x33')](_[_0x803b('0x3b')](_0x472d7f['query'],_0x149a84['filters']),_0x469045);if(_0x472d7f['query'][_0x803b('0x3c')]){_0x213aff['where']=_[_0x803b('0x3d')](_0x213aff[_0x803b('0x3e')],{'$or':_['map'](_0x469045,function(_0x77454e){if(_0x77454e['type']!==_0x803b('0x3f')){var _0xd40c3b={};_0xd40c3b[_0x77454e['name']]={'$like':'%'+_0x472d7f['query'][_0x803b('0x3c')]+'%'};return _0xd40c3b;}})});}_0x213aff=_[_0x803b('0x3d')]({},_0x213aff,_0x472d7f[_0x803b('0x40')]);var _0xbf9722={'where':_0x213aff['where']};return db[_0x803b('0x2d')][_0x803b('0x1b')](_0xbf9722)[_0x803b('0x23')](function(_0x2b3ddb){_0x5c9a1a[_0x803b('0x1b')]=_0x2b3ddb;if(_0x472d7f[_0x803b('0x31')][_0x803b('0x41')]){_0x213aff['include']=[{'all':!![]}];}return db[_0x803b('0x2d')][_0x803b('0x42')](_0x213aff);})['then'](function(_0xf04980){_0x5c9a1a[_0x803b('0x43')]=_0xf04980;return _0x5c9a1a;})[_0x803b('0x23')](respondWithFilteredResult(_0xdcb99a,_0x213aff))[_0x803b('0x44')](handleError(_0xdcb99a,null));};exports[_0x803b('0x45')]=function(_0x810b2d,_0x56241a){var _0x5a16c6={'raw':!![],'where':{'id':_0x810b2d[_0x803b('0x46')]['id']}},_0x397462={};_0x397462[_0x803b('0x30')]=_[_0x803b('0x32')](db[_0x803b('0x2d')][_0x803b('0x2e')]);_0x397462[_0x803b('0x31')]=_[_0x803b('0x32')](_0x810b2d[_0x803b('0x31')]);_0x397462[_0x803b('0x33')]=_[_0x803b('0x34')](_0x397462[_0x803b('0x30')],_0x397462['query']);_0x5a16c6[_0x803b('0x35')]=_[_0x803b('0x34')](_0x397462[_0x803b('0x30')],qs[_0x803b('0x36')](_0x810b2d[_0x803b('0x31')][_0x803b('0x36')]));_0x5a16c6[_0x803b('0x35')]=_0x5a16c6['attributes'][_0x803b('0x47')]?_0x5a16c6[_0x803b('0x35')]:_0x397462['model'];if(_0x810b2d[_0x803b('0x31')]['includeAll']){_0x5a16c6[_0x803b('0x48')]=[{'all':!![]}];}_0x5a16c6=_['merge']({},_0x5a16c6,_0x810b2d['options']);return db[_0x803b('0x2d')][_0x803b('0x49')](_0x5a16c6)[_0x803b('0x23')](handleEntityNotFound(_0x56241a,null))['then'](respondWithResult(_0x56241a,null))[_0x803b('0x44')](handleError(_0x56241a,null));};exports['create']=function(_0x5a030f,_0x3d3764){return db[_0x803b('0x2d')]['create'](_0x5a030f[_0x803b('0x4a')],{})[_0x803b('0x23')](function(_0x21a394){var _0x1e502a=_0x5a030f['user'][_0x803b('0x25')]({'plain':!![]});if(!_0x1e502a)throw new Error(_0x803b('0x4b'));if(_0x1e502a['role']==='user'){var _0x4db835=_0x21a394['get']({'plain':!![]});var _0x30c942=_0x803b('0x26');return db['UserProfileSection']['find']({'where':{'name':_0x30c942,'userProfileId':_0x1e502a['userProfileId']},'raw':!![]})[_0x803b('0x23')](function(_0x48fe84){if(_0x48fe84&&_0x48fe84['autoAssociation']===0x0){return db[_0x803b('0x27')][_0x803b('0x4c')]({'name':_0x4db835[_0x803b('0x2a')],'resourceId':_0x4db835['id'],'type':_0x48fe84[_0x803b('0x2a')],'sectionId':_0x48fe84['id']},{})[_0x803b('0x23')](function(){return _0x21a394;});}else{return _0x21a394;}})['catch'](function(_0x519314){logger[_0x803b('0x29')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x519314);throw _0x519314;});}return _0x21a394;})[_0x803b('0x23')](respondWithResult(_0x3d3764,0xc9))['catch'](handleError(_0x3d3764,null));};exports[_0x803b('0x22')]=function(_0x460c02,_0x296f3c){if(_0x460c02['body']['id']){delete _0x460c02[_0x803b('0x4a')]['id'];}return db[_0x803b('0x2d')][_0x803b('0x49')]({'where':{'id':_0x460c02[_0x803b('0x46')]['id']}})['then'](handleEntityNotFound(_0x296f3c,null))[_0x803b('0x23')](saveUpdates(_0x460c02[_0x803b('0x4a')],null))[_0x803b('0x23')](respondWithResult(_0x296f3c,null))['catch'](handleError(_0x296f3c,null));};exports[_0x803b('0x24')]=function(_0x1725eb,_0x429ad7){return db['SquareOdbc'][_0x803b('0x49')]({'where':{'id':_0x1725eb[_0x803b('0x46')]['id']}})[_0x803b('0x23')](handleEntityNotFound(_0x429ad7,null))['then'](removeEntity(_0x429ad7,null))[_0x803b('0x44')](handleError(_0x429ad7,null));};exports[_0x803b('0x4d')]=function(_0xf22be4,_0x1cd98c,_0x597b2a){var _0x43a3a0;return db['SquareOdbc'][_0x803b('0x49')]({'where':{'id':_0xf22be4[_0x803b('0x46')]['id']},'attributes':['id',_0x803b('0x4e')]})['then'](handleEntityNotFound(_0x1cd98c,null))[_0x803b('0x23')](function(_0x7e9e8d){if(_0x7e9e8d){var _0x468f94=require('odbc')();_0x468f94[_0x803b('0x4f')](_0x7e9e8d[_0x803b('0x4e')]);_0x468f94[_0x803b('0x50')]();return _0x7e9e8d;}})['then'](respondWithResult(_0x1cd98c,null))[_0x803b('0x44')](handleError(_0x1cd98c,null));};