Built motion from commit 5b761a7b.|2.5.36
[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 _0x1530=['hasOwnProperty','nolimit','order','sort','where','filters','merge','filter','options','include','findAll','then','rows','catch','keys','find','create','body','update','params','findOne','pick','getFields','getSubjects','ZohoField','getDescriptions','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','mustache','util','path','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','json','offset','limit','count','set','Content-Range','apply','reject','save','name','send','index','map','ZohoConfiguration','rawAttributes','fieldName','type','key','query','model','attributes','intersection','fields','length'];(function(_0xa1e030,_0x579969){var _0x1619bb=function(_0x108f53){while(--_0x108f53){_0xa1e030['push'](_0xa1e030['shift']());}};_0x1619bb(++_0x579969);}(_0x1530,0xb4));var _0x0153=function(_0x3bf83f,_0x181cac){_0x3bf83f=_0x3bf83f-0x0;var _0x22c4a9=_0x1530[_0x3bf83f];return _0x22c4a9;};'use strict';var emlformat=require(_0x0153('0x0'));var rimraf=require(_0x0153('0x1'));var zipdir=require(_0x0153('0x2'));var jsonpatch=require(_0x0153('0x3'));var rp=require(_0x0153('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x0153('0x5'));var util=require(_0x0153('0x6'));var path=require(_0x0153('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x0153('0x8'));var fs=require('fs');var fs_extra=require(_0x0153('0x9'));var _=require(_0x0153('0xa'));var squel=require(_0x0153('0xb'));var crypto=require(_0x0153('0xc'));var jsforce=require(_0x0153('0xd'));var deskjs=require(_0x0153('0xe'));var toCsv=require(_0x0153('0xf'));var querystring=require(_0x0153('0x10'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x0153('0x11'));var qs=require(_0x0153('0x12'));var as=require(_0x0153('0x13'));var hardwareService=require(_0x0153('0x14'));var logger=require('../../config/logger')('api');var utils=require(_0x0153('0x15'));var config=require(_0x0153('0x16'));var licenseUtil=require(_0x0153('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x31975d,_0x855c34){_0x855c34=_0x855c34||0xcc;return function(_0x26c4f1){if(_0x26c4f1){return _0x31975d[_0x0153('0x18')](_0x855c34);}return _0x31975d[_0x0153('0x19')](_0x855c34)[_0x0153('0x1a')]();};}function respondWithResult(_0x9f1176,_0x5c7aa2){_0x5c7aa2=_0x5c7aa2||0xc8;return function(_0x3ece12){if(_0x3ece12){return _0x9f1176[_0x0153('0x19')](_0x5c7aa2)[_0x0153('0x1b')](_0x3ece12);}};}function respondWithFilteredResult(_0x414c58,_0xe141f0){return function(_0x1de2f6){if(_0x1de2f6){var _0xb2441b=typeof _0xe141f0[_0x0153('0x1c')]==='undefined'&&typeof _0xe141f0[_0x0153('0x1d')]==='undefined';var _0x38e42d=_0x1de2f6[_0x0153('0x1e')];var _0x20726e=_0xb2441b?0x0:_0xe141f0[_0x0153('0x1c')];var _0x2c27ae=_0xb2441b?_0x1de2f6['count']:_0xe141f0[_0x0153('0x1c')]+_0xe141f0['limit'];var _0x4c61ed;if(_0x2c27ae>=_0x38e42d){_0x2c27ae=_0x38e42d;_0x4c61ed=0xc8;}else{_0x4c61ed=0xce;}_0x414c58['status'](_0x4c61ed);return _0x414c58[_0x0153('0x1f')](_0x0153('0x20'),_0x20726e+'-'+_0x2c27ae+'/'+_0x38e42d)[_0x0153('0x1b')](_0x1de2f6);}return null;};}function patchUpdates(_0x447035){return function(_0x11afe8){try{jsonpatch[_0x0153('0x21')](_0x11afe8,_0x447035,!![]);}catch(_0x347bae){return BPromise[_0x0153('0x22')](_0x347bae);}return _0x11afe8[_0x0153('0x23')]();};}function saveUpdates(_0x3b30bf,_0x57caee){return function(_0x2fda28){if(_0x2fda28){return _0x2fda28['update'](_0x3b30bf)['then'](function(_0x5e5088){return _0x5e5088;});}return null;};}function removeEntity(_0x152102,_0x3c8577){return function(_0x3237f1){if(_0x3237f1){return _0x3237f1['destroy']()['then'](function(){_0x152102[_0x0153('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4298d2,_0x22c95b){return function(_0x413781){if(!_0x413781){_0x4298d2[_0x0153('0x18')](0x194);}return _0x413781;};}function handleError(_0x45db99,_0x2833bc){_0x2833bc=_0x2833bc||0x1f4;return function(_0x45e50f){logger['error'](_0x45e50f['stack']);if(_0x45e50f[_0x0153('0x24')]){delete _0x45e50f[_0x0153('0x24')];}_0x45db99[_0x0153('0x19')](_0x2833bc)[_0x0153('0x25')](_0x45e50f);};}exports[_0x0153('0x26')]=function(_0xb4f409,_0xfd082f){var _0x40641e={},_0x46a3c8={},_0x214997={'count':0x0,'rows':[]};var _0x44673b=_[_0x0153('0x27')](db[_0x0153('0x28')][_0x0153('0x29')],function(_0x5c369d){return{'name':_0x5c369d[_0x0153('0x2a')],'type':_0x5c369d[_0x0153('0x2b')][_0x0153('0x2c')]};});_0x46a3c8['model']=_[_0x0153('0x27')](_0x44673b,'name');_0x46a3c8['query']=_['keys'](_0xb4f409[_0x0153('0x2d')]);_0x46a3c8['filters']=_['intersection'](_0x46a3c8[_0x0153('0x2e')],_0x46a3c8[_0x0153('0x2d')]);_0x40641e[_0x0153('0x2f')]=_[_0x0153('0x30')](_0x46a3c8[_0x0153('0x2e')],qs['fields'](_0xb4f409[_0x0153('0x2d')][_0x0153('0x31')]));_0x40641e[_0x0153('0x2f')]=_0x40641e[_0x0153('0x2f')][_0x0153('0x32')]?_0x40641e['attributes']:_0x46a3c8[_0x0153('0x2e')];if(!_0xb4f409[_0x0153('0x2d')][_0x0153('0x33')](_0x0153('0x34'))){_0x40641e['limit']=qs[_0x0153('0x1d')](_0xb4f409[_0x0153('0x2d')]['limit']);_0x40641e[_0x0153('0x1c')]=qs[_0x0153('0x1c')](_0xb4f409[_0x0153('0x2d')][_0x0153('0x1c')]);}_0x40641e[_0x0153('0x35')]=qs[_0x0153('0x36')](_0xb4f409[_0x0153('0x2d')][_0x0153('0x36')]);_0x40641e[_0x0153('0x37')]=qs[_0x0153('0x38')](_['pick'](_0xb4f409[_0x0153('0x2d')],_0x46a3c8[_0x0153('0x38')]),_0x44673b);if(_0xb4f409[_0x0153('0x2d')]['filter']){_0x40641e[_0x0153('0x37')]=_[_0x0153('0x39')](_0x40641e[_0x0153('0x37')],{'$or':_[_0x0153('0x27')](_0x44673b,function(_0x550f43){if(_0x550f43[_0x0153('0x2b')]!=='VIRTUAL'){var _0x102f66={};_0x102f66[_0x550f43[_0x0153('0x24')]]={'$like':'%'+_0xb4f409[_0x0153('0x2d')][_0x0153('0x3a')]+'%'};return _0x102f66;}})});}_0x40641e=_[_0x0153('0x39')]({},_0x40641e,_0xb4f409[_0x0153('0x3b')]);var _0x5baa91={'where':_0x40641e[_0x0153('0x37')]};return db[_0x0153('0x28')][_0x0153('0x1e')](_0x5baa91)['then'](function(_0x5ee1cf){_0x214997[_0x0153('0x1e')]=_0x5ee1cf;if(_0xb4f409[_0x0153('0x2d')]['includeAll']){_0x40641e[_0x0153('0x3c')]=[{'all':!![]}];}return db[_0x0153('0x28')][_0x0153('0x3d')](_0x40641e);})[_0x0153('0x3e')](function(_0x33c8cc){_0x214997[_0x0153('0x3f')]=_0x33c8cc;return _0x214997;})[_0x0153('0x3e')](respondWithFilteredResult(_0xfd082f,_0x40641e))[_0x0153('0x40')](handleError(_0xfd082f,null));};exports['show']=function(_0x4206d8,_0x46258d){var _0xa19d3b={'raw':![],'where':{'id':_0x4206d8['params']['id']}},_0x3d008c={};_0x3d008c[_0x0153('0x2e')]=_[_0x0153('0x41')](db['ZohoConfiguration']['rawAttributes']);_0x3d008c[_0x0153('0x2d')]=_[_0x0153('0x41')](_0x4206d8['query']);_0x3d008c[_0x0153('0x38')]=_[_0x0153('0x30')](_0x3d008c[_0x0153('0x2e')],_0x3d008c[_0x0153('0x2d')]);_0xa19d3b['attributes']=_['intersection'](_0x3d008c[_0x0153('0x2e')],qs[_0x0153('0x31')](_0x4206d8[_0x0153('0x2d')][_0x0153('0x31')]));_0xa19d3b['attributes']=_0xa19d3b[_0x0153('0x2f')][_0x0153('0x32')]?_0xa19d3b[_0x0153('0x2f')]:_0x3d008c[_0x0153('0x2e')];if(_0x4206d8[_0x0153('0x2d')]['includeAll']){_0xa19d3b[_0x0153('0x3c')]=[{'all':!![]}];}_0xa19d3b=_[_0x0153('0x39')]({},_0xa19d3b,_0x4206d8[_0x0153('0x3b')]);return db[_0x0153('0x28')][_0x0153('0x42')](_0xa19d3b)[_0x0153('0x3e')](handleEntityNotFound(_0x46258d,null))[_0x0153('0x3e')](respondWithResult(_0x46258d,null))[_0x0153('0x40')](handleError(_0x46258d,null));};exports[_0x0153('0x43')]=function(_0x3071ea,_0x91554f){return db['ZohoConfiguration'][_0x0153('0x43')](_0x3071ea[_0x0153('0x44')],{})[_0x0153('0x3e')](respondWithResult(_0x91554f,0xc9))[_0x0153('0x40')](handleError(_0x91554f,null));};exports[_0x0153('0x45')]=function(_0x3d9093,_0x549793){if(_0x3d9093[_0x0153('0x44')]['id']){delete _0x3d9093[_0x0153('0x44')]['id'];}return db['ZohoConfiguration'][_0x0153('0x42')]({'where':{'id':_0x3d9093[_0x0153('0x46')]['id']}})[_0x0153('0x3e')](handleEntityNotFound(_0x549793,null))[_0x0153('0x3e')](saveUpdates(_0x3d9093[_0x0153('0x44')],null))[_0x0153('0x3e')](respondWithResult(_0x549793,null))[_0x0153('0x40')](handleError(_0x549793,null));};exports['destroy']=function(_0x5d028e,_0x25eda4){return db['ZohoConfiguration'][_0x0153('0x42')]({'where':{'id':_0x5d028e['params']['id']}})[_0x0153('0x3e')](handleEntityNotFound(_0x25eda4,null))[_0x0153('0x3e')](removeEntity(_0x25eda4,null))[_0x0153('0x40')](handleError(_0x25eda4,null));};exports['getFields']=function(_0x5e0439,_0x35bd83,_0x48f240){var _0x36f1b4={};var _0xe8626d={};var _0x5ccca4;var _0x4bac32;return db['ZohoConfiguration'][_0x0153('0x47')]({'where':{'id':_0x5e0439[_0x0153('0x46')]['id']}})['then'](handleEntityNotFound(_0x35bd83,null))[_0x0153('0x3e')](function(_0x965562){if(_0x965562){_0x5ccca4=_0x965562;_0xe8626d['model']=_['keys'](db['ZohoField'][_0x0153('0x29')]);_0xe8626d[_0x0153('0x2d')]=_[_0x0153('0x41')](_0x5e0439[_0x0153('0x2d')]);_0xe8626d[_0x0153('0x38')]=_[_0x0153('0x30')](_0xe8626d['model'],_0xe8626d[_0x0153('0x2d')]);_0x36f1b4[_0x0153('0x2f')]=_[_0x0153('0x30')](_0xe8626d['model'],qs[_0x0153('0x31')](_0x5e0439[_0x0153('0x2d')]['fields']));_0x36f1b4['attributes']=_0x36f1b4[_0x0153('0x2f')]['length']?_0x36f1b4[_0x0153('0x2f')]:_0xe8626d[_0x0153('0x2e')];_0x36f1b4['order']=qs[_0x0153('0x36')](_0x5e0439['query']['sort']);_0x36f1b4[_0x0153('0x37')]=qs[_0x0153('0x38')](_[_0x0153('0x48')](_0x5e0439['query'],_0xe8626d[_0x0153('0x38')]));if(_0x5e0439[_0x0153('0x2d')][_0x0153('0x3a')]){_0x36f1b4['where']=_[_0x0153('0x39')](_0x36f1b4[_0x0153('0x37')],{'$or':_['map'](_0x36f1b4['attributes'],function(_0x23c837){var _0xbe2c95={};_0xbe2c95[_0x23c837]={'$like':'%'+_0x5e0439[_0x0153('0x2d')]['filter']+'%'};return _0xbe2c95;})});}_0x36f1b4=_[_0x0153('0x39')]({},_0x36f1b4,_0x5e0439[_0x0153('0x3b')]);return _0x5ccca4[_0x0153('0x49')](_0x36f1b4);}})[_0x0153('0x3e')](function(_0xde40dc){if(_0xde40dc){_0x4bac32=_0xde40dc[_0x0153('0x32')];if(!_0x5e0439[_0x0153('0x2d')][_0x0153('0x33')](_0x0153('0x34'))){_0x36f1b4[_0x0153('0x1d')]=qs[_0x0153('0x1d')](_0x5e0439[_0x0153('0x2d')][_0x0153('0x1d')]);_0x36f1b4['offset']=qs[_0x0153('0x1c')](_0x5e0439['query'][_0x0153('0x1c')]);}return _0x5ccca4['getFields'](_0x36f1b4);}})[_0x0153('0x3e')](function(_0xb7858c){if(_0xb7858c){return _0xb7858c?{'count':_0x4bac32,'rows':_0xb7858c}:null;}})[_0x0153('0x3e')](respondWithResult(_0x35bd83,null))[_0x0153('0x40')](handleError(_0x35bd83,null));};exports[_0x0153('0x4a')]=function(_0x4c75c8,_0x36fa2b,_0x1a4328){var _0x74a76d={};var _0x2af857={};var _0x4eb8af;var _0x334d28;return db[_0x0153('0x28')]['findOne']({'where':{'id':_0x4c75c8[_0x0153('0x46')]['id']}})[_0x0153('0x3e')](handleEntityNotFound(_0x36fa2b,null))[_0x0153('0x3e')](function(_0x2ea7ed){if(_0x2ea7ed){_0x4eb8af=_0x2ea7ed;_0x2af857[_0x0153('0x2e')]=_['keys'](db[_0x0153('0x4b')]['rawAttributes']);_0x2af857['query']=_[_0x0153('0x41')](_0x4c75c8['query']);_0x2af857[_0x0153('0x38')]=_[_0x0153('0x30')](_0x2af857['model'],_0x2af857['query']);_0x74a76d[_0x0153('0x2f')]=_[_0x0153('0x30')](_0x2af857[_0x0153('0x2e')],qs[_0x0153('0x31')](_0x4c75c8[_0x0153('0x2d')]['fields']));_0x74a76d['attributes']=_0x74a76d[_0x0153('0x2f')][_0x0153('0x32')]?_0x74a76d[_0x0153('0x2f')]:_0x2af857[_0x0153('0x2e')];_0x74a76d['order']=qs[_0x0153('0x36')](_0x4c75c8['query']['sort']);_0x74a76d['where']=qs[_0x0153('0x38')](_[_0x0153('0x48')](_0x4c75c8[_0x0153('0x2d')],_0x2af857['filters']));if(_0x4c75c8[_0x0153('0x2d')]['filter']){_0x74a76d[_0x0153('0x37')]=_[_0x0153('0x39')](_0x74a76d[_0x0153('0x37')],{'$or':_['map'](_0x74a76d['attributes'],function(_0x2b4a8f){var _0x1ef2f0={};_0x1ef2f0[_0x2b4a8f]={'$like':'%'+_0x4c75c8[_0x0153('0x2d')][_0x0153('0x3a')]+'%'};return _0x1ef2f0;})});}_0x74a76d=_[_0x0153('0x39')]({},_0x74a76d,_0x4c75c8[_0x0153('0x3b')]);return _0x4eb8af[_0x0153('0x4a')](_0x74a76d);}})[_0x0153('0x3e')](function(_0x11f266){if(_0x11f266){_0x334d28=_0x11f266[_0x0153('0x32')];if(!_0x4c75c8[_0x0153('0x2d')][_0x0153('0x33')]('nolimit')){_0x74a76d[_0x0153('0x1d')]=qs['limit'](_0x4c75c8[_0x0153('0x2d')][_0x0153('0x1d')]);_0x74a76d[_0x0153('0x1c')]=qs[_0x0153('0x1c')](_0x4c75c8[_0x0153('0x2d')][_0x0153('0x1c')]);}return _0x4eb8af[_0x0153('0x4a')](_0x74a76d);}})[_0x0153('0x3e')](function(_0x3882c3){if(_0x3882c3){return _0x3882c3?{'count':_0x334d28,'rows':_0x3882c3}:null;}})[_0x0153('0x3e')](respondWithResult(_0x36fa2b,null))[_0x0153('0x40')](handleError(_0x36fa2b,null));};exports[_0x0153('0x4c')]=function(_0x489dfa,_0xfc56ea,_0x3a7e70){var _0x12cf43={};var _0x8044de={};var _0x1efbbf;var _0x4cbb46;return db[_0x0153('0x28')][_0x0153('0x47')]({'where':{'id':_0x489dfa['params']['id']}})[_0x0153('0x3e')](handleEntityNotFound(_0xfc56ea,null))[_0x0153('0x3e')](function(_0x55f2ce){if(_0x55f2ce){_0x1efbbf=_0x55f2ce;_0x8044de['model']=_[_0x0153('0x41')](db['ZohoField']['rawAttributes']);_0x8044de['query']=_[_0x0153('0x41')](_0x489dfa[_0x0153('0x2d')]);_0x8044de[_0x0153('0x38')]=_[_0x0153('0x30')](_0x8044de[_0x0153('0x2e')],_0x8044de[_0x0153('0x2d')]);_0x12cf43[_0x0153('0x2f')]=_[_0x0153('0x30')](_0x8044de[_0x0153('0x2e')],qs[_0x0153('0x31')](_0x489dfa['query']['fields']));_0x12cf43['attributes']=_0x12cf43[_0x0153('0x2f')][_0x0153('0x32')]?_0x12cf43[_0x0153('0x2f')]:_0x8044de['model'];_0x12cf43[_0x0153('0x35')]=qs['sort'](_0x489dfa[_0x0153('0x2d')][_0x0153('0x36')]);_0x12cf43[_0x0153('0x37')]=qs[_0x0153('0x38')](_[_0x0153('0x48')](_0x489dfa[_0x0153('0x2d')],_0x8044de[_0x0153('0x38')]));if(_0x489dfa[_0x0153('0x2d')][_0x0153('0x3a')]){_0x12cf43[_0x0153('0x37')]=_[_0x0153('0x39')](_0x12cf43[_0x0153('0x37')],{'$or':_['map'](_0x12cf43[_0x0153('0x2f')],function(_0x3e95c6){var _0x1792e4={};_0x1792e4[_0x3e95c6]={'$like':'%'+_0x489dfa[_0x0153('0x2d')][_0x0153('0x3a')]+'%'};return _0x1792e4;})});}_0x12cf43=_['merge']({},_0x12cf43,_0x489dfa[_0x0153('0x3b')]);return _0x1efbbf[_0x0153('0x4c')](_0x12cf43);}})[_0x0153('0x3e')](function(_0x5eb940){if(_0x5eb940){_0x4cbb46=_0x5eb940[_0x0153('0x32')];if(!_0x489dfa[_0x0153('0x2d')][_0x0153('0x33')](_0x0153('0x34'))){_0x12cf43[_0x0153('0x1d')]=qs[_0x0153('0x1d')](_0x489dfa[_0x0153('0x2d')]['limit']);_0x12cf43[_0x0153('0x1c')]=qs[_0x0153('0x1c')](_0x489dfa['query'][_0x0153('0x1c')]);}return _0x1efbbf[_0x0153('0x4c')](_0x12cf43);}})['then'](function(_0x2f878b){if(_0x2f878b){return _0x2f878b?{'count':_0x4cbb46,'rows':_0x2f878b}:null;}})[_0x0153('0x3e')](respondWithResult(_0xfc56ea,null))[_0x0153('0x40')](handleError(_0xfc56ea,null));};