23cb7d7ffc7ef644406f7e4370c83b8ccdae44c8
[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 _0x879d=['moment','bluebird','mustache','path','sox','lodash','squel','crypto','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','reject','update','then','destroy','error','stack','name','send','map','ZohoConfiguration','fieldName','type','key','query','keys','filters','intersection','model','fields','attributes','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','length','find','create','body','getFields','ZohoField','rawAttributes','getSubjects','findOne','getDescriptions','eml-format','zip-dir'];(function(_0x138adb,_0x193fee){var _0x1b27f2=function(_0x5e97a2){while(--_0x5e97a2){_0x138adb['push'](_0x138adb['shift']());}};_0x1b27f2(++_0x193fee);}(_0x879d,0x1de));var _0xd879=function(_0x21e95c,_0x3485b5){_0x21e95c=_0x21e95c-0x0;var _0x1bde5b=_0x879d[_0x21e95c];return _0x1bde5b;};'use strict';var emlformat=require(_0xd879('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xd879('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xd879('0x2'));var BPromise=require(_0xd879('0x3'));var Mustache=require(_0xd879('0x4'));var util=require('util');var path=require(_0xd879('0x5'));var sox=require(_0xd879('0x6'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xd879('0x7'));var squel=require(_0xd879('0x8'));var crypto=require(_0xd879('0x9'));var jsforce=require('jsforce');var deskjs=require(_0xd879('0xa'));var toCsv=require(_0xd879('0xb'));var querystring=require(_0xd879('0xc'));var Papa=require(_0xd879('0xd'));var Redis=require(_0xd879('0xe'));var authService=require(_0xd879('0xf'));var qs=require(_0xd879('0x10'));var as=require(_0xd879('0x11'));var hardwareService=require(_0xd879('0x12'));var logger=require(_0xd879('0x13'))(_0xd879('0x14'));var utils=require('../../config/utils');var config=require(_0xd879('0x15'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1cdb41,_0x2c044c){_0x2c044c=_0x2c044c||0xcc;return function(_0x534dd2){if(_0x534dd2){return _0x1cdb41[_0xd879('0x16')](_0x2c044c);}return _0x1cdb41[_0xd879('0x17')](_0x2c044c)[_0xd879('0x18')]();};}function respondWithResult(_0x559fa1,_0x535327){_0x535327=_0x535327||0xc8;return function(_0x353f6f){if(_0x353f6f){return _0x559fa1[_0xd879('0x17')](_0x535327)[_0xd879('0x19')](_0x353f6f);}};}function respondWithFilteredResult(_0x192e9a,_0xa38639){return function(_0xa68a3f){if(_0xa68a3f){var _0x59135a=typeof _0xa38639[_0xd879('0x1a')]===_0xd879('0x1b')&&typeof _0xa38639['limit']===_0xd879('0x1b');var _0x2264ec=_0xa68a3f['count'];var _0x21a9a6=_0x59135a?0x0:_0xa38639[_0xd879('0x1a')];var _0x420de8=_0x59135a?_0xa68a3f[_0xd879('0x1c')]:_0xa38639[_0xd879('0x1a')]+_0xa38639[_0xd879('0x1d')];var _0x26bb87;if(_0x420de8>=_0x2264ec){_0x420de8=_0x2264ec;_0x26bb87=0xc8;}else{_0x26bb87=0xce;}_0x192e9a[_0xd879('0x17')](_0x26bb87);return _0x192e9a[_0xd879('0x1e')](_0xd879('0x1f'),_0x21a9a6+'-'+_0x420de8+'/'+_0x2264ec)[_0xd879('0x19')](_0xa68a3f);}return null;};}function patchUpdates(_0x26fbf6){return function(_0x4c8dfa){try{jsonpatch[_0xd879('0x20')](_0x4c8dfa,_0x26fbf6,!![]);}catch(_0x34b5d2){return BPromise[_0xd879('0x21')](_0x34b5d2);}return _0x4c8dfa['save']();};}function saveUpdates(_0x84a9ca,_0x566ba4){return function(_0x10d84d){if(_0x10d84d){return _0x10d84d[_0xd879('0x22')](_0x84a9ca)[_0xd879('0x23')](function(_0x3b68be){return _0x3b68be;});}return null;};}function removeEntity(_0x36a790,_0xc242be){return function(_0x55adc9){if(_0x55adc9){return _0x55adc9[_0xd879('0x24')]()[_0xd879('0x23')](function(){_0x36a790[_0xd879('0x17')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2a1deb,_0x17176e){return function(_0xfe4ea8){if(!_0xfe4ea8){_0x2a1deb['sendStatus'](0x194);}return _0xfe4ea8;};}function handleError(_0x3c3f50,_0x471edb){_0x471edb=_0x471edb||0x1f4;return function(_0x3c8522){logger[_0xd879('0x25')](_0x3c8522[_0xd879('0x26')]);if(_0x3c8522[_0xd879('0x27')]){delete _0x3c8522[_0xd879('0x27')];}_0x3c3f50['status'](_0x471edb)[_0xd879('0x28')](_0x3c8522);};}exports['index']=function(_0x2eac04,_0x598d00){var _0x4ba0ad={},_0x6dfb61={},_0xfd99a4={'count':0x0,'rows':[]};var _0x43ab56=_[_0xd879('0x29')](db[_0xd879('0x2a')]['rawAttributes'],function(_0x242eaf){return{'name':_0x242eaf[_0xd879('0x2b')],'type':_0x242eaf[_0xd879('0x2c')][_0xd879('0x2d')]};});_0x6dfb61['model']=_['map'](_0x43ab56,_0xd879('0x27'));_0x6dfb61[_0xd879('0x2e')]=_[_0xd879('0x2f')](_0x2eac04[_0xd879('0x2e')]);_0x6dfb61[_0xd879('0x30')]=_[_0xd879('0x31')](_0x6dfb61[_0xd879('0x32')],_0x6dfb61[_0xd879('0x2e')]);_0x4ba0ad['attributes']=_[_0xd879('0x31')](_0x6dfb61[_0xd879('0x32')],qs[_0xd879('0x33')](_0x2eac04[_0xd879('0x2e')]['fields']));_0x4ba0ad['attributes']=_0x4ba0ad['attributes']['length']?_0x4ba0ad[_0xd879('0x34')]:_0x6dfb61[_0xd879('0x32')];if(!_0x2eac04[_0xd879('0x2e')][_0xd879('0x35')](_0xd879('0x36'))){_0x4ba0ad['limit']=qs[_0xd879('0x1d')](_0x2eac04[_0xd879('0x2e')][_0xd879('0x1d')]);_0x4ba0ad[_0xd879('0x1a')]=qs['offset'](_0x2eac04[_0xd879('0x2e')]['offset']);}_0x4ba0ad[_0xd879('0x37')]=qs[_0xd879('0x38')](_0x2eac04[_0xd879('0x2e')][_0xd879('0x38')]);_0x4ba0ad[_0xd879('0x39')]=qs[_0xd879('0x30')](_[_0xd879('0x3a')](_0x2eac04[_0xd879('0x2e')],_0x6dfb61[_0xd879('0x30')]),_0x43ab56);if(_0x2eac04[_0xd879('0x2e')][_0xd879('0x3b')]){_0x4ba0ad['where']=_[_0xd879('0x3c')](_0x4ba0ad[_0xd879('0x39')],{'$or':_[_0xd879('0x29')](_0x43ab56,function(_0x58940f){if(_0x58940f[_0xd879('0x2c')]!==_0xd879('0x3d')){var _0x29b4b8={};_0x29b4b8[_0x58940f['name']]={'$like':'%'+_0x2eac04[_0xd879('0x2e')][_0xd879('0x3b')]+'%'};return _0x29b4b8;}})});}_0x4ba0ad=_[_0xd879('0x3c')]({},_0x4ba0ad,_0x2eac04[_0xd879('0x3e')]);var _0x13d32c={'where':_0x4ba0ad[_0xd879('0x39')]};return db[_0xd879('0x2a')][_0xd879('0x1c')](_0x13d32c)[_0xd879('0x23')](function(_0x1ecaee){_0xfd99a4['count']=_0x1ecaee;if(_0x2eac04[_0xd879('0x2e')][_0xd879('0x3f')]){_0x4ba0ad[_0xd879('0x40')]=[{'all':!![]}];}return db[_0xd879('0x2a')][_0xd879('0x41')](_0x4ba0ad);})[_0xd879('0x23')](function(_0x3fcb0a){_0xfd99a4[_0xd879('0x42')]=_0x3fcb0a;return _0xfd99a4;})[_0xd879('0x23')](respondWithFilteredResult(_0x598d00,_0x4ba0ad))[_0xd879('0x43')](handleError(_0x598d00,null));};exports[_0xd879('0x44')]=function(_0xd6b2ff,_0x45137f){var _0x1e8221={'raw':![],'where':{'id':_0xd6b2ff[_0xd879('0x45')]['id']}},_0x2307f2={};_0x2307f2[_0xd879('0x32')]=_[_0xd879('0x2f')](db['ZohoConfiguration']['rawAttributes']);_0x2307f2['query']=_[_0xd879('0x2f')](_0xd6b2ff[_0xd879('0x2e')]);_0x2307f2[_0xd879('0x30')]=_[_0xd879('0x31')](_0x2307f2[_0xd879('0x32')],_0x2307f2[_0xd879('0x2e')]);_0x1e8221['attributes']=_[_0xd879('0x31')](_0x2307f2[_0xd879('0x32')],qs[_0xd879('0x33')](_0xd6b2ff[_0xd879('0x2e')][_0xd879('0x33')]));_0x1e8221['attributes']=_0x1e8221[_0xd879('0x34')][_0xd879('0x46')]?_0x1e8221[_0xd879('0x34')]:_0x2307f2['model'];if(_0xd6b2ff[_0xd879('0x2e')]['includeAll']){_0x1e8221['include']=[{'all':!![]}];}_0x1e8221=_['merge']({},_0x1e8221,_0xd6b2ff[_0xd879('0x3e')]);return db[_0xd879('0x2a')][_0xd879('0x47')](_0x1e8221)[_0xd879('0x23')](handleEntityNotFound(_0x45137f,null))[_0xd879('0x23')](respondWithResult(_0x45137f,null))[_0xd879('0x43')](handleError(_0x45137f,null));};exports[_0xd879('0x48')]=function(_0x9be4af,_0x19f2d3){return db[_0xd879('0x2a')][_0xd879('0x48')](_0x9be4af[_0xd879('0x49')],{})[_0xd879('0x23')](respondWithResult(_0x19f2d3,0xc9))['catch'](handleError(_0x19f2d3,null));};exports[_0xd879('0x22')]=function(_0x4c079e,_0x9e0d8e){if(_0x4c079e['body']['id']){delete _0x4c079e[_0xd879('0x49')]['id'];}return db[_0xd879('0x2a')][_0xd879('0x47')]({'where':{'id':_0x4c079e['params']['id']}})['then'](handleEntityNotFound(_0x9e0d8e,null))[_0xd879('0x23')](saveUpdates(_0x4c079e['body'],null))['then'](respondWithResult(_0x9e0d8e,null))[_0xd879('0x43')](handleError(_0x9e0d8e,null));};exports['destroy']=function(_0x48cf0b,_0x15b040){return db[_0xd879('0x2a')]['find']({'where':{'id':_0x48cf0b[_0xd879('0x45')]['id']}})['then'](handleEntityNotFound(_0x15b040,null))['then'](removeEntity(_0x15b040,null))[_0xd879('0x43')](handleError(_0x15b040,null));};exports[_0xd879('0x4a')]=function(_0x227ea3,_0x2c2355,_0x13e3ee){var _0x2e4243={};var _0x17d29c={};var _0x6bc9fd;var _0x4e61c2;return db[_0xd879('0x2a')]['findOne']({'where':{'id':_0x227ea3[_0xd879('0x45')]['id']}})[_0xd879('0x23')](handleEntityNotFound(_0x2c2355,null))[_0xd879('0x23')](function(_0x566a5b){if(_0x566a5b){_0x6bc9fd=_0x566a5b;_0x17d29c['model']=_[_0xd879('0x2f')](db[_0xd879('0x4b')][_0xd879('0x4c')]);_0x17d29c['query']=_['keys'](_0x227ea3[_0xd879('0x2e')]);_0x17d29c[_0xd879('0x30')]=_[_0xd879('0x31')](_0x17d29c['model'],_0x17d29c['query']);_0x2e4243[_0xd879('0x34')]=_[_0xd879('0x31')](_0x17d29c[_0xd879('0x32')],qs[_0xd879('0x33')](_0x227ea3[_0xd879('0x2e')][_0xd879('0x33')]));_0x2e4243[_0xd879('0x34')]=_0x2e4243[_0xd879('0x34')]['length']?_0x2e4243[_0xd879('0x34')]:_0x17d29c[_0xd879('0x32')];_0x2e4243[_0xd879('0x37')]=qs[_0xd879('0x38')](_0x227ea3[_0xd879('0x2e')][_0xd879('0x38')]);_0x2e4243['where']=qs[_0xd879('0x30')](_[_0xd879('0x3a')](_0x227ea3['query'],_0x17d29c[_0xd879('0x30')]));if(_0x227ea3[_0xd879('0x2e')][_0xd879('0x3b')]){_0x2e4243['where']=_[_0xd879('0x3c')](_0x2e4243[_0xd879('0x39')],{'$or':_['map'](_0x2e4243['attributes'],function(_0x5a9298){var _0x29103e={};_0x29103e[_0x5a9298]={'$like':'%'+_0x227ea3['query'][_0xd879('0x3b')]+'%'};return _0x29103e;})});}_0x2e4243=_[_0xd879('0x3c')]({},_0x2e4243,_0x227ea3[_0xd879('0x3e')]);return _0x6bc9fd['getFields'](_0x2e4243);}})[_0xd879('0x23')](function(_0x4e692e){if(_0x4e692e){_0x4e61c2=_0x4e692e[_0xd879('0x46')];if(!_0x227ea3[_0xd879('0x2e')][_0xd879('0x35')](_0xd879('0x36'))){_0x2e4243[_0xd879('0x1d')]=qs[_0xd879('0x1d')](_0x227ea3[_0xd879('0x2e')][_0xd879('0x1d')]);_0x2e4243[_0xd879('0x1a')]=qs[_0xd879('0x1a')](_0x227ea3[_0xd879('0x2e')][_0xd879('0x1a')]);}return _0x6bc9fd[_0xd879('0x4a')](_0x2e4243);}})['then'](function(_0x59aefa){if(_0x59aefa){return _0x59aefa?{'count':_0x4e61c2,'rows':_0x59aefa}:null;}})[_0xd879('0x23')](respondWithResult(_0x2c2355,null))[_0xd879('0x43')](handleError(_0x2c2355,null));};exports[_0xd879('0x4d')]=function(_0x3525a5,_0xa350bb,_0x28b95d){var _0x43a737={};var _0x96f33a={};var _0x7cce9b;var _0x35da62;return db[_0xd879('0x2a')][_0xd879('0x4e')]({'where':{'id':_0x3525a5[_0xd879('0x45')]['id']}})['then'](handleEntityNotFound(_0xa350bb,null))[_0xd879('0x23')](function(_0x4658a4){if(_0x4658a4){_0x7cce9b=_0x4658a4;_0x96f33a['model']=_['keys'](db[_0xd879('0x4b')][_0xd879('0x4c')]);_0x96f33a[_0xd879('0x2e')]=_[_0xd879('0x2f')](_0x3525a5[_0xd879('0x2e')]);_0x96f33a[_0xd879('0x30')]=_['intersection'](_0x96f33a['model'],_0x96f33a[_0xd879('0x2e')]);_0x43a737[_0xd879('0x34')]=_['intersection'](_0x96f33a[_0xd879('0x32')],qs['fields'](_0x3525a5[_0xd879('0x2e')]['fields']));_0x43a737[_0xd879('0x34')]=_0x43a737[_0xd879('0x34')][_0xd879('0x46')]?_0x43a737[_0xd879('0x34')]:_0x96f33a['model'];_0x43a737[_0xd879('0x37')]=qs['sort'](_0x3525a5[_0xd879('0x2e')]['sort']);_0x43a737[_0xd879('0x39')]=qs[_0xd879('0x30')](_[_0xd879('0x3a')](_0x3525a5[_0xd879('0x2e')],_0x96f33a[_0xd879('0x30')]));if(_0x3525a5['query'][_0xd879('0x3b')]){_0x43a737[_0xd879('0x39')]=_[_0xd879('0x3c')](_0x43a737[_0xd879('0x39')],{'$or':_[_0xd879('0x29')](_0x43a737[_0xd879('0x34')],function(_0x10ff93){var _0x212195={};_0x212195[_0x10ff93]={'$like':'%'+_0x3525a5[_0xd879('0x2e')]['filter']+'%'};return _0x212195;})});}_0x43a737=_['merge']({},_0x43a737,_0x3525a5[_0xd879('0x3e')]);return _0x7cce9b[_0xd879('0x4d')](_0x43a737);}})[_0xd879('0x23')](function(_0x3d146f){if(_0x3d146f){_0x35da62=_0x3d146f[_0xd879('0x46')];if(!_0x3525a5[_0xd879('0x2e')][_0xd879('0x35')](_0xd879('0x36'))){_0x43a737['limit']=qs[_0xd879('0x1d')](_0x3525a5[_0xd879('0x2e')][_0xd879('0x1d')]);_0x43a737[_0xd879('0x1a')]=qs[_0xd879('0x1a')](_0x3525a5['query'][_0xd879('0x1a')]);}return _0x7cce9b[_0xd879('0x4d')](_0x43a737);}})[_0xd879('0x23')](function(_0x4a6e3f){if(_0x4a6e3f){return _0x4a6e3f?{'count':_0x35da62,'rows':_0x4a6e3f}:null;}})[_0xd879('0x23')](respondWithResult(_0xa350bb,null))[_0xd879('0x43')](handleError(_0xa350bb,null));};exports[_0xd879('0x4f')]=function(_0x41ded5,_0x3dcad7,_0x2ada34){var _0x4a5c57={};var _0x34d75b={};var _0x48e065;var _0x2c6d76;return db[_0xd879('0x2a')][_0xd879('0x4e')]({'where':{'id':_0x41ded5[_0xd879('0x45')]['id']}})[_0xd879('0x23')](handleEntityNotFound(_0x3dcad7,null))[_0xd879('0x23')](function(_0x3ddb28){if(_0x3ddb28){_0x48e065=_0x3ddb28;_0x34d75b['model']=_[_0xd879('0x2f')](db[_0xd879('0x4b')]['rawAttributes']);_0x34d75b[_0xd879('0x2e')]=_[_0xd879('0x2f')](_0x41ded5['query']);_0x34d75b[_0xd879('0x30')]=_['intersection'](_0x34d75b[_0xd879('0x32')],_0x34d75b['query']);_0x4a5c57[_0xd879('0x34')]=_[_0xd879('0x31')](_0x34d75b[_0xd879('0x32')],qs[_0xd879('0x33')](_0x41ded5['query'][_0xd879('0x33')]));_0x4a5c57['attributes']=_0x4a5c57[_0xd879('0x34')]['length']?_0x4a5c57[_0xd879('0x34')]:_0x34d75b['model'];_0x4a5c57[_0xd879('0x37')]=qs[_0xd879('0x38')](_0x41ded5[_0xd879('0x2e')][_0xd879('0x38')]);_0x4a5c57['where']=qs['filters'](_[_0xd879('0x3a')](_0x41ded5[_0xd879('0x2e')],_0x34d75b[_0xd879('0x30')]));if(_0x41ded5[_0xd879('0x2e')][_0xd879('0x3b')]){_0x4a5c57[_0xd879('0x39')]=_[_0xd879('0x3c')](_0x4a5c57[_0xd879('0x39')],{'$or':_[_0xd879('0x29')](_0x4a5c57['attributes'],function(_0x2350da){var _0x1de817={};_0x1de817[_0x2350da]={'$like':'%'+_0x41ded5[_0xd879('0x2e')]['filter']+'%'};return _0x1de817;})});}_0x4a5c57=_[_0xd879('0x3c')]({},_0x4a5c57,_0x41ded5[_0xd879('0x3e')]);return _0x48e065[_0xd879('0x4f')](_0x4a5c57);}})['then'](function(_0x5839c3){if(_0x5839c3){_0x2c6d76=_0x5839c3[_0xd879('0x46')];if(!_0x41ded5[_0xd879('0x2e')][_0xd879('0x35')]('nolimit')){_0x4a5c57[_0xd879('0x1d')]=qs[_0xd879('0x1d')](_0x41ded5[_0xd879('0x2e')][_0xd879('0x1d')]);_0x4a5c57['offset']=qs[_0xd879('0x1a')](_0x41ded5['query']['offset']);}return _0x48e065[_0xd879('0x4f')](_0x4a5c57);}})[_0xd879('0x23')](function(_0x1801c8){if(_0x1801c8){return _0x1801c8?{'count':_0x2c6d76,'rows':_0x1801c8}:null;}})[_0xd879('0x23')](respondWithResult(_0x3dcad7,null))['catch'](handleError(_0x3dcad7,null));};