9627d769423b7442e065d0bb7bbcf3bcc9ceca7e
[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 _0xcfa1=['query','keys','intersection','attributes','fields','hasOwnProperty','order','sort','where','filters','pick','merge','map','VIRTUAL','options','includeAll','findAll','catch','params','rawAttributes','length','include','find','create','body','getFields','findOne','ZohoField','filter','nolimit','getSubjects','getDescriptions','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','count','limit','set','apply','reject','save','update','then','destroy','end','error','stack','name','send','ZohoConfiguration','fieldName','type','key','model'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xcfa1,0x170));var _0x1cfa=function(_0x2dafbe,_0x5d04de){_0x2dafbe=_0x2dafbe-0x0;var _0x58a45a=_0xcfa1[_0x2dafbe];return _0x58a45a;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x1cfa('0x0'));var zipdir=require(_0x1cfa('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x1cfa('0x2'));var moment=require(_0x1cfa('0x3'));var BPromise=require(_0x1cfa('0x4'));var Mustache=require(_0x1cfa('0x5'));var util=require(_0x1cfa('0x6'));var path=require(_0x1cfa('0x7'));var sox=require('sox');var csv=require(_0x1cfa('0x8'));var ejs=require(_0x1cfa('0x9'));var fs=require('fs');var fs_extra=require(_0x1cfa('0xa'));var _=require(_0x1cfa('0xb'));var squel=require(_0x1cfa('0xc'));var crypto=require(_0x1cfa('0xd'));var jsforce=require(_0x1cfa('0xe'));var deskjs=require(_0x1cfa('0xf'));var toCsv=require(_0x1cfa('0x8'));var querystring=require(_0x1cfa('0x10'));var Papa=require(_0x1cfa('0x11'));var Redis=require(_0x1cfa('0x12'));var authService=require(_0x1cfa('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0x1cfa('0x14'));var hardwareService=require(_0x1cfa('0x15'));var logger=require(_0x1cfa('0x16'))(_0x1cfa('0x17'));var utils=require(_0x1cfa('0x18'));var config=require(_0x1cfa('0x19'));var licenseUtil=require(_0x1cfa('0x1a'));var db=require(_0x1cfa('0x1b'))['db'];function respondWithStatusCode(_0x11edd0,_0x1c8ed4){_0x1c8ed4=_0x1c8ed4||0xcc;return function(_0x3665f4){if(_0x3665f4){return _0x11edd0[_0x1cfa('0x1c')](_0x1c8ed4);}return _0x11edd0[_0x1cfa('0x1d')](_0x1c8ed4)['end']();};}function respondWithResult(_0x2d3afe,_0x50c111){_0x50c111=_0x50c111||0xc8;return function(_0x5bd58f){if(_0x5bd58f){return _0x2d3afe[_0x1cfa('0x1d')](_0x50c111)[_0x1cfa('0x1e')](_0x5bd58f);}};}function respondWithFilteredResult(_0x504367,_0x942add){return function(_0x1daf05){if(_0x1daf05){var _0x118b58=typeof _0x942add[_0x1cfa('0x1f')]==='undefined'&&typeof _0x942add['limit']===_0x1cfa('0x20');var _0x2961e4=_0x1daf05[_0x1cfa('0x21')];var _0x5d263a=_0x118b58?0x0:_0x942add[_0x1cfa('0x1f')];var _0x46f42a=_0x118b58?_0x1daf05[_0x1cfa('0x21')]:_0x942add[_0x1cfa('0x1f')]+_0x942add[_0x1cfa('0x22')];var _0xd37a8b;if(_0x46f42a>=_0x2961e4){_0x46f42a=_0x2961e4;_0xd37a8b=0xc8;}else{_0xd37a8b=0xce;}_0x504367[_0x1cfa('0x1d')](_0xd37a8b);return _0x504367[_0x1cfa('0x23')]('Content-Range',_0x5d263a+'-'+_0x46f42a+'/'+_0x2961e4)['json'](_0x1daf05);}return null;};}function patchUpdates(_0x38bc3e){return function(_0x3023c0){try{jsonpatch[_0x1cfa('0x24')](_0x3023c0,_0x38bc3e,!![]);}catch(_0x23b0d4){return BPromise[_0x1cfa('0x25')](_0x23b0d4);}return _0x3023c0[_0x1cfa('0x26')]();};}function saveUpdates(_0x4ace49,_0x5196b0){return function(_0x3ab5e8){if(_0x3ab5e8){return _0x3ab5e8[_0x1cfa('0x27')](_0x4ace49)[_0x1cfa('0x28')](function(_0x18da9d){return _0x18da9d;});}return null;};}function removeEntity(_0x34607f,_0x52a34f){return function(_0x3f517c){if(_0x3f517c){return _0x3f517c[_0x1cfa('0x29')]()[_0x1cfa('0x28')](function(){_0x34607f[_0x1cfa('0x1d')](0xcc)[_0x1cfa('0x2a')]();});}};}function handleEntityNotFound(_0x5aa03f,_0xb8304c){return function(_0x5dedf3){if(!_0x5dedf3){_0x5aa03f['sendStatus'](0x194);}return _0x5dedf3;};}function handleError(_0x507b19,_0x30d0f9){_0x30d0f9=_0x30d0f9||0x1f4;return function(_0x494fc9){logger[_0x1cfa('0x2b')](_0x494fc9[_0x1cfa('0x2c')]);if(_0x494fc9[_0x1cfa('0x2d')]){delete _0x494fc9[_0x1cfa('0x2d')];}_0x507b19[_0x1cfa('0x1d')](_0x30d0f9)[_0x1cfa('0x2e')](_0x494fc9);};}exports['index']=function(_0x57bb8c,_0x17dc97){var _0x2b5773={},_0xbc051f={},_0x218e9c={'count':0x0,'rows':[]};var _0xbad388=_['map'](db[_0x1cfa('0x2f')]['rawAttributes'],function(_0x30549e){return{'name':_0x30549e[_0x1cfa('0x30')],'type':_0x30549e[_0x1cfa('0x31')][_0x1cfa('0x32')]};});_0xbc051f[_0x1cfa('0x33')]=_['map'](_0xbad388,_0x1cfa('0x2d'));_0xbc051f[_0x1cfa('0x34')]=_[_0x1cfa('0x35')](_0x57bb8c[_0x1cfa('0x34')]);_0xbc051f['filters']=_[_0x1cfa('0x36')](_0xbc051f[_0x1cfa('0x33')],_0xbc051f['query']);_0x2b5773[_0x1cfa('0x37')]=_['intersection'](_0xbc051f['model'],qs['fields'](_0x57bb8c[_0x1cfa('0x34')][_0x1cfa('0x38')]));_0x2b5773[_0x1cfa('0x37')]=_0x2b5773[_0x1cfa('0x37')]['length']?_0x2b5773['attributes']:_0xbc051f[_0x1cfa('0x33')];if(!_0x57bb8c[_0x1cfa('0x34')][_0x1cfa('0x39')]('nolimit')){_0x2b5773[_0x1cfa('0x22')]=qs[_0x1cfa('0x22')](_0x57bb8c['query'][_0x1cfa('0x22')]);_0x2b5773[_0x1cfa('0x1f')]=qs[_0x1cfa('0x1f')](_0x57bb8c[_0x1cfa('0x34')][_0x1cfa('0x1f')]);}_0x2b5773[_0x1cfa('0x3a')]=qs[_0x1cfa('0x3b')](_0x57bb8c[_0x1cfa('0x34')][_0x1cfa('0x3b')]);_0x2b5773[_0x1cfa('0x3c')]=qs[_0x1cfa('0x3d')](_[_0x1cfa('0x3e')](_0x57bb8c[_0x1cfa('0x34')],_0xbc051f[_0x1cfa('0x3d')]),_0xbad388);if(_0x57bb8c[_0x1cfa('0x34')]['filter']){_0x2b5773['where']=_[_0x1cfa('0x3f')](_0x2b5773[_0x1cfa('0x3c')],{'$or':_[_0x1cfa('0x40')](_0xbad388,function(_0x250577){if(_0x250577[_0x1cfa('0x31')]!==_0x1cfa('0x41')){var _0x147d88={};_0x147d88[_0x250577['name']]={'$like':'%'+_0x57bb8c[_0x1cfa('0x34')]['filter']+'%'};return _0x147d88;}})});}_0x2b5773=_[_0x1cfa('0x3f')]({},_0x2b5773,_0x57bb8c[_0x1cfa('0x42')]);var _0x1c82eb={'where':_0x2b5773['where']};return db[_0x1cfa('0x2f')][_0x1cfa('0x21')](_0x1c82eb)[_0x1cfa('0x28')](function(_0x283264){_0x218e9c[_0x1cfa('0x21')]=_0x283264;if(_0x57bb8c[_0x1cfa('0x34')][_0x1cfa('0x43')]){_0x2b5773['include']=[{'all':!![]}];}return db[_0x1cfa('0x2f')][_0x1cfa('0x44')](_0x2b5773);})[_0x1cfa('0x28')](function(_0x5105ca){_0x218e9c['rows']=_0x5105ca;return _0x218e9c;})[_0x1cfa('0x28')](respondWithFilteredResult(_0x17dc97,_0x2b5773))[_0x1cfa('0x45')](handleError(_0x17dc97,null));};exports['show']=function(_0x852c44,_0x5a4ff9){var _0x16267c={'raw':![],'where':{'id':_0x852c44[_0x1cfa('0x46')]['id']}},_0x5d33b7={};_0x5d33b7[_0x1cfa('0x33')]=_[_0x1cfa('0x35')](db[_0x1cfa('0x2f')][_0x1cfa('0x47')]);_0x5d33b7['query']=_[_0x1cfa('0x35')](_0x852c44['query']);_0x5d33b7[_0x1cfa('0x3d')]=_[_0x1cfa('0x36')](_0x5d33b7[_0x1cfa('0x33')],_0x5d33b7[_0x1cfa('0x34')]);_0x16267c['attributes']=_[_0x1cfa('0x36')](_0x5d33b7[_0x1cfa('0x33')],qs['fields'](_0x852c44['query'][_0x1cfa('0x38')]));_0x16267c[_0x1cfa('0x37')]=_0x16267c[_0x1cfa('0x37')][_0x1cfa('0x48')]?_0x16267c[_0x1cfa('0x37')]:_0x5d33b7[_0x1cfa('0x33')];if(_0x852c44[_0x1cfa('0x34')]['includeAll']){_0x16267c[_0x1cfa('0x49')]=[{'all':!![]}];}_0x16267c=_[_0x1cfa('0x3f')]({},_0x16267c,_0x852c44['options']);return db[_0x1cfa('0x2f')][_0x1cfa('0x4a')](_0x16267c)['then'](handleEntityNotFound(_0x5a4ff9,null))[_0x1cfa('0x28')](respondWithResult(_0x5a4ff9,null))[_0x1cfa('0x45')](handleError(_0x5a4ff9,null));};exports[_0x1cfa('0x4b')]=function(_0xeacd46,_0x49a3c6){return db['ZohoConfiguration'][_0x1cfa('0x4b')](_0xeacd46[_0x1cfa('0x4c')],{})[_0x1cfa('0x28')](respondWithResult(_0x49a3c6,0xc9))[_0x1cfa('0x45')](handleError(_0x49a3c6,null));};exports[_0x1cfa('0x27')]=function(_0x2a85ad,_0x612085){if(_0x2a85ad['body']['id']){delete _0x2a85ad['body']['id'];}return db[_0x1cfa('0x2f')][_0x1cfa('0x4a')]({'where':{'id':_0x2a85ad[_0x1cfa('0x46')]['id']}})[_0x1cfa('0x28')](handleEntityNotFound(_0x612085,null))['then'](saveUpdates(_0x2a85ad[_0x1cfa('0x4c')],null))[_0x1cfa('0x28')](respondWithResult(_0x612085,null))[_0x1cfa('0x45')](handleError(_0x612085,null));};exports[_0x1cfa('0x29')]=function(_0x180194,_0x15a2e5){return db[_0x1cfa('0x2f')][_0x1cfa('0x4a')]({'where':{'id':_0x180194[_0x1cfa('0x46')]['id']}})[_0x1cfa('0x28')](handleEntityNotFound(_0x15a2e5,null))[_0x1cfa('0x28')](removeEntity(_0x15a2e5,null))[_0x1cfa('0x45')](handleError(_0x15a2e5,null));};exports[_0x1cfa('0x4d')]=function(_0x91a87a,_0x3d70ad,_0x99bd9b){var _0x48e39d={};var _0x263a56={};var _0x2e57da;var _0x31271b;return db[_0x1cfa('0x2f')][_0x1cfa('0x4e')]({'where':{'id':_0x91a87a[_0x1cfa('0x46')]['id']}})[_0x1cfa('0x28')](handleEntityNotFound(_0x3d70ad,null))[_0x1cfa('0x28')](function(_0x3792ac){if(_0x3792ac){_0x2e57da=_0x3792ac;_0x263a56[_0x1cfa('0x33')]=_['keys'](db[_0x1cfa('0x4f')]['rawAttributes']);_0x263a56[_0x1cfa('0x34')]=_[_0x1cfa('0x35')](_0x91a87a[_0x1cfa('0x34')]);_0x263a56['filters']=_[_0x1cfa('0x36')](_0x263a56[_0x1cfa('0x33')],_0x263a56[_0x1cfa('0x34')]);_0x48e39d[_0x1cfa('0x37')]=_['intersection'](_0x263a56[_0x1cfa('0x33')],qs[_0x1cfa('0x38')](_0x91a87a[_0x1cfa('0x34')]['fields']));_0x48e39d[_0x1cfa('0x37')]=_0x48e39d[_0x1cfa('0x37')][_0x1cfa('0x48')]?_0x48e39d[_0x1cfa('0x37')]:_0x263a56[_0x1cfa('0x33')];_0x48e39d[_0x1cfa('0x3a')]=qs['sort'](_0x91a87a['query'][_0x1cfa('0x3b')]);_0x48e39d['where']=qs[_0x1cfa('0x3d')](_[_0x1cfa('0x3e')](_0x91a87a[_0x1cfa('0x34')],_0x263a56[_0x1cfa('0x3d')]));if(_0x91a87a[_0x1cfa('0x34')][_0x1cfa('0x50')]){_0x48e39d['where']=_[_0x1cfa('0x3f')](_0x48e39d[_0x1cfa('0x3c')],{'$or':_['map'](_0x48e39d[_0x1cfa('0x37')],function(_0x5a1c17){var _0x3ac06d={};_0x3ac06d[_0x5a1c17]={'$like':'%'+_0x91a87a['query']['filter']+'%'};return _0x3ac06d;})});}_0x48e39d=_['merge']({},_0x48e39d,_0x91a87a['options']);return _0x2e57da[_0x1cfa('0x4d')](_0x48e39d);}})['then'](function(_0x460556){if(_0x460556){_0x31271b=_0x460556[_0x1cfa('0x48')];if(!_0x91a87a[_0x1cfa('0x34')][_0x1cfa('0x39')](_0x1cfa('0x51'))){_0x48e39d[_0x1cfa('0x22')]=qs[_0x1cfa('0x22')](_0x91a87a[_0x1cfa('0x34')]['limit']);_0x48e39d['offset']=qs[_0x1cfa('0x1f')](_0x91a87a['query'][_0x1cfa('0x1f')]);}return _0x2e57da['getFields'](_0x48e39d);}})[_0x1cfa('0x28')](function(_0x329804){if(_0x329804){return _0x329804?{'count':_0x31271b,'rows':_0x329804}:null;}})[_0x1cfa('0x28')](respondWithResult(_0x3d70ad,null))[_0x1cfa('0x45')](handleError(_0x3d70ad,null));};exports[_0x1cfa('0x52')]=function(_0x31f1fc,_0xbd250e,_0x3a4559){var _0x20743a={};var _0x21366f={};var _0x5746e0;var _0x20d0ff;return db[_0x1cfa('0x2f')][_0x1cfa('0x4e')]({'where':{'id':_0x31f1fc[_0x1cfa('0x46')]['id']}})[_0x1cfa('0x28')](handleEntityNotFound(_0xbd250e,null))[_0x1cfa('0x28')](function(_0x1f8aa9){if(_0x1f8aa9){_0x5746e0=_0x1f8aa9;_0x21366f[_0x1cfa('0x33')]=_[_0x1cfa('0x35')](db['ZohoField'][_0x1cfa('0x47')]);_0x21366f[_0x1cfa('0x34')]=_[_0x1cfa('0x35')](_0x31f1fc[_0x1cfa('0x34')]);_0x21366f[_0x1cfa('0x3d')]=_[_0x1cfa('0x36')](_0x21366f[_0x1cfa('0x33')],_0x21366f[_0x1cfa('0x34')]);_0x20743a[_0x1cfa('0x37')]=_['intersection'](_0x21366f[_0x1cfa('0x33')],qs['fields'](_0x31f1fc[_0x1cfa('0x34')][_0x1cfa('0x38')]));_0x20743a[_0x1cfa('0x37')]=_0x20743a[_0x1cfa('0x37')][_0x1cfa('0x48')]?_0x20743a[_0x1cfa('0x37')]:_0x21366f[_0x1cfa('0x33')];_0x20743a[_0x1cfa('0x3a')]=qs['sort'](_0x31f1fc[_0x1cfa('0x34')]['sort']);_0x20743a[_0x1cfa('0x3c')]=qs[_0x1cfa('0x3d')](_[_0x1cfa('0x3e')](_0x31f1fc['query'],_0x21366f[_0x1cfa('0x3d')]));if(_0x31f1fc[_0x1cfa('0x34')]['filter']){_0x20743a[_0x1cfa('0x3c')]=_['merge'](_0x20743a[_0x1cfa('0x3c')],{'$or':_[_0x1cfa('0x40')](_0x20743a[_0x1cfa('0x37')],function(_0x10f56c){var _0x4ceafc={};_0x4ceafc[_0x10f56c]={'$like':'%'+_0x31f1fc[_0x1cfa('0x34')][_0x1cfa('0x50')]+'%'};return _0x4ceafc;})});}_0x20743a=_[_0x1cfa('0x3f')]({},_0x20743a,_0x31f1fc['options']);return _0x5746e0[_0x1cfa('0x52')](_0x20743a);}})[_0x1cfa('0x28')](function(_0x59b19a){if(_0x59b19a){_0x20d0ff=_0x59b19a[_0x1cfa('0x48')];if(!_0x31f1fc[_0x1cfa('0x34')][_0x1cfa('0x39')](_0x1cfa('0x51'))){_0x20743a[_0x1cfa('0x22')]=qs[_0x1cfa('0x22')](_0x31f1fc[_0x1cfa('0x34')][_0x1cfa('0x22')]);_0x20743a[_0x1cfa('0x1f')]=qs[_0x1cfa('0x1f')](_0x31f1fc[_0x1cfa('0x34')][_0x1cfa('0x1f')]);}return _0x5746e0['getSubjects'](_0x20743a);}})[_0x1cfa('0x28')](function(_0x426b36){if(_0x426b36){return _0x426b36?{'count':_0x20d0ff,'rows':_0x426b36}:null;}})[_0x1cfa('0x28')](respondWithResult(_0xbd250e,null))['catch'](handleError(_0xbd250e,null));};exports[_0x1cfa('0x53')]=function(_0x18bc80,_0x2c07cc,_0x4d5485){var _0x504091={};var _0x53887e={};var _0x30061c;var _0x22591c;return db[_0x1cfa('0x2f')][_0x1cfa('0x4e')]({'where':{'id':_0x18bc80['params']['id']}})[_0x1cfa('0x28')](handleEntityNotFound(_0x2c07cc,null))['then'](function(_0x497fe2){if(_0x497fe2){_0x30061c=_0x497fe2;_0x53887e[_0x1cfa('0x33')]=_['keys'](db['ZohoField']['rawAttributes']);_0x53887e['query']=_[_0x1cfa('0x35')](_0x18bc80[_0x1cfa('0x34')]);_0x53887e[_0x1cfa('0x3d')]=_['intersection'](_0x53887e['model'],_0x53887e[_0x1cfa('0x34')]);_0x504091[_0x1cfa('0x37')]=_['intersection'](_0x53887e['model'],qs['fields'](_0x18bc80[_0x1cfa('0x34')][_0x1cfa('0x38')]));_0x504091['attributes']=_0x504091[_0x1cfa('0x37')][_0x1cfa('0x48')]?_0x504091[_0x1cfa('0x37')]:_0x53887e[_0x1cfa('0x33')];_0x504091['order']=qs[_0x1cfa('0x3b')](_0x18bc80[_0x1cfa('0x34')]['sort']);_0x504091[_0x1cfa('0x3c')]=qs[_0x1cfa('0x3d')](_[_0x1cfa('0x3e')](_0x18bc80[_0x1cfa('0x34')],_0x53887e[_0x1cfa('0x3d')]));if(_0x18bc80[_0x1cfa('0x34')][_0x1cfa('0x50')]){_0x504091['where']=_['merge'](_0x504091[_0x1cfa('0x3c')],{'$or':_[_0x1cfa('0x40')](_0x504091[_0x1cfa('0x37')],function(_0x353017){var _0x46c644={};_0x46c644[_0x353017]={'$like':'%'+_0x18bc80['query']['filter']+'%'};return _0x46c644;})});}_0x504091=_['merge']({},_0x504091,_0x18bc80['options']);return _0x30061c[_0x1cfa('0x53')](_0x504091);}})[_0x1cfa('0x28')](function(_0x270a97){if(_0x270a97){_0x22591c=_0x270a97['length'];if(!_0x18bc80['query'][_0x1cfa('0x39')](_0x1cfa('0x51'))){_0x504091['limit']=qs[_0x1cfa('0x22')](_0x18bc80['query'][_0x1cfa('0x22')]);_0x504091['offset']=qs[_0x1cfa('0x1f')](_0x18bc80[_0x1cfa('0x34')]['offset']);}return _0x30061c['getDescriptions'](_0x504091);}})[_0x1cfa('0x28')](function(_0x17139e){if(_0x17139e){return _0x17139e?{'count':_0x22591c,'rows':_0x17139e}:null;}})['then'](respondWithResult(_0x2c07cc,null))['catch'](handleError(_0x2c07cc,null));};