f5e8b31b62b9c727bac2d8ca78f8b8ee2871db09
[motion2.git] / server / api / intZohoConfiguration / intZohoConfiguration.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 _0x5913=['getFields','findOne','ZohoField','pick','nolimit','getSubjects','getDescriptions','eml-format','zip-dir','fast-json-patch','moment','bluebird','mustache','path','sox','to-csv','fs-extra','squel','crypto','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','destroy','then','stack','index','ZohoConfiguration','rawAttributes','model','name','query','keys','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','filters','filter','merge','map','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','find','create','update','body','params'];(function(_0x2453e0,_0x543bed){var _0x5c659a=function(_0x429422){while(--_0x429422){_0x2453e0['push'](_0x2453e0['shift']());}};_0x5c659a(++_0x543bed);}(_0x5913,0xa5));var _0x3591=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x5913[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0x3591('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x3591('0x1'));var jsonpatch=require(_0x3591('0x2'));var rp=require('request-promise');var moment=require(_0x3591('0x3'));var BPromise=require(_0x3591('0x4'));var Mustache=require(_0x3591('0x5'));var util=require('util');var path=require(_0x3591('0x6'));var sox=require(_0x3591('0x7'));var csv=require(_0x3591('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x3591('0x9'));var _=require('lodash');var squel=require(_0x3591('0xa'));var crypto=require(_0x3591('0xb'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x3591('0x8'));var querystring=require(_0x3591('0xc'));var Papa=require('papaparse');var Redis=require(_0x3591('0xd'));var authService=require(_0x3591('0xe'));var qs=require(_0x3591('0xf'));var as=require(_0x3591('0x10'));var hardwareService=require(_0x3591('0x11'));var logger=require(_0x3591('0x12'))(_0x3591('0x13'));var utils=require(_0x3591('0x14'));var config=require(_0x3591('0x15'));var licenseUtil=require(_0x3591('0x16'));var db=require(_0x3591('0x17'))['db'];function respondWithStatusCode(_0x256fe6,_0x2a1685){_0x2a1685=_0x2a1685||0xcc;return function(_0x296a56){if(_0x296a56){return _0x256fe6[_0x3591('0x18')](_0x2a1685);}return _0x256fe6[_0x3591('0x19')](_0x2a1685)[_0x3591('0x1a')]();};}function respondWithResult(_0x205cae,_0x38d593){_0x38d593=_0x38d593||0xc8;return function(_0x12f876){if(_0x12f876){return _0x205cae[_0x3591('0x19')](_0x38d593)[_0x3591('0x1b')](_0x12f876);}};}function respondWithFilteredResult(_0x5f12d4,_0x20a194){return function(_0x9d433b){if(_0x9d433b){var _0x132697=typeof _0x20a194[_0x3591('0x1c')]===_0x3591('0x1d')&&typeof _0x20a194['limit']==='undefined';var _0xb9969=_0x9d433b[_0x3591('0x1e')];var _0x7571f4=_0x132697?0x0:_0x20a194[_0x3591('0x1c')];var _0x2d6094=_0x132697?_0x9d433b[_0x3591('0x1e')]:_0x20a194[_0x3591('0x1c')]+_0x20a194[_0x3591('0x1f')];var _0x1c42bd;if(_0x2d6094>=_0xb9969){_0x2d6094=_0xb9969;_0x1c42bd=0xc8;}else{_0x1c42bd=0xce;}_0x5f12d4[_0x3591('0x19')](_0x1c42bd);return _0x5f12d4[_0x3591('0x20')](_0x3591('0x21'),_0x7571f4+'-'+_0x2d6094+'/'+_0xb9969)['json'](_0x9d433b);}return null;};}function patchUpdates(_0x885c17){return function(_0x38a3c5){try{jsonpatch[_0x3591('0x22')](_0x38a3c5,_0x885c17,!![]);}catch(_0x2e1e60){return BPromise[_0x3591('0x23')](_0x2e1e60);}return _0x38a3c5[_0x3591('0x24')]();};}function saveUpdates(_0x25ea46,_0x33ecae){return function(_0x49d318){if(_0x49d318){return _0x49d318['update'](_0x25ea46)['then'](function(_0x264f2e){return _0x264f2e;});}return null;};}function removeEntity(_0x49c7dc,_0x46e96a){return function(_0x5cd739){if(_0x5cd739){return _0x5cd739[_0x3591('0x25')]()[_0x3591('0x26')](function(){_0x49c7dc[_0x3591('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5a3c1d,_0x20b387){return function(_0x216d73){if(!_0x216d73){_0x5a3c1d['sendStatus'](0x194);}return _0x216d73;};}function handleError(_0x47934c,_0x40f918){_0x40f918=_0x40f918||0x1f4;return function(_0xfd1a02){logger['error'](_0xfd1a02[_0x3591('0x27')]);if(_0xfd1a02['name']){delete _0xfd1a02['name'];}_0x47934c[_0x3591('0x19')](_0x40f918)['send'](_0xfd1a02);};}exports[_0x3591('0x28')]=function(_0x28b6e5,_0x2980d9){var _0x452277={},_0x387f32={},_0x5461d6={'count':0x0,'rows':[]};var _0x6c7ef7=_['map'](db[_0x3591('0x29')][_0x3591('0x2a')],function(_0x7cc4f1){return{'name':_0x7cc4f1['fieldName'],'type':_0x7cc4f1['type']['key']};});_0x387f32[_0x3591('0x2b')]=_['map'](_0x6c7ef7,_0x3591('0x2c'));_0x387f32[_0x3591('0x2d')]=_[_0x3591('0x2e')](_0x28b6e5[_0x3591('0x2d')]);_0x387f32['filters']=_[_0x3591('0x2f')](_0x387f32[_0x3591('0x2b')],_0x387f32[_0x3591('0x2d')]);_0x452277[_0x3591('0x30')]=_[_0x3591('0x2f')](_0x387f32[_0x3591('0x2b')],qs['fields'](_0x28b6e5[_0x3591('0x2d')][_0x3591('0x31')]));_0x452277[_0x3591('0x30')]=_0x452277[_0x3591('0x30')][_0x3591('0x32')]?_0x452277[_0x3591('0x30')]:_0x387f32[_0x3591('0x2b')];if(!_0x28b6e5[_0x3591('0x2d')][_0x3591('0x33')]('nolimit')){_0x452277[_0x3591('0x1f')]=qs[_0x3591('0x1f')](_0x28b6e5[_0x3591('0x2d')]['limit']);_0x452277[_0x3591('0x1c')]=qs['offset'](_0x28b6e5[_0x3591('0x2d')][_0x3591('0x1c')]);}_0x452277[_0x3591('0x34')]=qs[_0x3591('0x35')](_0x28b6e5[_0x3591('0x2d')][_0x3591('0x35')]);_0x452277[_0x3591('0x36')]=qs[_0x3591('0x37')](_['pick'](_0x28b6e5[_0x3591('0x2d')],_0x387f32['filters']),_0x6c7ef7);if(_0x28b6e5[_0x3591('0x2d')][_0x3591('0x38')]){_0x452277['where']=_[_0x3591('0x39')](_0x452277[_0x3591('0x36')],{'$or':_[_0x3591('0x3a')](_0x6c7ef7,function(_0x58ec28){if(_0x58ec28['type']!==_0x3591('0x3b')){var _0x2e5477={};_0x2e5477[_0x58ec28[_0x3591('0x2c')]]={'$like':'%'+_0x28b6e5[_0x3591('0x2d')][_0x3591('0x38')]+'%'};return _0x2e5477;}})});}_0x452277=_[_0x3591('0x39')]({},_0x452277,_0x28b6e5[_0x3591('0x3c')]);var _0x44f90c={'where':_0x452277['where']};return db[_0x3591('0x29')][_0x3591('0x1e')](_0x44f90c)[_0x3591('0x26')](function(_0x3039b4){_0x5461d6[_0x3591('0x1e')]=_0x3039b4;if(_0x28b6e5['query'][_0x3591('0x3d')]){_0x452277[_0x3591('0x3e')]=[{'all':!![]}];}return db[_0x3591('0x29')][_0x3591('0x3f')](_0x452277);})[_0x3591('0x26')](function(_0x403dc3){_0x5461d6[_0x3591('0x40')]=_0x403dc3;return _0x5461d6;})['then'](respondWithFilteredResult(_0x2980d9,_0x452277))[_0x3591('0x41')](handleError(_0x2980d9,null));};exports[_0x3591('0x42')]=function(_0x5b7a9c,_0x4f676a){var _0x5f3cb2={'raw':![],'where':{'id':_0x5b7a9c['params']['id']}},_0xb17b63={};_0xb17b63['model']=_[_0x3591('0x2e')](db[_0x3591('0x29')][_0x3591('0x2a')]);_0xb17b63[_0x3591('0x2d')]=_[_0x3591('0x2e')](_0x5b7a9c[_0x3591('0x2d')]);_0xb17b63[_0x3591('0x37')]=_['intersection'](_0xb17b63['model'],_0xb17b63[_0x3591('0x2d')]);_0x5f3cb2[_0x3591('0x30')]=_[_0x3591('0x2f')](_0xb17b63[_0x3591('0x2b')],qs[_0x3591('0x31')](_0x5b7a9c[_0x3591('0x2d')]['fields']));_0x5f3cb2['attributes']=_0x5f3cb2[_0x3591('0x30')]['length']?_0x5f3cb2[_0x3591('0x30')]:_0xb17b63['model'];if(_0x5b7a9c[_0x3591('0x2d')][_0x3591('0x3d')]){_0x5f3cb2[_0x3591('0x3e')]=[{'all':!![]}];}_0x5f3cb2=_[_0x3591('0x39')]({},_0x5f3cb2,_0x5b7a9c[_0x3591('0x3c')]);return db[_0x3591('0x29')][_0x3591('0x43')](_0x5f3cb2)[_0x3591('0x26')](handleEntityNotFound(_0x4f676a,null))['then'](respondWithResult(_0x4f676a,null))[_0x3591('0x41')](handleError(_0x4f676a,null));};exports[_0x3591('0x44')]=function(_0x3d4027,_0x190a29){return db[_0x3591('0x29')]['create'](_0x3d4027['body'],{})[_0x3591('0x26')](respondWithResult(_0x190a29,0xc9))['catch'](handleError(_0x190a29,null));};exports[_0x3591('0x45')]=function(_0x5cee97,_0x4a951e){if(_0x5cee97['body']['id']){delete _0x5cee97[_0x3591('0x46')]['id'];}return db[_0x3591('0x29')]['find']({'where':{'id':_0x5cee97[_0x3591('0x47')]['id']}})[_0x3591('0x26')](handleEntityNotFound(_0x4a951e,null))[_0x3591('0x26')](saveUpdates(_0x5cee97['body'],null))[_0x3591('0x26')](respondWithResult(_0x4a951e,null))[_0x3591('0x41')](handleError(_0x4a951e,null));};exports[_0x3591('0x25')]=function(_0x400522,_0x57a5db){return db[_0x3591('0x29')][_0x3591('0x43')]({'where':{'id':_0x400522[_0x3591('0x47')]['id']}})[_0x3591('0x26')](handleEntityNotFound(_0x57a5db,null))[_0x3591('0x26')](removeEntity(_0x57a5db,null))[_0x3591('0x41')](handleError(_0x57a5db,null));};exports[_0x3591('0x48')]=function(_0x4d681d,_0x47d24b,_0x1f8b09){var _0x5d4d59={};var _0x21894f={};var _0x27b6eb;var _0x39247b;return db['ZohoConfiguration'][_0x3591('0x49')]({'where':{'id':_0x4d681d[_0x3591('0x47')]['id']}})['then'](handleEntityNotFound(_0x47d24b,null))[_0x3591('0x26')](function(_0x4ca48b){if(_0x4ca48b){_0x27b6eb=_0x4ca48b;_0x21894f['model']=_[_0x3591('0x2e')](db[_0x3591('0x4a')][_0x3591('0x2a')]);_0x21894f[_0x3591('0x2d')]=_[_0x3591('0x2e')](_0x4d681d[_0x3591('0x2d')]);_0x21894f[_0x3591('0x37')]=_[_0x3591('0x2f')](_0x21894f[_0x3591('0x2b')],_0x21894f[_0x3591('0x2d')]);_0x5d4d59[_0x3591('0x30')]=_[_0x3591('0x2f')](_0x21894f[_0x3591('0x2b')],qs[_0x3591('0x31')](_0x4d681d[_0x3591('0x2d')][_0x3591('0x31')]));_0x5d4d59['attributes']=_0x5d4d59['attributes'][_0x3591('0x32')]?_0x5d4d59[_0x3591('0x30')]:_0x21894f[_0x3591('0x2b')];_0x5d4d59[_0x3591('0x34')]=qs[_0x3591('0x35')](_0x4d681d[_0x3591('0x2d')][_0x3591('0x35')]);_0x5d4d59[_0x3591('0x36')]=qs[_0x3591('0x37')](_[_0x3591('0x4b')](_0x4d681d['query'],_0x21894f[_0x3591('0x37')]));if(_0x4d681d['query'][_0x3591('0x38')]){_0x5d4d59[_0x3591('0x36')]=_['merge'](_0x5d4d59[_0x3591('0x36')],{'$or':_['map'](_0x5d4d59[_0x3591('0x30')],function(_0x3f8b06){var _0x3a2ac3={};_0x3a2ac3[_0x3f8b06]={'$like':'%'+_0x4d681d[_0x3591('0x2d')]['filter']+'%'};return _0x3a2ac3;})});}_0x5d4d59=_[_0x3591('0x39')]({},_0x5d4d59,_0x4d681d[_0x3591('0x3c')]);return _0x27b6eb[_0x3591('0x48')](_0x5d4d59);}})[_0x3591('0x26')](function(_0x3bd479){if(_0x3bd479){_0x39247b=_0x3bd479[_0x3591('0x32')];if(!_0x4d681d['query']['hasOwnProperty'](_0x3591('0x4c'))){_0x5d4d59[_0x3591('0x1f')]=qs[_0x3591('0x1f')](_0x4d681d[_0x3591('0x2d')][_0x3591('0x1f')]);_0x5d4d59[_0x3591('0x1c')]=qs[_0x3591('0x1c')](_0x4d681d[_0x3591('0x2d')][_0x3591('0x1c')]);}return _0x27b6eb[_0x3591('0x48')](_0x5d4d59);}})['then'](function(_0x550932){if(_0x550932){return _0x550932?{'count':_0x39247b,'rows':_0x550932}:null;}})[_0x3591('0x26')](respondWithResult(_0x47d24b,null))[_0x3591('0x41')](handleError(_0x47d24b,null));};exports[_0x3591('0x4d')]=function(_0x38fa7a,_0x49327f,_0x288cec){var _0x17c6ef={};var _0x2eee11={};var _0x2abf3c;var _0x47df23;return db[_0x3591('0x29')][_0x3591('0x49')]({'where':{'id':_0x38fa7a[_0x3591('0x47')]['id']}})['then'](handleEntityNotFound(_0x49327f,null))[_0x3591('0x26')](function(_0x53a6b5){if(_0x53a6b5){_0x2abf3c=_0x53a6b5;_0x2eee11[_0x3591('0x2b')]=_[_0x3591('0x2e')](db['ZohoField'][_0x3591('0x2a')]);_0x2eee11[_0x3591('0x2d')]=_[_0x3591('0x2e')](_0x38fa7a[_0x3591('0x2d')]);_0x2eee11[_0x3591('0x37')]=_['intersection'](_0x2eee11['model'],_0x2eee11['query']);_0x17c6ef[_0x3591('0x30')]=_['intersection'](_0x2eee11[_0x3591('0x2b')],qs[_0x3591('0x31')](_0x38fa7a[_0x3591('0x2d')]['fields']));_0x17c6ef[_0x3591('0x30')]=_0x17c6ef[_0x3591('0x30')][_0x3591('0x32')]?_0x17c6ef[_0x3591('0x30')]:_0x2eee11[_0x3591('0x2b')];_0x17c6ef[_0x3591('0x34')]=qs[_0x3591('0x35')](_0x38fa7a[_0x3591('0x2d')][_0x3591('0x35')]);_0x17c6ef[_0x3591('0x36')]=qs['filters'](_[_0x3591('0x4b')](_0x38fa7a[_0x3591('0x2d')],_0x2eee11[_0x3591('0x37')]));if(_0x38fa7a[_0x3591('0x2d')][_0x3591('0x38')]){_0x17c6ef[_0x3591('0x36')]=_[_0x3591('0x39')](_0x17c6ef[_0x3591('0x36')],{'$or':_[_0x3591('0x3a')](_0x17c6ef[_0x3591('0x30')],function(_0x50e74e){var _0x576947={};_0x576947[_0x50e74e]={'$like':'%'+_0x38fa7a[_0x3591('0x2d')][_0x3591('0x38')]+'%'};return _0x576947;})});}_0x17c6ef=_['merge']({},_0x17c6ef,_0x38fa7a['options']);return _0x2abf3c['getSubjects'](_0x17c6ef);}})[_0x3591('0x26')](function(_0x69259e){if(_0x69259e){_0x47df23=_0x69259e[_0x3591('0x32')];if(!_0x38fa7a['query'][_0x3591('0x33')](_0x3591('0x4c'))){_0x17c6ef[_0x3591('0x1f')]=qs[_0x3591('0x1f')](_0x38fa7a['query'][_0x3591('0x1f')]);_0x17c6ef['offset']=qs[_0x3591('0x1c')](_0x38fa7a['query'][_0x3591('0x1c')]);}return _0x2abf3c[_0x3591('0x4d')](_0x17c6ef);}})[_0x3591('0x26')](function(_0x418a7a){if(_0x418a7a){return _0x418a7a?{'count':_0x47df23,'rows':_0x418a7a}:null;}})['then'](respondWithResult(_0x49327f,null))[_0x3591('0x41')](handleError(_0x49327f,null));};exports[_0x3591('0x4e')]=function(_0x2885ed,_0x47d05a,_0x138842){var _0x202d98={};var _0x44c8a7={};var _0xff790;var _0x3af08f;return db['ZohoConfiguration']['findOne']({'where':{'id':_0x2885ed[_0x3591('0x47')]['id']}})['then'](handleEntityNotFound(_0x47d05a,null))['then'](function(_0x1e2e32){if(_0x1e2e32){_0xff790=_0x1e2e32;_0x44c8a7['model']=_[_0x3591('0x2e')](db['ZohoField'][_0x3591('0x2a')]);_0x44c8a7[_0x3591('0x2d')]=_['keys'](_0x2885ed[_0x3591('0x2d')]);_0x44c8a7[_0x3591('0x37')]=_[_0x3591('0x2f')](_0x44c8a7[_0x3591('0x2b')],_0x44c8a7['query']);_0x202d98[_0x3591('0x30')]=_[_0x3591('0x2f')](_0x44c8a7[_0x3591('0x2b')],qs[_0x3591('0x31')](_0x2885ed[_0x3591('0x2d')][_0x3591('0x31')]));_0x202d98[_0x3591('0x30')]=_0x202d98[_0x3591('0x30')][_0x3591('0x32')]?_0x202d98[_0x3591('0x30')]:_0x44c8a7[_0x3591('0x2b')];_0x202d98[_0x3591('0x34')]=qs[_0x3591('0x35')](_0x2885ed[_0x3591('0x2d')][_0x3591('0x35')]);_0x202d98[_0x3591('0x36')]=qs[_0x3591('0x37')](_[_0x3591('0x4b')](_0x2885ed[_0x3591('0x2d')],_0x44c8a7[_0x3591('0x37')]));if(_0x2885ed[_0x3591('0x2d')][_0x3591('0x38')]){_0x202d98[_0x3591('0x36')]=_[_0x3591('0x39')](_0x202d98[_0x3591('0x36')],{'$or':_[_0x3591('0x3a')](_0x202d98[_0x3591('0x30')],function(_0x309fe4){var _0x17a051={};_0x17a051[_0x309fe4]={'$like':'%'+_0x2885ed[_0x3591('0x2d')][_0x3591('0x38')]+'%'};return _0x17a051;})});}_0x202d98=_[_0x3591('0x39')]({},_0x202d98,_0x2885ed[_0x3591('0x3c')]);return _0xff790['getDescriptions'](_0x202d98);}})[_0x3591('0x26')](function(_0x5202c2){if(_0x5202c2){_0x3af08f=_0x5202c2[_0x3591('0x32')];if(!_0x2885ed['query'][_0x3591('0x33')](_0x3591('0x4c'))){_0x202d98[_0x3591('0x1f')]=qs[_0x3591('0x1f')](_0x2885ed[_0x3591('0x2d')][_0x3591('0x1f')]);_0x202d98[_0x3591('0x1c')]=qs['offset'](_0x2885ed[_0x3591('0x2d')][_0x3591('0x1c')]);}return _0xff790[_0x3591('0x4e')](_0x202d98);}})[_0x3591('0x26')](function(_0x4883a1){if(_0x4883a1){return _0x4883a1?{'count':_0x3af08f,'rows':_0x4883a1}:null;}})['then'](respondWithResult(_0x47d05a,null))[_0x3591('0x41')](handleError(_0x47d05a,null));};