872104f175ccaaa25d47af3af157107ae102f6cd
[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 _0xf7f8=['update','then','end','sendStatus','error','stack','name','index','map','SugarcrmConfiguration','fieldName','type','key','model','keys','query','filters','attributes','fields','length','nolimit','order','where','pick','merge','filter','options','includeAll','rows','catch','show','params','rawAttributes','intersection','create','body','find','destroy','getFields','findOne','SugarcrmField','sort','hasOwnProperty','getSubjects','getDescriptions','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../mysqldb','status','json','undefined','limit','count','offset','set','apply','reject'];(function(_0xe1d065,_0x39ab64){var _0x481700=function(_0x34947a){while(--_0x34947a){_0xe1d065['push'](_0xe1d065['shift']());}};_0x481700(++_0x39ab64);}(_0xf7f8,0x114));var _0x8f7f=function(_0x185364,_0x91746b){_0x185364=_0x185364-0x0;var _0x58a641=_0xf7f8[_0x185364];return _0x58a641;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x8f7f('0x0'));var zipdir=require(_0x8f7f('0x1'));var jsonpatch=require(_0x8f7f('0x2'));var rp=require(_0x8f7f('0x3'));var moment=require('moment');var BPromise=require(_0x8f7f('0x4'));var Mustache=require(_0x8f7f('0x5'));var util=require(_0x8f7f('0x6'));var path=require(_0x8f7f('0x7'));var sox=require(_0x8f7f('0x8'));var csv=require(_0x8f7f('0x9'));var ejs=require(_0x8f7f('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x8f7f('0xb'));var squel=require(_0x8f7f('0xc'));var crypto=require('crypto');var jsforce=require(_0x8f7f('0xd'));var deskjs=require(_0x8f7f('0xe'));var toCsv=require(_0x8f7f('0x9'));var querystring=require(_0x8f7f('0xf'));var Papa=require(_0x8f7f('0x10'));var Redis=require(_0x8f7f('0x11'));var authService=require(_0x8f7f('0x12'));var qs=require(_0x8f7f('0x13'));var as=require(_0x8f7f('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x8f7f('0x15'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x8f7f('0x16'))['db'];function respondWithStatusCode(_0x3eae89,_0x54418a){_0x54418a=_0x54418a||0xcc;return function(_0x365b36){if(_0x365b36){return _0x3eae89['sendStatus'](_0x54418a);}return _0x3eae89[_0x8f7f('0x17')](_0x54418a)['end']();};}function respondWithResult(_0x50c84a,_0x387595){_0x387595=_0x387595||0xc8;return function(_0x14adfd){if(_0x14adfd){return _0x50c84a['status'](_0x387595)[_0x8f7f('0x18')](_0x14adfd);}};}function respondWithFilteredResult(_0x4d3a84,_0x86d1f0){return function(_0x437761){if(_0x437761){var _0x323bde=typeof _0x86d1f0['offset']===_0x8f7f('0x19')&&typeof _0x86d1f0[_0x8f7f('0x1a')]===_0x8f7f('0x19');var _0x762bc=_0x437761[_0x8f7f('0x1b')];var _0x24a939=_0x323bde?0x0:_0x86d1f0[_0x8f7f('0x1c')];var _0x12663a=_0x323bde?_0x437761[_0x8f7f('0x1b')]:_0x86d1f0[_0x8f7f('0x1c')]+_0x86d1f0[_0x8f7f('0x1a')];var _0x3b90e5;if(_0x12663a>=_0x762bc){_0x12663a=_0x762bc;_0x3b90e5=0xc8;}else{_0x3b90e5=0xce;}_0x4d3a84[_0x8f7f('0x17')](_0x3b90e5);return _0x4d3a84[_0x8f7f('0x1d')]('Content-Range',_0x24a939+'-'+_0x12663a+'/'+_0x762bc)[_0x8f7f('0x18')](_0x437761);}return null;};}function patchUpdates(_0x6713b1){return function(_0x21382c){try{jsonpatch[_0x8f7f('0x1e')](_0x21382c,_0x6713b1,!![]);}catch(_0x3ddd7b){return BPromise[_0x8f7f('0x1f')](_0x3ddd7b);}return _0x21382c['save']();};}function saveUpdates(_0x3c2259,_0x1e8559){return function(_0x31c1e5){if(_0x31c1e5){return _0x31c1e5[_0x8f7f('0x20')](_0x3c2259)[_0x8f7f('0x21')](function(_0x6b23cd){return _0x6b23cd;});}return null;};}function removeEntity(_0x308511,_0x153bb6){return function(_0x4ca556){if(_0x4ca556){return _0x4ca556['destroy']()[_0x8f7f('0x21')](function(){_0x308511[_0x8f7f('0x17')](0xcc)[_0x8f7f('0x22')]();});}};}function handleEntityNotFound(_0x1036dc,_0x810d1d){return function(_0x237a83){if(!_0x237a83){_0x1036dc[_0x8f7f('0x23')](0x194);}return _0x237a83;};}function handleError(_0x176e09,_0x294591){_0x294591=_0x294591||0x1f4;return function(_0x3cf682){logger[_0x8f7f('0x24')](_0x3cf682[_0x8f7f('0x25')]);if(_0x3cf682[_0x8f7f('0x26')]){delete _0x3cf682[_0x8f7f('0x26')];}_0x176e09[_0x8f7f('0x17')](_0x294591)['send'](_0x3cf682);};}exports[_0x8f7f('0x27')]=function(_0xcb192d,_0x570a9b){var _0x4acea6={},_0x2941d8={},_0x156419={'count':0x0,'rows':[]};var _0x292557=_[_0x8f7f('0x28')](db[_0x8f7f('0x29')]['rawAttributes'],function(_0x4c63b3){return{'name':_0x4c63b3[_0x8f7f('0x2a')],'type':_0x4c63b3[_0x8f7f('0x2b')][_0x8f7f('0x2c')]};});_0x2941d8[_0x8f7f('0x2d')]=_[_0x8f7f('0x28')](_0x292557,'name');_0x2941d8['query']=_[_0x8f7f('0x2e')](_0xcb192d[_0x8f7f('0x2f')]);_0x2941d8[_0x8f7f('0x30')]=_['intersection'](_0x2941d8[_0x8f7f('0x2d')],_0x2941d8[_0x8f7f('0x2f')]);_0x4acea6[_0x8f7f('0x31')]=_['intersection'](_0x2941d8[_0x8f7f('0x2d')],qs[_0x8f7f('0x32')](_0xcb192d[_0x8f7f('0x2f')]['fields']));_0x4acea6[_0x8f7f('0x31')]=_0x4acea6['attributes'][_0x8f7f('0x33')]?_0x4acea6['attributes']:_0x2941d8['model'];if(!_0xcb192d[_0x8f7f('0x2f')]['hasOwnProperty'](_0x8f7f('0x34'))){_0x4acea6[_0x8f7f('0x1a')]=qs[_0x8f7f('0x1a')](_0xcb192d[_0x8f7f('0x2f')][_0x8f7f('0x1a')]);_0x4acea6[_0x8f7f('0x1c')]=qs[_0x8f7f('0x1c')](_0xcb192d[_0x8f7f('0x2f')][_0x8f7f('0x1c')]);}_0x4acea6[_0x8f7f('0x35')]=qs['sort'](_0xcb192d[_0x8f7f('0x2f')]['sort']);_0x4acea6[_0x8f7f('0x36')]=qs['filters'](_[_0x8f7f('0x37')](_0xcb192d['query'],_0x2941d8['filters']),_0x292557);if(_0xcb192d[_0x8f7f('0x2f')]['filter']){_0x4acea6[_0x8f7f('0x36')]=_[_0x8f7f('0x38')](_0x4acea6['where'],{'$or':_[_0x8f7f('0x28')](_0x292557,function(_0x4ae801){if(_0x4ae801[_0x8f7f('0x2b')]!=='VIRTUAL'){var _0x4d4f5e={};_0x4d4f5e[_0x4ae801['name']]={'$like':'%'+_0xcb192d['query'][_0x8f7f('0x39')]+'%'};return _0x4d4f5e;}})});}_0x4acea6=_[_0x8f7f('0x38')]({},_0x4acea6,_0xcb192d[_0x8f7f('0x3a')]);var _0x1b424c={'where':_0x4acea6[_0x8f7f('0x36')]};return db['SugarcrmConfiguration'][_0x8f7f('0x1b')](_0x1b424c)[_0x8f7f('0x21')](function(_0x1487e0){_0x156419['count']=_0x1487e0;if(_0xcb192d[_0x8f7f('0x2f')][_0x8f7f('0x3b')]){_0x4acea6['include']=[{'all':!![]}];}return db['SugarcrmConfiguration']['findAll'](_0x4acea6);})[_0x8f7f('0x21')](function(_0xb41f2b){_0x156419[_0x8f7f('0x3c')]=_0xb41f2b;return _0x156419;})[_0x8f7f('0x21')](respondWithFilteredResult(_0x570a9b,_0x4acea6))[_0x8f7f('0x3d')](handleError(_0x570a9b,null));};exports[_0x8f7f('0x3e')]=function(_0x14b28f,_0x335778){var _0x191d14={'raw':![],'where':{'id':_0x14b28f[_0x8f7f('0x3f')]['id']}},_0x20e672={};_0x20e672[_0x8f7f('0x2d')]=_[_0x8f7f('0x2e')](db['SugarcrmConfiguration'][_0x8f7f('0x40')]);_0x20e672[_0x8f7f('0x2f')]=_['keys'](_0x14b28f[_0x8f7f('0x2f')]);_0x20e672['filters']=_[_0x8f7f('0x41')](_0x20e672['model'],_0x20e672[_0x8f7f('0x2f')]);_0x191d14[_0x8f7f('0x31')]=_[_0x8f7f('0x41')](_0x20e672['model'],qs[_0x8f7f('0x32')](_0x14b28f[_0x8f7f('0x2f')][_0x8f7f('0x32')]));_0x191d14[_0x8f7f('0x31')]=_0x191d14[_0x8f7f('0x31')][_0x8f7f('0x33')]?_0x191d14[_0x8f7f('0x31')]:_0x20e672[_0x8f7f('0x2d')];if(_0x14b28f['query']['includeAll']){_0x191d14['include']=[{'all':!![]}];}_0x191d14=_[_0x8f7f('0x38')]({},_0x191d14,_0x14b28f[_0x8f7f('0x3a')]);return db[_0x8f7f('0x29')]['find'](_0x191d14)[_0x8f7f('0x21')](handleEntityNotFound(_0x335778,null))[_0x8f7f('0x21')](respondWithResult(_0x335778,null))[_0x8f7f('0x3d')](handleError(_0x335778,null));};exports[_0x8f7f('0x42')]=function(_0x59e0e6,_0x2dd098){return db['SugarcrmConfiguration'][_0x8f7f('0x42')](_0x59e0e6[_0x8f7f('0x43')],{})[_0x8f7f('0x21')](respondWithResult(_0x2dd098,0xc9))[_0x8f7f('0x3d')](handleError(_0x2dd098,null));};exports[_0x8f7f('0x20')]=function(_0x2a9a32,_0x4324e3){if(_0x2a9a32['body']['id']){delete _0x2a9a32[_0x8f7f('0x43')]['id'];}return db[_0x8f7f('0x29')][_0x8f7f('0x44')]({'where':{'id':_0x2a9a32[_0x8f7f('0x3f')]['id']}})[_0x8f7f('0x21')](handleEntityNotFound(_0x4324e3,null))[_0x8f7f('0x21')](saveUpdates(_0x2a9a32[_0x8f7f('0x43')],null))[_0x8f7f('0x21')](respondWithResult(_0x4324e3,null))['catch'](handleError(_0x4324e3,null));};exports[_0x8f7f('0x45')]=function(_0x2ecb10,_0x15fdfa){return db[_0x8f7f('0x29')]['find']({'where':{'id':_0x2ecb10[_0x8f7f('0x3f')]['id']}})[_0x8f7f('0x21')](handleEntityNotFound(_0x15fdfa,null))[_0x8f7f('0x21')](removeEntity(_0x15fdfa,null))[_0x8f7f('0x3d')](handleError(_0x15fdfa,null));};exports[_0x8f7f('0x46')]=function(_0x4ac42f,_0x5f1d55,_0x30704c){var _0x57c8c6={};var _0x12f1ac={};var _0x2893a8;var _0x4c5b21;return db[_0x8f7f('0x29')][_0x8f7f('0x47')]({'where':{'id':_0x4ac42f['params']['id']}})[_0x8f7f('0x21')](handleEntityNotFound(_0x5f1d55,null))[_0x8f7f('0x21')](function(_0x2ee698){if(_0x2ee698){_0x2893a8=_0x2ee698;_0x12f1ac[_0x8f7f('0x2d')]=_[_0x8f7f('0x2e')](db[_0x8f7f('0x48')]['rawAttributes']);_0x12f1ac['query']=_[_0x8f7f('0x2e')](_0x4ac42f[_0x8f7f('0x2f')]);_0x12f1ac['filters']=_[_0x8f7f('0x41')](_0x12f1ac[_0x8f7f('0x2d')],_0x12f1ac[_0x8f7f('0x2f')]);_0x57c8c6['attributes']=_['intersection'](_0x12f1ac[_0x8f7f('0x2d')],qs[_0x8f7f('0x32')](_0x4ac42f[_0x8f7f('0x2f')][_0x8f7f('0x32')]));_0x57c8c6[_0x8f7f('0x31')]=_0x57c8c6[_0x8f7f('0x31')][_0x8f7f('0x33')]?_0x57c8c6['attributes']:_0x12f1ac[_0x8f7f('0x2d')];_0x57c8c6[_0x8f7f('0x35')]=qs[_0x8f7f('0x49')](_0x4ac42f['query']['sort']);_0x57c8c6[_0x8f7f('0x36')]=qs['filters'](_[_0x8f7f('0x37')](_0x4ac42f[_0x8f7f('0x2f')],_0x12f1ac[_0x8f7f('0x30')]));if(_0x4ac42f[_0x8f7f('0x2f')][_0x8f7f('0x39')]){_0x57c8c6[_0x8f7f('0x36')]=_[_0x8f7f('0x38')](_0x57c8c6[_0x8f7f('0x36')],{'$or':_[_0x8f7f('0x28')](_0x57c8c6['attributes'],function(_0x334e6d){var _0x45cc60={};_0x45cc60[_0x334e6d]={'$like':'%'+_0x4ac42f[_0x8f7f('0x2f')]['filter']+'%'};return _0x45cc60;})});}_0x57c8c6=_[_0x8f7f('0x38')]({},_0x57c8c6,_0x4ac42f[_0x8f7f('0x3a')]);return _0x2893a8[_0x8f7f('0x46')](_0x57c8c6);}})[_0x8f7f('0x21')](function(_0x59ef1b){if(_0x59ef1b){_0x4c5b21=_0x59ef1b[_0x8f7f('0x33')];if(!_0x4ac42f[_0x8f7f('0x2f')][_0x8f7f('0x4a')](_0x8f7f('0x34'))){_0x57c8c6[_0x8f7f('0x1a')]=qs[_0x8f7f('0x1a')](_0x4ac42f[_0x8f7f('0x2f')][_0x8f7f('0x1a')]);_0x57c8c6[_0x8f7f('0x1c')]=qs[_0x8f7f('0x1c')](_0x4ac42f[_0x8f7f('0x2f')][_0x8f7f('0x1c')]);}return _0x2893a8[_0x8f7f('0x46')](_0x57c8c6);}})[_0x8f7f('0x21')](function(_0x57a717){if(_0x57a717){return _0x57a717?{'count':_0x4c5b21,'rows':_0x57a717}:null;}})[_0x8f7f('0x21')](respondWithResult(_0x5f1d55,null))[_0x8f7f('0x3d')](handleError(_0x5f1d55,null));};exports['getSubjects']=function(_0x5bb110,_0x33ec99,_0x359a2e){var _0x47cc49={};var _0x2d36a7={};var _0x48d206;var _0x556525;return db['SugarcrmConfiguration'][_0x8f7f('0x47')]({'where':{'id':_0x5bb110[_0x8f7f('0x3f')]['id']}})['then'](handleEntityNotFound(_0x33ec99,null))[_0x8f7f('0x21')](function(_0x19caad){if(_0x19caad){_0x48d206=_0x19caad;_0x2d36a7[_0x8f7f('0x2d')]=_[_0x8f7f('0x2e')](db[_0x8f7f('0x48')][_0x8f7f('0x40')]);_0x2d36a7[_0x8f7f('0x2f')]=_['keys'](_0x5bb110[_0x8f7f('0x2f')]);_0x2d36a7[_0x8f7f('0x30')]=_[_0x8f7f('0x41')](_0x2d36a7[_0x8f7f('0x2d')],_0x2d36a7['query']);_0x47cc49[_0x8f7f('0x31')]=_[_0x8f7f('0x41')](_0x2d36a7[_0x8f7f('0x2d')],qs[_0x8f7f('0x32')](_0x5bb110['query'][_0x8f7f('0x32')]));_0x47cc49[_0x8f7f('0x31')]=_0x47cc49['attributes']['length']?_0x47cc49[_0x8f7f('0x31')]:_0x2d36a7[_0x8f7f('0x2d')];_0x47cc49['order']=qs[_0x8f7f('0x49')](_0x5bb110[_0x8f7f('0x2f')]['sort']);_0x47cc49[_0x8f7f('0x36')]=qs[_0x8f7f('0x30')](_[_0x8f7f('0x37')](_0x5bb110['query'],_0x2d36a7[_0x8f7f('0x30')]));if(_0x5bb110[_0x8f7f('0x2f')][_0x8f7f('0x39')]){_0x47cc49[_0x8f7f('0x36')]=_['merge'](_0x47cc49['where'],{'$or':_[_0x8f7f('0x28')](_0x47cc49[_0x8f7f('0x31')],function(_0x35393d){var _0x3b5293={};_0x3b5293[_0x35393d]={'$like':'%'+_0x5bb110[_0x8f7f('0x2f')][_0x8f7f('0x39')]+'%'};return _0x3b5293;})});}_0x47cc49=_[_0x8f7f('0x38')]({},_0x47cc49,_0x5bb110[_0x8f7f('0x3a')]);return _0x48d206[_0x8f7f('0x4b')](_0x47cc49);}})[_0x8f7f('0x21')](function(_0x486440){if(_0x486440){_0x556525=_0x486440[_0x8f7f('0x33')];if(!_0x5bb110[_0x8f7f('0x2f')]['hasOwnProperty'](_0x8f7f('0x34'))){_0x47cc49[_0x8f7f('0x1a')]=qs[_0x8f7f('0x1a')](_0x5bb110[_0x8f7f('0x2f')]['limit']);_0x47cc49[_0x8f7f('0x1c')]=qs[_0x8f7f('0x1c')](_0x5bb110[_0x8f7f('0x2f')]['offset']);}return _0x48d206[_0x8f7f('0x4b')](_0x47cc49);}})[_0x8f7f('0x21')](function(_0x5c6729){if(_0x5c6729){return _0x5c6729?{'count':_0x556525,'rows':_0x5c6729}:null;}})[_0x8f7f('0x21')](respondWithResult(_0x33ec99,null))[_0x8f7f('0x3d')](handleError(_0x33ec99,null));};exports[_0x8f7f('0x4c')]=function(_0x5b8211,_0x20c362,_0xa01f24){var _0xab49b7={};var _0x2d718e={};var _0xbe4e54;var _0xe9ff46;return db[_0x8f7f('0x29')][_0x8f7f('0x47')]({'where':{'id':_0x5b8211[_0x8f7f('0x3f')]['id']}})[_0x8f7f('0x21')](handleEntityNotFound(_0x20c362,null))[_0x8f7f('0x21')](function(_0x221460){if(_0x221460){_0xbe4e54=_0x221460;_0x2d718e[_0x8f7f('0x2d')]=_[_0x8f7f('0x2e')](db['SugarcrmField'][_0x8f7f('0x40')]);_0x2d718e[_0x8f7f('0x2f')]=_[_0x8f7f('0x2e')](_0x5b8211[_0x8f7f('0x2f')]);_0x2d718e[_0x8f7f('0x30')]=_['intersection'](_0x2d718e[_0x8f7f('0x2d')],_0x2d718e[_0x8f7f('0x2f')]);_0xab49b7[_0x8f7f('0x31')]=_['intersection'](_0x2d718e[_0x8f7f('0x2d')],qs[_0x8f7f('0x32')](_0x5b8211[_0x8f7f('0x2f')][_0x8f7f('0x32')]));_0xab49b7[_0x8f7f('0x31')]=_0xab49b7[_0x8f7f('0x31')][_0x8f7f('0x33')]?_0xab49b7[_0x8f7f('0x31')]:_0x2d718e[_0x8f7f('0x2d')];_0xab49b7['order']=qs['sort'](_0x5b8211[_0x8f7f('0x2f')][_0x8f7f('0x49')]);_0xab49b7[_0x8f7f('0x36')]=qs[_0x8f7f('0x30')](_[_0x8f7f('0x37')](_0x5b8211['query'],_0x2d718e[_0x8f7f('0x30')]));if(_0x5b8211[_0x8f7f('0x2f')][_0x8f7f('0x39')]){_0xab49b7['where']=_[_0x8f7f('0x38')](_0xab49b7[_0x8f7f('0x36')],{'$or':_[_0x8f7f('0x28')](_0xab49b7[_0x8f7f('0x31')],function(_0x164493){var _0x95969b={};_0x95969b[_0x164493]={'$like':'%'+_0x5b8211[_0x8f7f('0x2f')]['filter']+'%'};return _0x95969b;})});}_0xab49b7=_[_0x8f7f('0x38')]({},_0xab49b7,_0x5b8211[_0x8f7f('0x3a')]);return _0xbe4e54['getDescriptions'](_0xab49b7);}})['then'](function(_0x5236f2){if(_0x5236f2){_0xe9ff46=_0x5236f2[_0x8f7f('0x33')];if(!_0x5b8211['query'][_0x8f7f('0x4a')](_0x8f7f('0x34'))){_0xab49b7[_0x8f7f('0x1a')]=qs[_0x8f7f('0x1a')](_0x5b8211[_0x8f7f('0x2f')]['limit']);_0xab49b7['offset']=qs[_0x8f7f('0x1c')](_0x5b8211[_0x8f7f('0x2f')][_0x8f7f('0x1c')]);}return _0xbe4e54[_0x8f7f('0x4c')](_0xab49b7);}})[_0x8f7f('0x21')](function(_0x367f70){if(_0x367f70){return _0x367f70?{'count':_0xe9ff46,'rows':_0x367f70}:null;}})[_0x8f7f('0x21')](respondWithResult(_0x20c362,null))[_0x8f7f('0x3d')](handleError(_0x20c362,null));};