6d1ecb60ee01d7715595c5d699c0c0fc2bf18cb3
[motion2.git] / server / api / intSugarcrmConfiguration / intSugarcrmConfiguration.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 _0x8e27=['mustache','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','Content-Range','json','save','update','then','destroy','error','stack','name','send','index','map','SugarcrmConfiguration','rawAttributes','fieldName','type','query','keys','filters','attributes','intersection','model','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','VIRTUAL','filter','options','includeAll','findAll','rows','catch','show','params','merge','find','create','body','getFields','findOne','SugarcrmField','getSubjects','getDescriptions','rimraf','zip-dir','fast-json-patch','request-promise','bluebird'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x8e27,0x17c));var _0x78e2=function(_0x3b2421,_0xf30f91){_0x3b2421=_0x3b2421-0x0;var _0x288bde=_0x8e27[_0x3b2421];return _0x288bde;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x78e2('0x0'));var zipdir=require(_0x78e2('0x1'));var jsonpatch=require(_0x78e2('0x2'));var rp=require(_0x78e2('0x3'));var moment=require('moment');var BPromise=require(_0x78e2('0x4'));var Mustache=require(_0x78e2('0x5'));var util=require('util');var path=require('path');var sox=require(_0x78e2('0x6'));var csv=require(_0x78e2('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x78e2('0x8'));var _=require(_0x78e2('0x9'));var squel=require(_0x78e2('0xa'));var crypto=require(_0x78e2('0xb'));var jsforce=require(_0x78e2('0xc'));var deskjs=require(_0x78e2('0xd'));var toCsv=require(_0x78e2('0x7'));var querystring=require('querystring');var Papa=require(_0x78e2('0xe'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x78e2('0xf'));var logger=require(_0x78e2('0x10'))(_0x78e2('0x11'));var utils=require(_0x78e2('0x12'));var config=require(_0x78e2('0x13'));var licenseUtil=require(_0x78e2('0x14'));var db=require(_0x78e2('0x15'))['db'];function respondWithStatusCode(_0x3d8a2a,_0x3bb226){_0x3bb226=_0x3bb226||0xcc;return function(_0x222641){if(_0x222641){return _0x3d8a2a[_0x78e2('0x16')](_0x3bb226);}return _0x3d8a2a[_0x78e2('0x17')](_0x3bb226)[_0x78e2('0x18')]();};}function respondWithResult(_0x59a472,_0x2b7a49){_0x2b7a49=_0x2b7a49||0xc8;return function(_0x2f2fdf){if(_0x2f2fdf){return _0x59a472[_0x78e2('0x17')](_0x2b7a49)['json'](_0x2f2fdf);}};}function respondWithFilteredResult(_0x24b6cb,_0x591ce3){return function(_0x2716c3){if(_0x2716c3){var _0x411b14=typeof _0x591ce3[_0x78e2('0x19')]===_0x78e2('0x1a')&&typeof _0x591ce3[_0x78e2('0x1b')]===_0x78e2('0x1a');var _0x3285ff=_0x2716c3['count'];var _0x446a26=_0x411b14?0x0:_0x591ce3[_0x78e2('0x19')];var _0xeb96bd=_0x411b14?_0x2716c3[_0x78e2('0x1c')]:_0x591ce3[_0x78e2('0x19')]+_0x591ce3['limit'];var _0x5dd379;if(_0xeb96bd>=_0x3285ff){_0xeb96bd=_0x3285ff;_0x5dd379=0xc8;}else{_0x5dd379=0xce;}_0x24b6cb[_0x78e2('0x17')](_0x5dd379);return _0x24b6cb['set'](_0x78e2('0x1d'),_0x446a26+'-'+_0xeb96bd+'/'+_0x3285ff)[_0x78e2('0x1e')](_0x2716c3);}return null;};}function patchUpdates(_0x20e225){return function(_0x464eb8){try{jsonpatch['apply'](_0x464eb8,_0x20e225,!![]);}catch(_0x4fe00b){return BPromise['reject'](_0x4fe00b);}return _0x464eb8[_0x78e2('0x1f')]();};}function saveUpdates(_0x224715,_0x20e910){return function(_0x5f385a){if(_0x5f385a){return _0x5f385a[_0x78e2('0x20')](_0x224715)[_0x78e2('0x21')](function(_0x2c40c0){return _0x2c40c0;});}return null;};}function removeEntity(_0x2358b1,_0x472b9e){return function(_0x40fd6e){if(_0x40fd6e){return _0x40fd6e[_0x78e2('0x22')]()['then'](function(){_0x2358b1[_0x78e2('0x17')](0xcc)[_0x78e2('0x18')]();});}};}function handleEntityNotFound(_0x9d5088,_0x4dfb3d){return function(_0x440c49){if(!_0x440c49){_0x9d5088[_0x78e2('0x16')](0x194);}return _0x440c49;};}function handleError(_0x1d9124,_0x5e0b0c){_0x5e0b0c=_0x5e0b0c||0x1f4;return function(_0x4a084e){logger[_0x78e2('0x23')](_0x4a084e[_0x78e2('0x24')]);if(_0x4a084e[_0x78e2('0x25')]){delete _0x4a084e[_0x78e2('0x25')];}_0x1d9124[_0x78e2('0x17')](_0x5e0b0c)[_0x78e2('0x26')](_0x4a084e);};}exports[_0x78e2('0x27')]=function(_0x9a9422,_0x72564c){var _0x532ae1={},_0x4adcd5={},_0x50e0b2={'count':0x0,'rows':[]};var _0x43f2e9=_[_0x78e2('0x28')](db[_0x78e2('0x29')][_0x78e2('0x2a')],function(_0x591f6d){return{'name':_0x591f6d[_0x78e2('0x2b')],'type':_0x591f6d[_0x78e2('0x2c')]['key']};});_0x4adcd5['model']=_['map'](_0x43f2e9,_0x78e2('0x25'));_0x4adcd5[_0x78e2('0x2d')]=_[_0x78e2('0x2e')](_0x9a9422[_0x78e2('0x2d')]);_0x4adcd5[_0x78e2('0x2f')]=_['intersection'](_0x4adcd5['model'],_0x4adcd5[_0x78e2('0x2d')]);_0x532ae1[_0x78e2('0x30')]=_[_0x78e2('0x31')](_0x4adcd5[_0x78e2('0x32')],qs[_0x78e2('0x33')](_0x9a9422[_0x78e2('0x2d')][_0x78e2('0x33')]));_0x532ae1[_0x78e2('0x30')]=_0x532ae1[_0x78e2('0x30')][_0x78e2('0x34')]?_0x532ae1[_0x78e2('0x30')]:_0x4adcd5['model'];if(!_0x9a9422[_0x78e2('0x2d')][_0x78e2('0x35')](_0x78e2('0x36'))){_0x532ae1['limit']=qs['limit'](_0x9a9422[_0x78e2('0x2d')][_0x78e2('0x1b')]);_0x532ae1['offset']=qs['offset'](_0x9a9422[_0x78e2('0x2d')][_0x78e2('0x19')]);}_0x532ae1[_0x78e2('0x37')]=qs['sort'](_0x9a9422[_0x78e2('0x2d')][_0x78e2('0x38')]);_0x532ae1[_0x78e2('0x39')]=qs[_0x78e2('0x2f')](_[_0x78e2('0x3a')](_0x9a9422['query'],_0x4adcd5[_0x78e2('0x2f')]),_0x43f2e9);if(_0x9a9422[_0x78e2('0x2d')]['filter']){_0x532ae1[_0x78e2('0x39')]=_['merge'](_0x532ae1[_0x78e2('0x39')],{'$or':_[_0x78e2('0x28')](_0x43f2e9,function(_0x1795d0){if(_0x1795d0[_0x78e2('0x2c')]!==_0x78e2('0x3b')){var _0x4d7b0e={};_0x4d7b0e[_0x1795d0[_0x78e2('0x25')]]={'$like':'%'+_0x9a9422['query'][_0x78e2('0x3c')]+'%'};return _0x4d7b0e;}})});}_0x532ae1=_['merge']({},_0x532ae1,_0x9a9422[_0x78e2('0x3d')]);var _0xea2962={'where':_0x532ae1[_0x78e2('0x39')]};return db['SugarcrmConfiguration'][_0x78e2('0x1c')](_0xea2962)['then'](function(_0x221163){_0x50e0b2['count']=_0x221163;if(_0x9a9422[_0x78e2('0x2d')][_0x78e2('0x3e')]){_0x532ae1['include']=[{'all':!![]}];}return db[_0x78e2('0x29')][_0x78e2('0x3f')](_0x532ae1);})[_0x78e2('0x21')](function(_0x375e1e){_0x50e0b2[_0x78e2('0x40')]=_0x375e1e;return _0x50e0b2;})[_0x78e2('0x21')](respondWithFilteredResult(_0x72564c,_0x532ae1))[_0x78e2('0x41')](handleError(_0x72564c,null));};exports[_0x78e2('0x42')]=function(_0x2645f5,_0x5f1589){var _0x30f657={'raw':![],'where':{'id':_0x2645f5[_0x78e2('0x43')]['id']}},_0x19af10={};_0x19af10[_0x78e2('0x32')]=_[_0x78e2('0x2e')](db[_0x78e2('0x29')][_0x78e2('0x2a')]);_0x19af10[_0x78e2('0x2d')]=_[_0x78e2('0x2e')](_0x2645f5[_0x78e2('0x2d')]);_0x19af10[_0x78e2('0x2f')]=_[_0x78e2('0x31')](_0x19af10[_0x78e2('0x32')],_0x19af10[_0x78e2('0x2d')]);_0x30f657[_0x78e2('0x30')]=_[_0x78e2('0x31')](_0x19af10['model'],qs[_0x78e2('0x33')](_0x2645f5[_0x78e2('0x2d')]['fields']));_0x30f657[_0x78e2('0x30')]=_0x30f657[_0x78e2('0x30')][_0x78e2('0x34')]?_0x30f657[_0x78e2('0x30')]:_0x19af10['model'];if(_0x2645f5[_0x78e2('0x2d')][_0x78e2('0x3e')]){_0x30f657['include']=[{'all':!![]}];}_0x30f657=_[_0x78e2('0x44')]({},_0x30f657,_0x2645f5[_0x78e2('0x3d')]);return db[_0x78e2('0x29')][_0x78e2('0x45')](_0x30f657)['then'](handleEntityNotFound(_0x5f1589,null))[_0x78e2('0x21')](respondWithResult(_0x5f1589,null))[_0x78e2('0x41')](handleError(_0x5f1589,null));};exports[_0x78e2('0x46')]=function(_0x215633,_0x3818ac){return db[_0x78e2('0x29')][_0x78e2('0x46')](_0x215633[_0x78e2('0x47')],{})[_0x78e2('0x21')](respondWithResult(_0x3818ac,0xc9))[_0x78e2('0x41')](handleError(_0x3818ac,null));};exports[_0x78e2('0x20')]=function(_0xce2c4c,_0x214ddb){if(_0xce2c4c[_0x78e2('0x47')]['id']){delete _0xce2c4c[_0x78e2('0x47')]['id'];}return db[_0x78e2('0x29')][_0x78e2('0x45')]({'where':{'id':_0xce2c4c['params']['id']}})[_0x78e2('0x21')](handleEntityNotFound(_0x214ddb,null))[_0x78e2('0x21')](saveUpdates(_0xce2c4c[_0x78e2('0x47')],null))[_0x78e2('0x21')](respondWithResult(_0x214ddb,null))[_0x78e2('0x41')](handleError(_0x214ddb,null));};exports[_0x78e2('0x22')]=function(_0x4060c4,_0x422af2){return db[_0x78e2('0x29')][_0x78e2('0x45')]({'where':{'id':_0x4060c4[_0x78e2('0x43')]['id']}})[_0x78e2('0x21')](handleEntityNotFound(_0x422af2,null))[_0x78e2('0x21')](removeEntity(_0x422af2,null))['catch'](handleError(_0x422af2,null));};exports[_0x78e2('0x48')]=function(_0x190be2,_0x557a97,_0x379f28){var _0x4ed11e={};var _0x311c1c={};var _0x51066e;var _0x3562a2;return db[_0x78e2('0x29')][_0x78e2('0x49')]({'where':{'id':_0x190be2[_0x78e2('0x43')]['id']}})[_0x78e2('0x21')](handleEntityNotFound(_0x557a97,null))[_0x78e2('0x21')](function(_0x189c57){if(_0x189c57){_0x51066e=_0x189c57;_0x311c1c[_0x78e2('0x32')]=_[_0x78e2('0x2e')](db[_0x78e2('0x4a')][_0x78e2('0x2a')]);_0x311c1c['query']=_[_0x78e2('0x2e')](_0x190be2['query']);_0x311c1c['filters']=_[_0x78e2('0x31')](_0x311c1c[_0x78e2('0x32')],_0x311c1c['query']);_0x4ed11e[_0x78e2('0x30')]=_['intersection'](_0x311c1c[_0x78e2('0x32')],qs[_0x78e2('0x33')](_0x190be2[_0x78e2('0x2d')][_0x78e2('0x33')]));_0x4ed11e['attributes']=_0x4ed11e[_0x78e2('0x30')][_0x78e2('0x34')]?_0x4ed11e[_0x78e2('0x30')]:_0x311c1c[_0x78e2('0x32')];_0x4ed11e[_0x78e2('0x37')]=qs[_0x78e2('0x38')](_0x190be2[_0x78e2('0x2d')]['sort']);_0x4ed11e['where']=qs[_0x78e2('0x2f')](_[_0x78e2('0x3a')](_0x190be2['query'],_0x311c1c['filters']));if(_0x190be2['query'][_0x78e2('0x3c')]){_0x4ed11e[_0x78e2('0x39')]=_[_0x78e2('0x44')](_0x4ed11e[_0x78e2('0x39')],{'$or':_[_0x78e2('0x28')](_0x4ed11e[_0x78e2('0x30')],function(_0x5591e4){var _0x51a5ca={};_0x51a5ca[_0x5591e4]={'$like':'%'+_0x190be2[_0x78e2('0x2d')][_0x78e2('0x3c')]+'%'};return _0x51a5ca;})});}_0x4ed11e=_['merge']({},_0x4ed11e,_0x190be2[_0x78e2('0x3d')]);return _0x51066e[_0x78e2('0x48')](_0x4ed11e);}})[_0x78e2('0x21')](function(_0x58cac8){if(_0x58cac8){_0x3562a2=_0x58cac8[_0x78e2('0x34')];if(!_0x190be2[_0x78e2('0x2d')][_0x78e2('0x35')]('nolimit')){_0x4ed11e[_0x78e2('0x1b')]=qs[_0x78e2('0x1b')](_0x190be2['query'][_0x78e2('0x1b')]);_0x4ed11e[_0x78e2('0x19')]=qs['offset'](_0x190be2[_0x78e2('0x2d')][_0x78e2('0x19')]);}return _0x51066e['getFields'](_0x4ed11e);}})[_0x78e2('0x21')](function(_0x54531c){if(_0x54531c){return _0x54531c?{'count':_0x3562a2,'rows':_0x54531c}:null;}})['then'](respondWithResult(_0x557a97,null))['catch'](handleError(_0x557a97,null));};exports['getSubjects']=function(_0x240381,_0x11a3fb,_0x14e1ef){var _0x4c40c8={};var _0x2404a8={};var _0x266911;var _0xb36190;return db[_0x78e2('0x29')][_0x78e2('0x49')]({'where':{'id':_0x240381[_0x78e2('0x43')]['id']}})[_0x78e2('0x21')](handleEntityNotFound(_0x11a3fb,null))[_0x78e2('0x21')](function(_0x9e3266){if(_0x9e3266){_0x266911=_0x9e3266;_0x2404a8[_0x78e2('0x32')]=_[_0x78e2('0x2e')](db[_0x78e2('0x4a')][_0x78e2('0x2a')]);_0x2404a8['query']=_[_0x78e2('0x2e')](_0x240381[_0x78e2('0x2d')]);_0x2404a8[_0x78e2('0x2f')]=_[_0x78e2('0x31')](_0x2404a8[_0x78e2('0x32')],_0x2404a8[_0x78e2('0x2d')]);_0x4c40c8['attributes']=_[_0x78e2('0x31')](_0x2404a8[_0x78e2('0x32')],qs[_0x78e2('0x33')](_0x240381[_0x78e2('0x2d')][_0x78e2('0x33')]));_0x4c40c8[_0x78e2('0x30')]=_0x4c40c8[_0x78e2('0x30')][_0x78e2('0x34')]?_0x4c40c8[_0x78e2('0x30')]:_0x2404a8[_0x78e2('0x32')];_0x4c40c8[_0x78e2('0x37')]=qs[_0x78e2('0x38')](_0x240381[_0x78e2('0x2d')][_0x78e2('0x38')]);_0x4c40c8[_0x78e2('0x39')]=qs['filters'](_[_0x78e2('0x3a')](_0x240381[_0x78e2('0x2d')],_0x2404a8[_0x78e2('0x2f')]));if(_0x240381[_0x78e2('0x2d')][_0x78e2('0x3c')]){_0x4c40c8[_0x78e2('0x39')]=_[_0x78e2('0x44')](_0x4c40c8[_0x78e2('0x39')],{'$or':_[_0x78e2('0x28')](_0x4c40c8[_0x78e2('0x30')],function(_0x44212f){var _0x547a57={};_0x547a57[_0x44212f]={'$like':'%'+_0x240381[_0x78e2('0x2d')]['filter']+'%'};return _0x547a57;})});}_0x4c40c8=_[_0x78e2('0x44')]({},_0x4c40c8,_0x240381[_0x78e2('0x3d')]);return _0x266911[_0x78e2('0x4b')](_0x4c40c8);}})[_0x78e2('0x21')](function(_0x432624){if(_0x432624){_0xb36190=_0x432624[_0x78e2('0x34')];if(!_0x240381['query']['hasOwnProperty']('nolimit')){_0x4c40c8['limit']=qs[_0x78e2('0x1b')](_0x240381[_0x78e2('0x2d')]['limit']);_0x4c40c8[_0x78e2('0x19')]=qs['offset'](_0x240381[_0x78e2('0x2d')][_0x78e2('0x19')]);}return _0x266911['getSubjects'](_0x4c40c8);}})[_0x78e2('0x21')](function(_0x4a3b4f){if(_0x4a3b4f){return _0x4a3b4f?{'count':_0xb36190,'rows':_0x4a3b4f}:null;}})['then'](respondWithResult(_0x11a3fb,null))[_0x78e2('0x41')](handleError(_0x11a3fb,null));};exports[_0x78e2('0x4c')]=function(_0x4c48ef,_0x39da2c,_0x3c261c){var _0x13f7e8={};var _0x39f79f={};var _0x2d586c;var _0x33acb4;return db['SugarcrmConfiguration'][_0x78e2('0x49')]({'where':{'id':_0x4c48ef['params']['id']}})['then'](handleEntityNotFound(_0x39da2c,null))[_0x78e2('0x21')](function(_0x2471b1){if(_0x2471b1){_0x2d586c=_0x2471b1;_0x39f79f[_0x78e2('0x32')]=_[_0x78e2('0x2e')](db['SugarcrmField'][_0x78e2('0x2a')]);_0x39f79f['query']=_[_0x78e2('0x2e')](_0x4c48ef['query']);_0x39f79f[_0x78e2('0x2f')]=_['intersection'](_0x39f79f['model'],_0x39f79f[_0x78e2('0x2d')]);_0x13f7e8[_0x78e2('0x30')]=_[_0x78e2('0x31')](_0x39f79f['model'],qs[_0x78e2('0x33')](_0x4c48ef['query'][_0x78e2('0x33')]));_0x13f7e8[_0x78e2('0x30')]=_0x13f7e8[_0x78e2('0x30')][_0x78e2('0x34')]?_0x13f7e8[_0x78e2('0x30')]:_0x39f79f['model'];_0x13f7e8['order']=qs[_0x78e2('0x38')](_0x4c48ef[_0x78e2('0x2d')][_0x78e2('0x38')]);_0x13f7e8[_0x78e2('0x39')]=qs[_0x78e2('0x2f')](_[_0x78e2('0x3a')](_0x4c48ef['query'],_0x39f79f['filters']));if(_0x4c48ef[_0x78e2('0x2d')]['filter']){_0x13f7e8[_0x78e2('0x39')]=_[_0x78e2('0x44')](_0x13f7e8[_0x78e2('0x39')],{'$or':_[_0x78e2('0x28')](_0x13f7e8[_0x78e2('0x30')],function(_0x54470b){var _0x5a26d1={};_0x5a26d1[_0x54470b]={'$like':'%'+_0x4c48ef[_0x78e2('0x2d')][_0x78e2('0x3c')]+'%'};return _0x5a26d1;})});}_0x13f7e8=_[_0x78e2('0x44')]({},_0x13f7e8,_0x4c48ef['options']);return _0x2d586c['getDescriptions'](_0x13f7e8);}})[_0x78e2('0x21')](function(_0x445b07){if(_0x445b07){_0x33acb4=_0x445b07[_0x78e2('0x34')];if(!_0x4c48ef[_0x78e2('0x2d')][_0x78e2('0x35')](_0x78e2('0x36'))){_0x13f7e8['limit']=qs[_0x78e2('0x1b')](_0x4c48ef[_0x78e2('0x2d')][_0x78e2('0x1b')]);_0x13f7e8[_0x78e2('0x19')]=qs['offset'](_0x4c48ef[_0x78e2('0x2d')][_0x78e2('0x19')]);}return _0x2d586c[_0x78e2('0x4c')](_0x13f7e8);}})[_0x78e2('0x21')](function(_0x7cbc29){if(_0x7cbc29){return _0x7cbc29?{'count':_0x33acb4,'rows':_0x7cbc29}:null;}})[_0x78e2('0x21')](respondWithResult(_0x39da2c,null))[_0x78e2('0x41')](handleError(_0x39da2c,null));};