cedead939a499e442cdaf75ef8458079d67da6e8
[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 _0x484a=['../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','client','http','request','then','info','request\x20sent','debug','error','code','ZohoConfiguration,\x20%s,\x20%s','message','result','catch','sendStatus','end','status','json','count','offset','Content-Range','reject','save','update','destroy','stack','name','send','index','map','ZohoConfiguration','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','limit','order','sort','where','pick','filter','merge','includeAll','include','findAll','rows','params','options','find','create','body','getFields','findOne','ZohoField','getSubjects','nolimit','getDescriptions','hasOwnProperty','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch'];(function(_0x56f89e,_0x2a1178){var _0x37a7a6=function(_0x5dc883){while(--_0x5dc883){_0x56f89e['push'](_0x56f89e['shift']());}};_0x37a7a6(++_0x2a1178);}(_0x484a,0x14b));var _0xa484=function(_0x2f9b57,_0x2e9f88){_0x2f9b57=_0x2f9b57-0x0;var _0x88bef7=_0x484a[_0x2f9b57];return _0x88bef7;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xa484('0x0'));var rp=require(_0xa484('0x1'));var moment=require(_0xa484('0x2'));var BPromise=require(_0xa484('0x3'));var Mustache=require(_0xa484('0x4'));var util=require(_0xa484('0x5'));var path=require(_0xa484('0x6'));var sox=require('sox');var csv=require(_0xa484('0x7'));var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0xa484('0x8'));var crypto=require(_0xa484('0x9'));var jsforce=require(_0xa484('0xa'));var deskjs=require(_0xa484('0xb'));var toCsv=require(_0xa484('0x7'));var querystring=require(_0xa484('0xc'));var Papa=require('papaparse');var Redis=require(_0xa484('0xd'));var authService=require(_0xa484('0xe'));var qs=require(_0xa484('0xf'));var as=require(_0xa484('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xa484('0x11'))(_0xa484('0x12'));var utils=require('../../config/utils');var config=require(_0xa484('0x13'));var licenseUtil=require(_0xa484('0x14'));var db=require(_0xa484('0x15'))['db'];var jayson=require('jayson/promise');var client=jayson[_0xa484('0x16')][_0xa484('0x17')]({'port':0x232a});function respondWithRpcPromise(_0x5397a2,_0x54681c,_0x4611d9,_0x2cd10f){return new BPromise(function(_0xdb03aa,_0x3a9f97){var _0x9f51c7=_0x2cd10f||client;return _0x9f51c7[_0xa484('0x18')](_0x5397a2,_0x4611d9)[_0xa484('0x19')](function(_0x35521a){logger[_0xa484('0x1a')]('ZohoConfiguration,\x20%s,\x20%s',_0x54681c,_0xa484('0x1b'));logger[_0xa484('0x1c')]('ZohoConfiguration,\x20%s,\x20%s,\x20%s',_0x54681c,_0xa484('0x1b'),JSON['stringify'](_0x35521a));if(_0x35521a['error']){if(_0x35521a[_0xa484('0x1d')][_0xa484('0x1e')]===0x1f4){logger[_0xa484('0x1d')](_0xa484('0x1f'),_0x54681c,_0x35521a[_0xa484('0x1d')]['message']);return _0x3a9f97(_0x35521a[_0xa484('0x1d')][_0xa484('0x20')]);}logger[_0xa484('0x1d')](_0xa484('0x1f'),_0x54681c,_0x35521a[_0xa484('0x1d')]['message']);return _0xdb03aa(_0x35521a[_0xa484('0x1d')][_0xa484('0x20')]);}else{logger[_0xa484('0x1a')]('ZohoConfiguration,\x20%s,\x20%s',_0x54681c,'request\x20sent');_0xdb03aa(_0x35521a[_0xa484('0x21')][_0xa484('0x20')]);}})[_0xa484('0x22')](function(_0x30e1dd){logger[_0xa484('0x1d')](_0xa484('0x1f'),_0x54681c,_0x30e1dd);_0x3a9f97(_0x30e1dd);});});}function respondWithStatusCode(_0x29e0bb,_0x35676a){_0x35676a=_0x35676a||0xcc;return function(_0x2e38eb){if(_0x2e38eb){return _0x29e0bb[_0xa484('0x23')](_0x35676a);}return _0x29e0bb['status'](_0x35676a)[_0xa484('0x24')]();};}function respondWithResult(_0x5eb779,_0x1bf31a){_0x1bf31a=_0x1bf31a||0xc8;return function(_0x1cdf99){if(_0x1cdf99){return _0x5eb779[_0xa484('0x25')](_0x1bf31a)[_0xa484('0x26')](_0x1cdf99);}};}function respondWithFilteredResult(_0x1ef9c5,_0x1207fd){return function(_0x4558db){if(_0x4558db){var _0x5aff7c=_0x4558db[_0xa484('0x27')],_0x9c5dfd=_0x1207fd[_0xa484('0x28')],_0x17a1b5=_0x1207fd[_0xa484('0x28')]+_0x1207fd['limit'],_0x496c4b;if(_0x17a1b5>=_0x5aff7c){_0x17a1b5=_0x5aff7c;_0x496c4b=0xc8;}else{_0x496c4b=0xce;}_0x1ef9c5['status'](_0x496c4b);return _0x1ef9c5['set'](_0xa484('0x29'),_0x9c5dfd+'-'+_0x17a1b5+'/'+_0x5aff7c)[_0xa484('0x26')](_0x4558db);}return null;};}function patchUpdates(_0x5b68b8){return function(_0x4ce9fa){try{jsonpatch['apply'](_0x4ce9fa,_0x5b68b8,!![]);}catch(_0x278599){return BPromise[_0xa484('0x2a')](_0x278599);}return _0x4ce9fa[_0xa484('0x2b')]();};}function saveUpdates(_0x4b7ee2,_0x50eb1a){return function(_0x55be33){if(_0x55be33){return _0x55be33[_0xa484('0x2c')](_0x4b7ee2)[_0xa484('0x19')](function(_0x183684){return _0x183684;});}return null;};}function removeEntity(_0x533805,_0x23c665){return function(_0x5cf932){if(_0x5cf932){return _0x5cf932[_0xa484('0x2d')]()[_0xa484('0x19')](function(){_0x533805[_0xa484('0x25')](0xcc)[_0xa484('0x24')]();});}};}function handleEntityNotFound(_0x606957,_0x2a00cf){return function(_0x3a6c4f){if(!_0x3a6c4f){_0x606957['sendStatus'](0x194);}return _0x3a6c4f;};}function handleError(_0x38f55c,_0x45842b){_0x45842b=_0x45842b||0x1f4;return function(_0x1581d5){logger[_0xa484('0x1d')](_0x1581d5[_0xa484('0x2e')]);if(_0x1581d5[_0xa484('0x2f')]){delete _0x1581d5[_0xa484('0x2f')];}_0x38f55c['status'](_0x45842b)[_0xa484('0x30')](_0x1581d5);};}exports[_0xa484('0x31')]=function(_0x1f9762,_0x5dad32){var _0x55985e={},_0x3b723c={},_0x3658ed={'count':0x0,'rows':[]};var _0x491ec0=_[_0xa484('0x32')](db[_0xa484('0x33')][_0xa484('0x34')],function(_0x37a4cb){return{'name':_0x37a4cb[_0xa484('0x35')],'type':_0x37a4cb[_0xa484('0x36')][_0xa484('0x37')]};});_0x3b723c[_0xa484('0x38')]=_[_0xa484('0x32')](_0x491ec0,_0xa484('0x2f'));_0x3b723c[_0xa484('0x39')]=_[_0xa484('0x3a')](_0x1f9762[_0xa484('0x39')]);_0x3b723c[_0xa484('0x3b')]=_[_0xa484('0x3c')](_0x3b723c[_0xa484('0x38')],_0x3b723c[_0xa484('0x39')]);_0x55985e[_0xa484('0x3d')]=_[_0xa484('0x3c')](_0x3b723c['model'],qs[_0xa484('0x3e')](_0x1f9762[_0xa484('0x39')][_0xa484('0x3e')]));_0x55985e[_0xa484('0x3d')]=_0x55985e['attributes'][_0xa484('0x3f')]?_0x55985e[_0xa484('0x3d')]:_0x3b723c[_0xa484('0x38')];if(!_0x1f9762[_0xa484('0x39')]['hasOwnProperty']('nolimit')){_0x55985e[_0xa484('0x40')]=qs[_0xa484('0x40')](_0x1f9762[_0xa484('0x39')][_0xa484('0x40')]);_0x55985e[_0xa484('0x28')]=qs[_0xa484('0x28')](_0x1f9762['query'][_0xa484('0x28')]);}_0x55985e[_0xa484('0x41')]=qs[_0xa484('0x42')](_0x1f9762[_0xa484('0x39')][_0xa484('0x42')]);_0x55985e[_0xa484('0x43')]=qs[_0xa484('0x3b')](_[_0xa484('0x44')](_0x1f9762[_0xa484('0x39')],_0x3b723c['filters']),_0x491ec0);if(_0x1f9762[_0xa484('0x39')]['filter']){_0x55985e[_0xa484('0x43')]=_['merge'](_0x55985e['where'],{'$or':_[_0xa484('0x32')](_0x491ec0,function(_0x2ec3cb){if(_0x2ec3cb['type']!=='VIRTUAL'){var _0x23c83f={};_0x23c83f[_0x2ec3cb[_0xa484('0x2f')]]={'$like':'%'+_0x1f9762[_0xa484('0x39')][_0xa484('0x45')]+'%'};return _0x23c83f;}})});}_0x55985e=_[_0xa484('0x46')]({},_0x55985e,_0x1f9762['options']);var _0x381567={'where':_0x55985e[_0xa484('0x43')]};return db[_0xa484('0x33')][_0xa484('0x27')](_0x381567)[_0xa484('0x19')](function(_0x219fdf){_0x3658ed[_0xa484('0x27')]=_0x219fdf;if(_0x1f9762[_0xa484('0x39')][_0xa484('0x47')]){_0x55985e[_0xa484('0x48')]=[{'all':!![]}];}return db['ZohoConfiguration'][_0xa484('0x49')](_0x55985e);})['then'](function(_0x7309ce){_0x3658ed[_0xa484('0x4a')]=_0x7309ce;return _0x3658ed;})['then'](respondWithFilteredResult(_0x5dad32,_0x55985e))[_0xa484('0x22')](handleError(_0x5dad32,null));};exports['show']=function(_0x3ee080,_0x54487d){var _0x19d0e0={'raw':![],'where':{'id':_0x3ee080[_0xa484('0x4b')]['id']}},_0x20262e={};_0x20262e['model']=_[_0xa484('0x3a')](db[_0xa484('0x33')][_0xa484('0x34')]);_0x20262e['query']=_[_0xa484('0x3a')](_0x3ee080[_0xa484('0x39')]);_0x20262e[_0xa484('0x3b')]=_[_0xa484('0x3c')](_0x20262e['model'],_0x20262e[_0xa484('0x39')]);_0x19d0e0[_0xa484('0x3d')]=_[_0xa484('0x3c')](_0x20262e[_0xa484('0x38')],qs['fields'](_0x3ee080[_0xa484('0x39')][_0xa484('0x3e')]));_0x19d0e0[_0xa484('0x3d')]=_0x19d0e0[_0xa484('0x3d')][_0xa484('0x3f')]?_0x19d0e0['attributes']:_0x20262e['model'];if(_0x3ee080['query'][_0xa484('0x47')]){_0x19d0e0['include']=[{'all':!![]}];}_0x19d0e0=_['merge']({},_0x19d0e0,_0x3ee080[_0xa484('0x4c')]);return db[_0xa484('0x33')][_0xa484('0x4d')](_0x19d0e0)[_0xa484('0x19')](handleEntityNotFound(_0x54487d,null))['then'](respondWithResult(_0x54487d,null))[_0xa484('0x22')](handleError(_0x54487d,null));};exports[_0xa484('0x4e')]=function(_0x90934c,_0x28566c){return db[_0xa484('0x33')]['create'](_0x90934c['body'],{})[_0xa484('0x19')](respondWithResult(_0x28566c,0xc9))[_0xa484('0x22')](handleError(_0x28566c,null));};exports[_0xa484('0x2c')]=function(_0x4983c7,_0x581b18){if(_0x4983c7['body']['id']){delete _0x4983c7[_0xa484('0x4f')]['id'];}return db[_0xa484('0x33')][_0xa484('0x4d')]({'where':{'id':_0x4983c7[_0xa484('0x4b')]['id']}})[_0xa484('0x19')](handleEntityNotFound(_0x581b18,null))[_0xa484('0x19')](saveUpdates(_0x4983c7[_0xa484('0x4f')],null))['then'](respondWithResult(_0x581b18,null))[_0xa484('0x22')](handleError(_0x581b18,null));};exports[_0xa484('0x2d')]=function(_0x859851,_0x342e97){return db[_0xa484('0x33')][_0xa484('0x4d')]({'where':{'id':_0x859851['params']['id']}})[_0xa484('0x19')](handleEntityNotFound(_0x342e97,null))[_0xa484('0x19')](removeEntity(_0x342e97,null))['catch'](handleError(_0x342e97,null));};exports[_0xa484('0x50')]=function(_0x133418,_0x37d701,_0x205567){var _0x1677ce={};var _0x1b566d={};var _0x3aec9d;var _0x59c743;return db[_0xa484('0x33')][_0xa484('0x51')]({'where':{'id':_0x133418[_0xa484('0x4b')]['id']}})['then'](handleEntityNotFound(_0x37d701,null))[_0xa484('0x19')](function(_0x346e29){if(_0x346e29){_0x3aec9d=_0x346e29;_0x1b566d[_0xa484('0x38')]=_['keys'](db[_0xa484('0x52')][_0xa484('0x34')]);_0x1b566d[_0xa484('0x39')]=_[_0xa484('0x3a')](_0x133418[_0xa484('0x39')]);_0x1b566d['filters']=_['intersection'](_0x1b566d[_0xa484('0x38')],_0x1b566d[_0xa484('0x39')]);_0x1677ce[_0xa484('0x3d')]=_[_0xa484('0x3c')](_0x1b566d['model'],qs[_0xa484('0x3e')](_0x133418[_0xa484('0x39')]['fields']));_0x1677ce[_0xa484('0x3d')]=_0x1677ce[_0xa484('0x3d')][_0xa484('0x3f')]?_0x1677ce[_0xa484('0x3d')]:_0x1b566d[_0xa484('0x38')];_0x1677ce[_0xa484('0x41')]=qs['sort'](_0x133418['query']['sort']);_0x1677ce[_0xa484('0x43')]=qs[_0xa484('0x3b')](_[_0xa484('0x44')](_0x133418['query'],_0x1b566d['filters']));if(_0x133418['query'][_0xa484('0x45')]){_0x1677ce['where']=_['merge'](_0x1677ce[_0xa484('0x43')],{'$or':_['map'](_0x1677ce['attributes'],function(_0x45ac72){var _0x27c1c8={};_0x27c1c8[_0x45ac72]={'$like':'%'+_0x133418['query'][_0xa484('0x45')]+'%'};return _0x27c1c8;})});}_0x1677ce=_[_0xa484('0x46')]({},_0x1677ce,_0x133418[_0xa484('0x4c')]);return _0x3aec9d[_0xa484('0x50')](_0x1677ce);}})[_0xa484('0x19')](function(_0x4fea23){if(_0x4fea23){_0x59c743=_0x4fea23[_0xa484('0x3f')];if(!_0x133418[_0xa484('0x39')]['hasOwnProperty']('nolimit')){_0x1677ce[_0xa484('0x40')]=qs['limit'](_0x133418[_0xa484('0x39')]['limit']);_0x1677ce['offset']=qs['offset'](_0x133418['query']['offset']);}return _0x3aec9d[_0xa484('0x50')](_0x1677ce);}})[_0xa484('0x19')](function(_0x72ef97){if(_0x72ef97){return _0x72ef97?{'count':_0x59c743,'rows':_0x72ef97}:null;}})['then'](respondWithResult(_0x37d701,null))[_0xa484('0x22')](handleError(_0x37d701,null));};exports[_0xa484('0x53')]=function(_0x2676e7,_0x33be94,_0x38bda2){var _0x48323f={};var _0x3e386={};var _0x2adba8;var _0x1e4532;return db[_0xa484('0x33')][_0xa484('0x51')]({'where':{'id':_0x2676e7[_0xa484('0x4b')]['id']}})[_0xa484('0x19')](handleEntityNotFound(_0x33be94,null))[_0xa484('0x19')](function(_0x127346){if(_0x127346){_0x2adba8=_0x127346;_0x3e386['model']=_[_0xa484('0x3a')](db[_0xa484('0x52')]['rawAttributes']);_0x3e386['query']=_[_0xa484('0x3a')](_0x2676e7[_0xa484('0x39')]);_0x3e386[_0xa484('0x3b')]=_[_0xa484('0x3c')](_0x3e386['model'],_0x3e386[_0xa484('0x39')]);_0x48323f[_0xa484('0x3d')]=_[_0xa484('0x3c')](_0x3e386['model'],qs[_0xa484('0x3e')](_0x2676e7[_0xa484('0x39')]['fields']));_0x48323f['attributes']=_0x48323f['attributes'][_0xa484('0x3f')]?_0x48323f['attributes']:_0x3e386['model'];_0x48323f[_0xa484('0x41')]=qs[_0xa484('0x42')](_0x2676e7[_0xa484('0x39')][_0xa484('0x42')]);_0x48323f['where']=qs['filters'](_[_0xa484('0x44')](_0x2676e7['query'],_0x3e386[_0xa484('0x3b')]));if(_0x2676e7[_0xa484('0x39')]['filter']){_0x48323f[_0xa484('0x43')]=_[_0xa484('0x46')](_0x48323f[_0xa484('0x43')],{'$or':_['map'](_0x48323f[_0xa484('0x3d')],function(_0x396274){var _0x22425e={};_0x22425e[_0x396274]={'$like':'%'+_0x2676e7[_0xa484('0x39')][_0xa484('0x45')]+'%'};return _0x22425e;})});}_0x48323f=_[_0xa484('0x46')]({},_0x48323f,_0x2676e7['options']);return _0x2adba8['getSubjects'](_0x48323f);}})[_0xa484('0x19')](function(_0x43e16f){if(_0x43e16f){_0x1e4532=_0x43e16f[_0xa484('0x3f')];if(!_0x2676e7['query']['hasOwnProperty'](_0xa484('0x54'))){_0x48323f[_0xa484('0x40')]=qs[_0xa484('0x40')](_0x2676e7['query']['limit']);_0x48323f[_0xa484('0x28')]=qs[_0xa484('0x28')](_0x2676e7['query'][_0xa484('0x28')]);}return _0x2adba8[_0xa484('0x53')](_0x48323f);}})[_0xa484('0x19')](function(_0x35a696){if(_0x35a696){return _0x35a696?{'count':_0x1e4532,'rows':_0x35a696}:null;}})[_0xa484('0x19')](respondWithResult(_0x33be94,null))[_0xa484('0x22')](handleError(_0x33be94,null));};exports['getDescriptions']=function(_0x33e8f9,_0x1e086e,_0x2eb444){var _0x5c0442={};var _0x592227={};var _0xbc4803;var _0x4b402a;return db[_0xa484('0x33')][_0xa484('0x51')]({'where':{'id':_0x33e8f9[_0xa484('0x4b')]['id']}})['then'](handleEntityNotFound(_0x1e086e,null))[_0xa484('0x19')](function(_0x50b21a){if(_0x50b21a){_0xbc4803=_0x50b21a;_0x592227[_0xa484('0x38')]=_[_0xa484('0x3a')](db[_0xa484('0x52')][_0xa484('0x34')]);_0x592227[_0xa484('0x39')]=_['keys'](_0x33e8f9[_0xa484('0x39')]);_0x592227[_0xa484('0x3b')]=_[_0xa484('0x3c')](_0x592227['model'],_0x592227[_0xa484('0x39')]);_0x5c0442[_0xa484('0x3d')]=_[_0xa484('0x3c')](_0x592227[_0xa484('0x38')],qs[_0xa484('0x3e')](_0x33e8f9[_0xa484('0x39')][_0xa484('0x3e')]));_0x5c0442[_0xa484('0x3d')]=_0x5c0442[_0xa484('0x3d')][_0xa484('0x3f')]?_0x5c0442[_0xa484('0x3d')]:_0x592227[_0xa484('0x38')];_0x5c0442[_0xa484('0x41')]=qs[_0xa484('0x42')](_0x33e8f9[_0xa484('0x39')]['sort']);_0x5c0442[_0xa484('0x43')]=qs[_0xa484('0x3b')](_['pick'](_0x33e8f9[_0xa484('0x39')],_0x592227['filters']));if(_0x33e8f9[_0xa484('0x39')][_0xa484('0x45')]){_0x5c0442[_0xa484('0x43')]=_[_0xa484('0x46')](_0x5c0442[_0xa484('0x43')],{'$or':_['map'](_0x5c0442[_0xa484('0x3d')],function(_0x593e46){var _0x187318={};_0x187318[_0x593e46]={'$like':'%'+_0x33e8f9['query'][_0xa484('0x45')]+'%'};return _0x187318;})});}_0x5c0442=_[_0xa484('0x46')]({},_0x5c0442,_0x33e8f9[_0xa484('0x4c')]);return _0xbc4803[_0xa484('0x55')](_0x5c0442);}})[_0xa484('0x19')](function(_0x166475){if(_0x166475){_0x4b402a=_0x166475[_0xa484('0x3f')];if(!_0x33e8f9[_0xa484('0x39')][_0xa484('0x56')](_0xa484('0x54'))){_0x5c0442['limit']=qs['limit'](_0x33e8f9['query']['limit']);_0x5c0442[_0xa484('0x28')]=qs['offset'](_0x33e8f9['query'][_0xa484('0x28')]);}return _0xbc4803[_0xa484('0x55')](_0x5c0442);}})['then'](function(_0x5c7c6c){if(_0x5c7c6c){return _0x5c7c6c?{'count':_0x4b402a,'rows':_0x5c7c6c}:null;}})[_0xa484('0x19')](respondWithResult(_0x1e086e,null))[_0xa484('0x22')](handleError(_0x1e086e,null));};