507d09b2b8538bcfb4f3de3fdf0fda7888a48aa4
[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 _0xa646=['where','pick','filter','merge','VIRTUAL','options','SugarcrmConfiguration','includeAll','include','findAll','rows','catch','params','find','create','body','getFields','findOne','SugarcrmField','map','getSubjects','getDescriptions','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','json','apply','reject','save','then','destroy','error','stack','name','send','index','rawAttributes','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort'];(function(_0x4131c2,_0x26ccce){var _0x1ca43f=function(_0x1dc3e7){while(--_0x1dc3e7){_0x4131c2['push'](_0x4131c2['shift']());}};_0x1ca43f(++_0x26ccce);}(_0xa646,0x65));var _0x6a64=function(_0x39a79c,_0xb997ae){_0x39a79c=_0x39a79c-0x0;var _0x4d122a=_0xa646[_0x39a79c];return _0x4d122a;};'use strict';var emlformat=require(_0x6a64('0x0'));var rimraf=require(_0x6a64('0x1'));var zipdir=require(_0x6a64('0x2'));var jsonpatch=require(_0x6a64('0x3'));var rp=require(_0x6a64('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x6a64('0x5'));var util=require(_0x6a64('0x6'));var path=require(_0x6a64('0x7'));var sox=require(_0x6a64('0x8'));var csv=require(_0x6a64('0x9'));var ejs=require(_0x6a64('0xa'));var fs=require('fs');var fs_extra=require(_0x6a64('0xb'));var _=require(_0x6a64('0xc'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x6a64('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x6a64('0x9'));var querystring=require(_0x6a64('0xe'));var Papa=require(_0x6a64('0xf'));var Redis=require(_0x6a64('0x10'));var authService=require(_0x6a64('0x11'));var qs=require(_0x6a64('0x12'));var as=require(_0x6a64('0x13'));var hardwareService=require(_0x6a64('0x14'));var logger=require('../../config/logger')(_0x6a64('0x15'));var utils=require(_0x6a64('0x16'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x2d5245,_0x3a8a96){_0x3a8a96=_0x3a8a96||0xcc;return function(_0x544e36){if(_0x544e36){return _0x2d5245[_0x6a64('0x17')](_0x3a8a96);}return _0x2d5245[_0x6a64('0x18')](_0x3a8a96)[_0x6a64('0x19')]();};}function respondWithResult(_0x1d8619,_0x22da9b){_0x22da9b=_0x22da9b||0xc8;return function(_0x5e1306){if(_0x5e1306){return _0x1d8619[_0x6a64('0x18')](_0x22da9b)['json'](_0x5e1306);}};}function respondWithFilteredResult(_0x40400c,_0x204906){return function(_0x30812f){if(_0x30812f){var _0x390eec=typeof _0x204906[_0x6a64('0x1a')]===_0x6a64('0x1b')&&typeof _0x204906[_0x6a64('0x1c')]===_0x6a64('0x1b');var _0x55b402=_0x30812f[_0x6a64('0x1d')];var _0x30ffc5=_0x390eec?0x0:_0x204906[_0x6a64('0x1a')];var _0x176bb1=_0x390eec?_0x30812f[_0x6a64('0x1d')]:_0x204906[_0x6a64('0x1a')]+_0x204906[_0x6a64('0x1c')];var _0x3d6948;if(_0x176bb1>=_0x55b402){_0x176bb1=_0x55b402;_0x3d6948=0xc8;}else{_0x3d6948=0xce;}_0x40400c[_0x6a64('0x18')](_0x3d6948);return _0x40400c[_0x6a64('0x1e')](_0x6a64('0x1f'),_0x30ffc5+'-'+_0x176bb1+'/'+_0x55b402)[_0x6a64('0x20')](_0x30812f);}return null;};}function patchUpdates(_0x4d436a){return function(_0x239d56){try{jsonpatch[_0x6a64('0x21')](_0x239d56,_0x4d436a,!![]);}catch(_0xeb934f){return BPromise[_0x6a64('0x22')](_0xeb934f);}return _0x239d56[_0x6a64('0x23')]();};}function saveUpdates(_0x2b357a,_0x45a28c){return function(_0x92a6df){if(_0x92a6df){return _0x92a6df['update'](_0x2b357a)[_0x6a64('0x24')](function(_0x256423){return _0x256423;});}return null;};}function removeEntity(_0x1da20b,_0x5c43a0){return function(_0x467e05){if(_0x467e05){return _0x467e05[_0x6a64('0x25')]()['then'](function(){_0x1da20b[_0x6a64('0x18')](0xcc)[_0x6a64('0x19')]();});}};}function handleEntityNotFound(_0x2916c8,_0x12ca4d){return function(_0x3b0f5f){if(!_0x3b0f5f){_0x2916c8[_0x6a64('0x17')](0x194);}return _0x3b0f5f;};}function handleError(_0x46b849,_0x2fcf26){_0x2fcf26=_0x2fcf26||0x1f4;return function(_0x136d97){logger[_0x6a64('0x26')](_0x136d97[_0x6a64('0x27')]);if(_0x136d97[_0x6a64('0x28')]){delete _0x136d97[_0x6a64('0x28')];}_0x46b849['status'](_0x2fcf26)[_0x6a64('0x29')](_0x136d97);};}exports[_0x6a64('0x2a')]=function(_0x228d1a,_0x340292){var _0x4f47ae={},_0x448d80={},_0x4df0b5={'count':0x0,'rows':[]};var _0xb7db5e=_['map'](db['SugarcrmConfiguration'][_0x6a64('0x2b')],function(_0x220f54){return{'name':_0x220f54['fieldName'],'type':_0x220f54['type'][_0x6a64('0x2c')]};});_0x448d80[_0x6a64('0x2d')]=_['map'](_0xb7db5e,_0x6a64('0x28'));_0x448d80[_0x6a64('0x2e')]=_[_0x6a64('0x2f')](_0x228d1a[_0x6a64('0x2e')]);_0x448d80[_0x6a64('0x30')]=_[_0x6a64('0x31')](_0x448d80[_0x6a64('0x2d')],_0x448d80['query']);_0x4f47ae[_0x6a64('0x32')]=_['intersection'](_0x448d80[_0x6a64('0x2d')],qs[_0x6a64('0x33')](_0x228d1a[_0x6a64('0x2e')]['fields']));_0x4f47ae['attributes']=_0x4f47ae[_0x6a64('0x32')][_0x6a64('0x34')]?_0x4f47ae[_0x6a64('0x32')]:_0x448d80[_0x6a64('0x2d')];if(!_0x228d1a[_0x6a64('0x2e')][_0x6a64('0x35')](_0x6a64('0x36'))){_0x4f47ae[_0x6a64('0x1c')]=qs[_0x6a64('0x1c')](_0x228d1a['query']['limit']);_0x4f47ae[_0x6a64('0x1a')]=qs[_0x6a64('0x1a')](_0x228d1a[_0x6a64('0x2e')][_0x6a64('0x1a')]);}_0x4f47ae[_0x6a64('0x37')]=qs[_0x6a64('0x38')](_0x228d1a[_0x6a64('0x2e')][_0x6a64('0x38')]);_0x4f47ae[_0x6a64('0x39')]=qs[_0x6a64('0x30')](_[_0x6a64('0x3a')](_0x228d1a[_0x6a64('0x2e')],_0x448d80[_0x6a64('0x30')]),_0xb7db5e);if(_0x228d1a[_0x6a64('0x2e')][_0x6a64('0x3b')]){_0x4f47ae['where']=_[_0x6a64('0x3c')](_0x4f47ae[_0x6a64('0x39')],{'$or':_['map'](_0xb7db5e,function(_0x748a1b){if(_0x748a1b['type']!==_0x6a64('0x3d')){var _0xb31839={};_0xb31839[_0x748a1b[_0x6a64('0x28')]]={'$like':'%'+_0x228d1a[_0x6a64('0x2e')][_0x6a64('0x3b')]+'%'};return _0xb31839;}})});}_0x4f47ae=_[_0x6a64('0x3c')]({},_0x4f47ae,_0x228d1a[_0x6a64('0x3e')]);var _0x321c10={'where':_0x4f47ae['where']};return db[_0x6a64('0x3f')]['count'](_0x321c10)[_0x6a64('0x24')](function(_0x45dd19){_0x4df0b5[_0x6a64('0x1d')]=_0x45dd19;if(_0x228d1a['query'][_0x6a64('0x40')]){_0x4f47ae[_0x6a64('0x41')]=[{'all':!![]}];}return db[_0x6a64('0x3f')][_0x6a64('0x42')](_0x4f47ae);})[_0x6a64('0x24')](function(_0x1fce24){_0x4df0b5[_0x6a64('0x43')]=_0x1fce24;return _0x4df0b5;})[_0x6a64('0x24')](respondWithFilteredResult(_0x340292,_0x4f47ae))[_0x6a64('0x44')](handleError(_0x340292,null));};exports['show']=function(_0x5d1903,_0x44d4f6){var _0x4a4431={'raw':![],'where':{'id':_0x5d1903[_0x6a64('0x45')]['id']}},_0x460a6c={};_0x460a6c[_0x6a64('0x2d')]=_['keys'](db['SugarcrmConfiguration'][_0x6a64('0x2b')]);_0x460a6c['query']=_[_0x6a64('0x2f')](_0x5d1903[_0x6a64('0x2e')]);_0x460a6c[_0x6a64('0x30')]=_['intersection'](_0x460a6c[_0x6a64('0x2d')],_0x460a6c['query']);_0x4a4431[_0x6a64('0x32')]=_['intersection'](_0x460a6c[_0x6a64('0x2d')],qs['fields'](_0x5d1903[_0x6a64('0x2e')][_0x6a64('0x33')]));_0x4a4431[_0x6a64('0x32')]=_0x4a4431['attributes']['length']?_0x4a4431[_0x6a64('0x32')]:_0x460a6c[_0x6a64('0x2d')];if(_0x5d1903[_0x6a64('0x2e')]['includeAll']){_0x4a4431[_0x6a64('0x41')]=[{'all':!![]}];}_0x4a4431=_[_0x6a64('0x3c')]({},_0x4a4431,_0x5d1903[_0x6a64('0x3e')]);return db[_0x6a64('0x3f')][_0x6a64('0x46')](_0x4a4431)['then'](handleEntityNotFound(_0x44d4f6,null))[_0x6a64('0x24')](respondWithResult(_0x44d4f6,null))[_0x6a64('0x44')](handleError(_0x44d4f6,null));};exports[_0x6a64('0x47')]=function(_0x47bf30,_0x2c7218){return db[_0x6a64('0x3f')]['create'](_0x47bf30[_0x6a64('0x48')],{})[_0x6a64('0x24')](respondWithResult(_0x2c7218,0xc9))[_0x6a64('0x44')](handleError(_0x2c7218,null));};exports['update']=function(_0x44f56a,_0x1f56e2){if(_0x44f56a['body']['id']){delete _0x44f56a[_0x6a64('0x48')]['id'];}return db[_0x6a64('0x3f')]['find']({'where':{'id':_0x44f56a[_0x6a64('0x45')]['id']}})[_0x6a64('0x24')](handleEntityNotFound(_0x1f56e2,null))[_0x6a64('0x24')](saveUpdates(_0x44f56a[_0x6a64('0x48')],null))[_0x6a64('0x24')](respondWithResult(_0x1f56e2,null))['catch'](handleError(_0x1f56e2,null));};exports[_0x6a64('0x25')]=function(_0x573f29,_0x16c6b7){return db[_0x6a64('0x3f')][_0x6a64('0x46')]({'where':{'id':_0x573f29[_0x6a64('0x45')]['id']}})[_0x6a64('0x24')](handleEntityNotFound(_0x16c6b7,null))['then'](removeEntity(_0x16c6b7,null))[_0x6a64('0x44')](handleError(_0x16c6b7,null));};exports[_0x6a64('0x49')]=function(_0x1d2581,_0x44ae30,_0x38a8b3){var _0x1e87e7={};var _0x519f37={};var _0x1babc9;var _0x3f13fa;return db[_0x6a64('0x3f')][_0x6a64('0x4a')]({'where':{'id':_0x1d2581[_0x6a64('0x45')]['id']}})[_0x6a64('0x24')](handleEntityNotFound(_0x44ae30,null))[_0x6a64('0x24')](function(_0x2e3f6a){if(_0x2e3f6a){_0x1babc9=_0x2e3f6a;_0x519f37[_0x6a64('0x2d')]=_[_0x6a64('0x2f')](db[_0x6a64('0x4b')][_0x6a64('0x2b')]);_0x519f37[_0x6a64('0x2e')]=_[_0x6a64('0x2f')](_0x1d2581[_0x6a64('0x2e')]);_0x519f37[_0x6a64('0x30')]=_[_0x6a64('0x31')](_0x519f37[_0x6a64('0x2d')],_0x519f37[_0x6a64('0x2e')]);_0x1e87e7['attributes']=_[_0x6a64('0x31')](_0x519f37[_0x6a64('0x2d')],qs[_0x6a64('0x33')](_0x1d2581[_0x6a64('0x2e')][_0x6a64('0x33')]));_0x1e87e7[_0x6a64('0x32')]=_0x1e87e7['attributes'][_0x6a64('0x34')]?_0x1e87e7[_0x6a64('0x32')]:_0x519f37['model'];_0x1e87e7[_0x6a64('0x37')]=qs[_0x6a64('0x38')](_0x1d2581[_0x6a64('0x2e')][_0x6a64('0x38')]);_0x1e87e7[_0x6a64('0x39')]=qs[_0x6a64('0x30')](_[_0x6a64('0x3a')](_0x1d2581[_0x6a64('0x2e')],_0x519f37['filters']));if(_0x1d2581[_0x6a64('0x2e')][_0x6a64('0x3b')]){_0x1e87e7[_0x6a64('0x39')]=_[_0x6a64('0x3c')](_0x1e87e7[_0x6a64('0x39')],{'$or':_[_0x6a64('0x4c')](_0x1e87e7['attributes'],function(_0x3fcff1){var _0x36de7a={};_0x36de7a[_0x3fcff1]={'$like':'%'+_0x1d2581['query'][_0x6a64('0x3b')]+'%'};return _0x36de7a;})});}_0x1e87e7=_[_0x6a64('0x3c')]({},_0x1e87e7,_0x1d2581[_0x6a64('0x3e')]);return _0x1babc9[_0x6a64('0x49')](_0x1e87e7);}})[_0x6a64('0x24')](function(_0x5a1f43){if(_0x5a1f43){_0x3f13fa=_0x5a1f43[_0x6a64('0x34')];if(!_0x1d2581[_0x6a64('0x2e')]['hasOwnProperty'](_0x6a64('0x36'))){_0x1e87e7[_0x6a64('0x1c')]=qs['limit'](_0x1d2581[_0x6a64('0x2e')]['limit']);_0x1e87e7[_0x6a64('0x1a')]=qs[_0x6a64('0x1a')](_0x1d2581[_0x6a64('0x2e')][_0x6a64('0x1a')]);}return _0x1babc9[_0x6a64('0x49')](_0x1e87e7);}})[_0x6a64('0x24')](function(_0x43dce2){if(_0x43dce2){return _0x43dce2?{'count':_0x3f13fa,'rows':_0x43dce2}:null;}})[_0x6a64('0x24')](respondWithResult(_0x44ae30,null))['catch'](handleError(_0x44ae30,null));};exports['getSubjects']=function(_0x5c64fc,_0x41c0da,_0x1a05ff){var _0x48b7bb={};var _0x456b3e={};var _0x58c8b7;var _0x3da3ce;return db[_0x6a64('0x3f')]['findOne']({'where':{'id':_0x5c64fc['params']['id']}})[_0x6a64('0x24')](handleEntityNotFound(_0x41c0da,null))[_0x6a64('0x24')](function(_0x3cec1f){if(_0x3cec1f){_0x58c8b7=_0x3cec1f;_0x456b3e[_0x6a64('0x2d')]=_[_0x6a64('0x2f')](db['SugarcrmField']['rawAttributes']);_0x456b3e['query']=_[_0x6a64('0x2f')](_0x5c64fc[_0x6a64('0x2e')]);_0x456b3e['filters']=_['intersection'](_0x456b3e[_0x6a64('0x2d')],_0x456b3e[_0x6a64('0x2e')]);_0x48b7bb[_0x6a64('0x32')]=_[_0x6a64('0x31')](_0x456b3e[_0x6a64('0x2d')],qs[_0x6a64('0x33')](_0x5c64fc[_0x6a64('0x2e')][_0x6a64('0x33')]));_0x48b7bb[_0x6a64('0x32')]=_0x48b7bb[_0x6a64('0x32')][_0x6a64('0x34')]?_0x48b7bb[_0x6a64('0x32')]:_0x456b3e[_0x6a64('0x2d')];_0x48b7bb['order']=qs['sort'](_0x5c64fc[_0x6a64('0x2e')]['sort']);_0x48b7bb[_0x6a64('0x39')]=qs['filters'](_['pick'](_0x5c64fc[_0x6a64('0x2e')],_0x456b3e[_0x6a64('0x30')]));if(_0x5c64fc[_0x6a64('0x2e')][_0x6a64('0x3b')]){_0x48b7bb[_0x6a64('0x39')]=_[_0x6a64('0x3c')](_0x48b7bb['where'],{'$or':_[_0x6a64('0x4c')](_0x48b7bb[_0x6a64('0x32')],function(_0x4c57e5){var _0x20e3c8={};_0x20e3c8[_0x4c57e5]={'$like':'%'+_0x5c64fc[_0x6a64('0x2e')][_0x6a64('0x3b')]+'%'};return _0x20e3c8;})});}_0x48b7bb=_[_0x6a64('0x3c')]({},_0x48b7bb,_0x5c64fc['options']);return _0x58c8b7[_0x6a64('0x4d')](_0x48b7bb);}})[_0x6a64('0x24')](function(_0x1d4ca2){if(_0x1d4ca2){_0x3da3ce=_0x1d4ca2[_0x6a64('0x34')];if(!_0x5c64fc[_0x6a64('0x2e')][_0x6a64('0x35')](_0x6a64('0x36'))){_0x48b7bb[_0x6a64('0x1c')]=qs[_0x6a64('0x1c')](_0x5c64fc['query'][_0x6a64('0x1c')]);_0x48b7bb['offset']=qs[_0x6a64('0x1a')](_0x5c64fc[_0x6a64('0x2e')][_0x6a64('0x1a')]);}return _0x58c8b7[_0x6a64('0x4d')](_0x48b7bb);}})['then'](function(_0x14cb46){if(_0x14cb46){return _0x14cb46?{'count':_0x3da3ce,'rows':_0x14cb46}:null;}})['then'](respondWithResult(_0x41c0da,null))[_0x6a64('0x44')](handleError(_0x41c0da,null));};exports[_0x6a64('0x4e')]=function(_0x2a66cc,_0x123930,_0x539e18){var _0x4c9361={};var _0x18e853={};var _0x2a5e64;var _0x3bca06;return db['SugarcrmConfiguration'][_0x6a64('0x4a')]({'where':{'id':_0x2a66cc[_0x6a64('0x45')]['id']}})[_0x6a64('0x24')](handleEntityNotFound(_0x123930,null))[_0x6a64('0x24')](function(_0x59adfd){if(_0x59adfd){_0x2a5e64=_0x59adfd;_0x18e853[_0x6a64('0x2d')]=_[_0x6a64('0x2f')](db[_0x6a64('0x4b')][_0x6a64('0x2b')]);_0x18e853['query']=_[_0x6a64('0x2f')](_0x2a66cc[_0x6a64('0x2e')]);_0x18e853[_0x6a64('0x30')]=_['intersection'](_0x18e853[_0x6a64('0x2d')],_0x18e853[_0x6a64('0x2e')]);_0x4c9361[_0x6a64('0x32')]=_[_0x6a64('0x31')](_0x18e853[_0x6a64('0x2d')],qs[_0x6a64('0x33')](_0x2a66cc[_0x6a64('0x2e')][_0x6a64('0x33')]));_0x4c9361[_0x6a64('0x32')]=_0x4c9361[_0x6a64('0x32')][_0x6a64('0x34')]?_0x4c9361[_0x6a64('0x32')]:_0x18e853[_0x6a64('0x2d')];_0x4c9361[_0x6a64('0x37')]=qs[_0x6a64('0x38')](_0x2a66cc['query'][_0x6a64('0x38')]);_0x4c9361[_0x6a64('0x39')]=qs[_0x6a64('0x30')](_[_0x6a64('0x3a')](_0x2a66cc[_0x6a64('0x2e')],_0x18e853['filters']));if(_0x2a66cc['query'][_0x6a64('0x3b')]){_0x4c9361[_0x6a64('0x39')]=_[_0x6a64('0x3c')](_0x4c9361[_0x6a64('0x39')],{'$or':_[_0x6a64('0x4c')](_0x4c9361[_0x6a64('0x32')],function(_0x4090d9){var _0x58cc1a={};_0x58cc1a[_0x4090d9]={'$like':'%'+_0x2a66cc[_0x6a64('0x2e')][_0x6a64('0x3b')]+'%'};return _0x58cc1a;})});}_0x4c9361=_[_0x6a64('0x3c')]({},_0x4c9361,_0x2a66cc[_0x6a64('0x3e')]);return _0x2a5e64[_0x6a64('0x4e')](_0x4c9361);}})[_0x6a64('0x24')](function(_0xfc56d4){if(_0xfc56d4){_0x3bca06=_0xfc56d4[_0x6a64('0x34')];if(!_0x2a66cc[_0x6a64('0x2e')]['hasOwnProperty'](_0x6a64('0x36'))){_0x4c9361[_0x6a64('0x1c')]=qs[_0x6a64('0x1c')](_0x2a66cc[_0x6a64('0x2e')][_0x6a64('0x1c')]);_0x4c9361[_0x6a64('0x1a')]=qs[_0x6a64('0x1a')](_0x2a66cc[_0x6a64('0x2e')][_0x6a64('0x1a')]);}return _0x2a5e64[_0x6a64('0x4e')](_0x4c9361);}})[_0x6a64('0x24')](function(_0x377c9f){if(_0x377c9f){return _0x377c9f?{'count':_0x3bca06,'rows':_0x377c9f}:null;}})[_0x6a64('0x24')](respondWithResult(_0x123930,null))[_0x6a64('0x44')](handleError(_0x123930,null));};