85b5413a391c2231378353f9920f8ba43b570108
[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 _0xd221=['../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','set','apply','reject','save','update','then','end','error','stack','name','index','map','ZohoConfiguration','rawAttributes','type','key','model','query','keys','filters','intersection','attributes','fields','order','sort','where','filter','merge','options','includeAll','findAll','rows','params','length','include','find','catch','create','body','getFields','findOne','ZohoField','pick','hasOwnProperty','nolimit','getSubjects','getDescriptions','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','crypto','jsforce','querystring','papaparse','ioredis'];(function(_0x2148da,_0x479ca2){var _0x423ff4=function(_0x436bcf){while(--_0x436bcf){_0x2148da['push'](_0x2148da['shift']());}};_0x423ff4(++_0x479ca2);}(_0xd221,0x175));var _0x1d22=function(_0x35e6bc,_0xb4fa0){_0x35e6bc=_0x35e6bc-0x0;var _0x599ccb=_0xd221[_0x35e6bc];return _0x599ccb;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x1d22('0x0'));var zipdir=require(_0x1d22('0x1'));var jsonpatch=require(_0x1d22('0x2'));var rp=require(_0x1d22('0x3'));var moment=require(_0x1d22('0x4'));var BPromise=require(_0x1d22('0x5'));var Mustache=require(_0x1d22('0x6'));var util=require('util');var path=require(_0x1d22('0x7'));var sox=require(_0x1d22('0x8'));var csv=require(_0x1d22('0x9'));var ejs=require(_0x1d22('0xa'));var fs=require('fs');var fs_extra=require(_0x1d22('0xb'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x1d22('0xc'));var jsforce=require(_0x1d22('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x1d22('0x9'));var querystring=require(_0x1d22('0xe'));var Papa=require(_0x1d22('0xf'));var Redis=require(_0x1d22('0x10'));var authService=require(_0x1d22('0x11'));var qs=require(_0x1d22('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x1d22('0x13'));var logger=require(_0x1d22('0x14'))('api');var utils=require('../../config/utils');var config=require(_0x1d22('0x15'));var licenseUtil=require(_0x1d22('0x16'));var db=require(_0x1d22('0x17'))['db'];function respondWithStatusCode(_0xa62b79,_0x1f2bdb){_0x1f2bdb=_0x1f2bdb||0xcc;return function(_0x28efbd){if(_0x28efbd){return _0xa62b79[_0x1d22('0x18')](_0x1f2bdb);}return _0xa62b79[_0x1d22('0x19')](_0x1f2bdb)['end']();};}function respondWithResult(_0x817a3,_0x161a3d){_0x161a3d=_0x161a3d||0xc8;return function(_0x1648e7){if(_0x1648e7){return _0x817a3[_0x1d22('0x19')](_0x161a3d)[_0x1d22('0x1a')](_0x1648e7);}};}function respondWithFilteredResult(_0x495208,_0x4059a9){return function(_0xd57aa){if(_0xd57aa){var _0x1c46f9=typeof _0x4059a9[_0x1d22('0x1b')]===_0x1d22('0x1c')&&typeof _0x4059a9[_0x1d22('0x1d')]===_0x1d22('0x1c');var _0x1e4573=_0xd57aa[_0x1d22('0x1e')];var _0x2bb4b3=_0x1c46f9?0x0:_0x4059a9[_0x1d22('0x1b')];var _0x4e1f7b=_0x1c46f9?_0xd57aa['count']:_0x4059a9[_0x1d22('0x1b')]+_0x4059a9[_0x1d22('0x1d')];var _0x3fac0b;if(_0x4e1f7b>=_0x1e4573){_0x4e1f7b=_0x1e4573;_0x3fac0b=0xc8;}else{_0x3fac0b=0xce;}_0x495208[_0x1d22('0x19')](_0x3fac0b);return _0x495208[_0x1d22('0x1f')]('Content-Range',_0x2bb4b3+'-'+_0x4e1f7b+'/'+_0x1e4573)[_0x1d22('0x1a')](_0xd57aa);}return null;};}function patchUpdates(_0x3b1218){return function(_0x1fd7e7){try{jsonpatch[_0x1d22('0x20')](_0x1fd7e7,_0x3b1218,!![]);}catch(_0x134c1f){return BPromise[_0x1d22('0x21')](_0x134c1f);}return _0x1fd7e7[_0x1d22('0x22')]();};}function saveUpdates(_0x2400ec,_0x2946fe){return function(_0x53d60b){if(_0x53d60b){return _0x53d60b[_0x1d22('0x23')](_0x2400ec)[_0x1d22('0x24')](function(_0x2b69ff){return _0x2b69ff;});}return null;};}function removeEntity(_0x2eee6e,_0x21f534){return function(_0x547bc4){if(_0x547bc4){return _0x547bc4['destroy']()[_0x1d22('0x24')](function(){_0x2eee6e[_0x1d22('0x19')](0xcc)[_0x1d22('0x25')]();});}};}function handleEntityNotFound(_0x1e927e,_0x4ff44f){return function(_0x26f60c){if(!_0x26f60c){_0x1e927e[_0x1d22('0x18')](0x194);}return _0x26f60c;};}function handleError(_0x132fe4,_0x3c80be){_0x3c80be=_0x3c80be||0x1f4;return function(_0x2fa67c){logger[_0x1d22('0x26')](_0x2fa67c[_0x1d22('0x27')]);if(_0x2fa67c[_0x1d22('0x28')]){delete _0x2fa67c[_0x1d22('0x28')];}_0x132fe4[_0x1d22('0x19')](_0x3c80be)['send'](_0x2fa67c);};}exports[_0x1d22('0x29')]=function(_0x41b2de,_0x195538){var _0x551bf0={},_0x8f3cf1={},_0x5879bf={'count':0x0,'rows':[]};var _0x25bb21=_[_0x1d22('0x2a')](db[_0x1d22('0x2b')][_0x1d22('0x2c')],function(_0x8c1009){return{'name':_0x8c1009['fieldName'],'type':_0x8c1009[_0x1d22('0x2d')][_0x1d22('0x2e')]};});_0x8f3cf1[_0x1d22('0x2f')]=_['map'](_0x25bb21,_0x1d22('0x28'));_0x8f3cf1[_0x1d22('0x30')]=_[_0x1d22('0x31')](_0x41b2de[_0x1d22('0x30')]);_0x8f3cf1[_0x1d22('0x32')]=_[_0x1d22('0x33')](_0x8f3cf1[_0x1d22('0x2f')],_0x8f3cf1[_0x1d22('0x30')]);_0x551bf0[_0x1d22('0x34')]=_[_0x1d22('0x33')](_0x8f3cf1['model'],qs['fields'](_0x41b2de[_0x1d22('0x30')][_0x1d22('0x35')]));_0x551bf0[_0x1d22('0x34')]=_0x551bf0[_0x1d22('0x34')]['length']?_0x551bf0[_0x1d22('0x34')]:_0x8f3cf1['model'];if(!_0x41b2de[_0x1d22('0x30')]['hasOwnProperty']('nolimit')){_0x551bf0[_0x1d22('0x1d')]=qs[_0x1d22('0x1d')](_0x41b2de[_0x1d22('0x30')]['limit']);_0x551bf0[_0x1d22('0x1b')]=qs['offset'](_0x41b2de[_0x1d22('0x30')][_0x1d22('0x1b')]);}_0x551bf0[_0x1d22('0x36')]=qs[_0x1d22('0x37')](_0x41b2de[_0x1d22('0x30')][_0x1d22('0x37')]);_0x551bf0[_0x1d22('0x38')]=qs['filters'](_['pick'](_0x41b2de[_0x1d22('0x30')],_0x8f3cf1[_0x1d22('0x32')]),_0x25bb21);if(_0x41b2de['query'][_0x1d22('0x39')]){_0x551bf0[_0x1d22('0x38')]=_[_0x1d22('0x3a')](_0x551bf0['where'],{'$or':_[_0x1d22('0x2a')](_0x25bb21,function(_0x3febbf){if(_0x3febbf[_0x1d22('0x2d')]!=='VIRTUAL'){var _0x440fca={};_0x440fca[_0x3febbf[_0x1d22('0x28')]]={'$like':'%'+_0x41b2de[_0x1d22('0x30')][_0x1d22('0x39')]+'%'};return _0x440fca;}})});}_0x551bf0=_[_0x1d22('0x3a')]({},_0x551bf0,_0x41b2de[_0x1d22('0x3b')]);var _0x241cce={'where':_0x551bf0[_0x1d22('0x38')]};return db[_0x1d22('0x2b')][_0x1d22('0x1e')](_0x241cce)[_0x1d22('0x24')](function(_0x194c19){_0x5879bf[_0x1d22('0x1e')]=_0x194c19;if(_0x41b2de[_0x1d22('0x30')][_0x1d22('0x3c')]){_0x551bf0['include']=[{'all':!![]}];}return db[_0x1d22('0x2b')][_0x1d22('0x3d')](_0x551bf0);})[_0x1d22('0x24')](function(_0x6e05b1){_0x5879bf[_0x1d22('0x3e')]=_0x6e05b1;return _0x5879bf;})['then'](respondWithFilteredResult(_0x195538,_0x551bf0))['catch'](handleError(_0x195538,null));};exports['show']=function(_0x363a2a,_0x21f749){var _0x1e362c={'raw':![],'where':{'id':_0x363a2a[_0x1d22('0x3f')]['id']}},_0x35802b={};_0x35802b[_0x1d22('0x2f')]=_[_0x1d22('0x31')](db[_0x1d22('0x2b')]['rawAttributes']);_0x35802b['query']=_[_0x1d22('0x31')](_0x363a2a[_0x1d22('0x30')]);_0x35802b[_0x1d22('0x32')]=_[_0x1d22('0x33')](_0x35802b['model'],_0x35802b[_0x1d22('0x30')]);_0x1e362c[_0x1d22('0x34')]=_[_0x1d22('0x33')](_0x35802b[_0x1d22('0x2f')],qs[_0x1d22('0x35')](_0x363a2a[_0x1d22('0x30')][_0x1d22('0x35')]));_0x1e362c[_0x1d22('0x34')]=_0x1e362c[_0x1d22('0x34')][_0x1d22('0x40')]?_0x1e362c['attributes']:_0x35802b[_0x1d22('0x2f')];if(_0x363a2a[_0x1d22('0x30')][_0x1d22('0x3c')]){_0x1e362c[_0x1d22('0x41')]=[{'all':!![]}];}_0x1e362c=_[_0x1d22('0x3a')]({},_0x1e362c,_0x363a2a['options']);return db['ZohoConfiguration'][_0x1d22('0x42')](_0x1e362c)['then'](handleEntityNotFound(_0x21f749,null))[_0x1d22('0x24')](respondWithResult(_0x21f749,null))[_0x1d22('0x43')](handleError(_0x21f749,null));};exports[_0x1d22('0x44')]=function(_0x451e67,_0x5ec28e){return db[_0x1d22('0x2b')]['create'](_0x451e67[_0x1d22('0x45')],{})[_0x1d22('0x24')](respondWithResult(_0x5ec28e,0xc9))[_0x1d22('0x43')](handleError(_0x5ec28e,null));};exports['update']=function(_0x565b72,_0xa2ea9a){if(_0x565b72[_0x1d22('0x45')]['id']){delete _0x565b72['body']['id'];}return db['ZohoConfiguration'][_0x1d22('0x42')]({'where':{'id':_0x565b72[_0x1d22('0x3f')]['id']}})[_0x1d22('0x24')](handleEntityNotFound(_0xa2ea9a,null))[_0x1d22('0x24')](saveUpdates(_0x565b72[_0x1d22('0x45')],null))[_0x1d22('0x24')](respondWithResult(_0xa2ea9a,null))['catch'](handleError(_0xa2ea9a,null));};exports['destroy']=function(_0xe3867e,_0x59accb){return db[_0x1d22('0x2b')][_0x1d22('0x42')]({'where':{'id':_0xe3867e[_0x1d22('0x3f')]['id']}})[_0x1d22('0x24')](handleEntityNotFound(_0x59accb,null))['then'](removeEntity(_0x59accb,null))['catch'](handleError(_0x59accb,null));};exports[_0x1d22('0x46')]=function(_0x258dba,_0x1e7eb2,_0x1e936a){var _0x3f4757={};var _0x5ef103={};var _0x1953c6;var _0x4f3416;return db[_0x1d22('0x2b')][_0x1d22('0x47')]({'where':{'id':_0x258dba[_0x1d22('0x3f')]['id']}})[_0x1d22('0x24')](handleEntityNotFound(_0x1e7eb2,null))[_0x1d22('0x24')](function(_0x27d353){if(_0x27d353){_0x1953c6=_0x27d353;_0x5ef103[_0x1d22('0x2f')]=_[_0x1d22('0x31')](db[_0x1d22('0x48')][_0x1d22('0x2c')]);_0x5ef103['query']=_[_0x1d22('0x31')](_0x258dba[_0x1d22('0x30')]);_0x5ef103[_0x1d22('0x32')]=_[_0x1d22('0x33')](_0x5ef103[_0x1d22('0x2f')],_0x5ef103[_0x1d22('0x30')]);_0x3f4757[_0x1d22('0x34')]=_[_0x1d22('0x33')](_0x5ef103[_0x1d22('0x2f')],qs['fields'](_0x258dba[_0x1d22('0x30')][_0x1d22('0x35')]));_0x3f4757['attributes']=_0x3f4757[_0x1d22('0x34')][_0x1d22('0x40')]?_0x3f4757[_0x1d22('0x34')]:_0x5ef103[_0x1d22('0x2f')];_0x3f4757['order']=qs['sort'](_0x258dba['query'][_0x1d22('0x37')]);_0x3f4757[_0x1d22('0x38')]=qs[_0x1d22('0x32')](_[_0x1d22('0x49')](_0x258dba['query'],_0x5ef103[_0x1d22('0x32')]));if(_0x258dba[_0x1d22('0x30')]['filter']){_0x3f4757[_0x1d22('0x38')]=_[_0x1d22('0x3a')](_0x3f4757[_0x1d22('0x38')],{'$or':_[_0x1d22('0x2a')](_0x3f4757['attributes'],function(_0x4cebcb){var _0x4074d3={};_0x4074d3[_0x4cebcb]={'$like':'%'+_0x258dba[_0x1d22('0x30')][_0x1d22('0x39')]+'%'};return _0x4074d3;})});}_0x3f4757=_[_0x1d22('0x3a')]({},_0x3f4757,_0x258dba[_0x1d22('0x3b')]);return _0x1953c6[_0x1d22('0x46')](_0x3f4757);}})[_0x1d22('0x24')](function(_0x51b028){if(_0x51b028){_0x4f3416=_0x51b028[_0x1d22('0x40')];if(!_0x258dba['query'][_0x1d22('0x4a')](_0x1d22('0x4b'))){_0x3f4757[_0x1d22('0x1d')]=qs['limit'](_0x258dba[_0x1d22('0x30')][_0x1d22('0x1d')]);_0x3f4757['offset']=qs[_0x1d22('0x1b')](_0x258dba['query']['offset']);}return _0x1953c6['getFields'](_0x3f4757);}})[_0x1d22('0x24')](function(_0x20b558){if(_0x20b558){return _0x20b558?{'count':_0x4f3416,'rows':_0x20b558}:null;}})[_0x1d22('0x24')](respondWithResult(_0x1e7eb2,null))['catch'](handleError(_0x1e7eb2,null));};exports[_0x1d22('0x4c')]=function(_0x48d3ab,_0x343df3,_0x1019f0){var _0x50bf00={};var _0x47cf6e={};var _0x295cbf;var _0x5b4a5b;return db[_0x1d22('0x2b')][_0x1d22('0x47')]({'where':{'id':_0x48d3ab[_0x1d22('0x3f')]['id']}})['then'](handleEntityNotFound(_0x343df3,null))[_0x1d22('0x24')](function(_0x4259dd){if(_0x4259dd){_0x295cbf=_0x4259dd;_0x47cf6e['model']=_[_0x1d22('0x31')](db[_0x1d22('0x48')][_0x1d22('0x2c')]);_0x47cf6e[_0x1d22('0x30')]=_[_0x1d22('0x31')](_0x48d3ab[_0x1d22('0x30')]);_0x47cf6e[_0x1d22('0x32')]=_[_0x1d22('0x33')](_0x47cf6e['model'],_0x47cf6e[_0x1d22('0x30')]);_0x50bf00[_0x1d22('0x34')]=_[_0x1d22('0x33')](_0x47cf6e[_0x1d22('0x2f')],qs[_0x1d22('0x35')](_0x48d3ab[_0x1d22('0x30')][_0x1d22('0x35')]));_0x50bf00[_0x1d22('0x34')]=_0x50bf00[_0x1d22('0x34')][_0x1d22('0x40')]?_0x50bf00[_0x1d22('0x34')]:_0x47cf6e[_0x1d22('0x2f')];_0x50bf00[_0x1d22('0x36')]=qs['sort'](_0x48d3ab[_0x1d22('0x30')][_0x1d22('0x37')]);_0x50bf00[_0x1d22('0x38')]=qs[_0x1d22('0x32')](_[_0x1d22('0x49')](_0x48d3ab[_0x1d22('0x30')],_0x47cf6e[_0x1d22('0x32')]));if(_0x48d3ab[_0x1d22('0x30')]['filter']){_0x50bf00[_0x1d22('0x38')]=_['merge'](_0x50bf00['where'],{'$or':_['map'](_0x50bf00[_0x1d22('0x34')],function(_0x167201){var _0x916105={};_0x916105[_0x167201]={'$like':'%'+_0x48d3ab[_0x1d22('0x30')][_0x1d22('0x39')]+'%'};return _0x916105;})});}_0x50bf00=_['merge']({},_0x50bf00,_0x48d3ab[_0x1d22('0x3b')]);return _0x295cbf[_0x1d22('0x4c')](_0x50bf00);}})[_0x1d22('0x24')](function(_0x5e43e9){if(_0x5e43e9){_0x5b4a5b=_0x5e43e9['length'];if(!_0x48d3ab[_0x1d22('0x30')][_0x1d22('0x4a')](_0x1d22('0x4b'))){_0x50bf00['limit']=qs['limit'](_0x48d3ab[_0x1d22('0x30')][_0x1d22('0x1d')]);_0x50bf00[_0x1d22('0x1b')]=qs[_0x1d22('0x1b')](_0x48d3ab[_0x1d22('0x30')][_0x1d22('0x1b')]);}return _0x295cbf[_0x1d22('0x4c')](_0x50bf00);}})['then'](function(_0x106985){if(_0x106985){return _0x106985?{'count':_0x5b4a5b,'rows':_0x106985}:null;}})[_0x1d22('0x24')](respondWithResult(_0x343df3,null))['catch'](handleError(_0x343df3,null));};exports['getDescriptions']=function(_0xab4ee3,_0x39e9fe,_0x2ef880){var _0x21be8e={};var _0x5c910e={};var _0x5b7c53;var _0x133e12;return db[_0x1d22('0x2b')]['findOne']({'where':{'id':_0xab4ee3[_0x1d22('0x3f')]['id']}})[_0x1d22('0x24')](handleEntityNotFound(_0x39e9fe,null))['then'](function(_0x59353d){if(_0x59353d){_0x5b7c53=_0x59353d;_0x5c910e['model']=_[_0x1d22('0x31')](db['ZohoField'][_0x1d22('0x2c')]);_0x5c910e[_0x1d22('0x30')]=_[_0x1d22('0x31')](_0xab4ee3['query']);_0x5c910e['filters']=_[_0x1d22('0x33')](_0x5c910e[_0x1d22('0x2f')],_0x5c910e[_0x1d22('0x30')]);_0x21be8e[_0x1d22('0x34')]=_[_0x1d22('0x33')](_0x5c910e[_0x1d22('0x2f')],qs['fields'](_0xab4ee3[_0x1d22('0x30')]['fields']));_0x21be8e['attributes']=_0x21be8e[_0x1d22('0x34')][_0x1d22('0x40')]?_0x21be8e[_0x1d22('0x34')]:_0x5c910e['model'];_0x21be8e[_0x1d22('0x36')]=qs[_0x1d22('0x37')](_0xab4ee3[_0x1d22('0x30')][_0x1d22('0x37')]);_0x21be8e['where']=qs[_0x1d22('0x32')](_[_0x1d22('0x49')](_0xab4ee3['query'],_0x5c910e[_0x1d22('0x32')]));if(_0xab4ee3[_0x1d22('0x30')][_0x1d22('0x39')]){_0x21be8e[_0x1d22('0x38')]=_['merge'](_0x21be8e['where'],{'$or':_[_0x1d22('0x2a')](_0x21be8e[_0x1d22('0x34')],function(_0x14eaa5){var _0x5b3830={};_0x5b3830[_0x14eaa5]={'$like':'%'+_0xab4ee3[_0x1d22('0x30')][_0x1d22('0x39')]+'%'};return _0x5b3830;})});}_0x21be8e=_[_0x1d22('0x3a')]({},_0x21be8e,_0xab4ee3[_0x1d22('0x3b')]);return _0x5b7c53[_0x1d22('0x4d')](_0x21be8e);}})[_0x1d22('0x24')](function(_0x5ce070){if(_0x5ce070){_0x133e12=_0x5ce070[_0x1d22('0x40')];if(!_0xab4ee3[_0x1d22('0x30')][_0x1d22('0x4a')](_0x1d22('0x4b'))){_0x21be8e[_0x1d22('0x1d')]=qs[_0x1d22('0x1d')](_0xab4ee3[_0x1d22('0x30')][_0x1d22('0x1d')]);_0x21be8e[_0x1d22('0x1b')]=qs['offset'](_0xab4ee3[_0x1d22('0x30')][_0x1d22('0x1b')]);}return _0x5b7c53[_0x1d22('0x4d')](_0x21be8e);}})[_0x1d22('0x24')](function(_0x509439){if(_0x509439){return _0x509439?{'count':_0x133e12,'rows':_0x509439}:null;}})[_0x1d22('0x24')](respondWithResult(_0x39e9fe,null))[_0x1d22('0x43')](handleError(_0x39e9fe,null));};