1284fd44bf920846b74f5191abf5f89258d3b2a5
[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 _0x4947=['order','getSubjects','getDescriptions','nolimit','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','limit','undefined','count','offset','set','apply','reject','update','then','error','stack','name','send','map','rawAttributes','type','key','query','keys','filters','intersection','attributes','model','fields','hasOwnProperty','sort','where','pick','filter','merge','options','ZohoConfiguration','includeAll','rows','show','params','include','find','catch','create','body','destroy','getFields','findOne','ZohoField','length'];(function(_0x490fc7,_0x53d1ef){var _0x41a583=function(_0x163e55){while(--_0x163e55){_0x490fc7['push'](_0x490fc7['shift']());}};_0x41a583(++_0x53d1ef);}(_0x4947,0x1f0));var _0x7494=function(_0x568496,_0x565afd){_0x568496=_0x568496-0x0;var _0x26c5c1=_0x4947[_0x568496];return _0x26c5c1;};'use strict';var emlformat=require(_0x7494('0x0'));var rimraf=require(_0x7494('0x1'));var zipdir=require(_0x7494('0x2'));var jsonpatch=require(_0x7494('0x3'));var rp=require('request-promise');var moment=require(_0x7494('0x4'));var BPromise=require(_0x7494('0x5'));var Mustache=require(_0x7494('0x6'));var util=require(_0x7494('0x7'));var path=require(_0x7494('0x8'));var sox=require(_0x7494('0x9'));var csv=require(_0x7494('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x7494('0xb'));var squel=require(_0x7494('0xc'));var crypto=require(_0x7494('0xd'));var jsforce=require(_0x7494('0xe'));var deskjs=require(_0x7494('0xf'));var toCsv=require(_0x7494('0xa'));var querystring=require('querystring');var Papa=require(_0x7494('0x10'));var Redis=require(_0x7494('0x11'));var authService=require(_0x7494('0x12'));var qs=require(_0x7494('0x13'));var as=require(_0x7494('0x14'));var hardwareService=require(_0x7494('0x15'));var logger=require(_0x7494('0x16'))(_0x7494('0x17'));var utils=require(_0x7494('0x18'));var config=require(_0x7494('0x19'));var licenseUtil=require(_0x7494('0x1a'));var db=require(_0x7494('0x1b'))['db'];function respondWithStatusCode(_0x5d2e80,_0x8f75c7){_0x8f75c7=_0x8f75c7||0xcc;return function(_0x4cf744){if(_0x4cf744){return _0x5d2e80[_0x7494('0x1c')](_0x8f75c7);}return _0x5d2e80[_0x7494('0x1d')](_0x8f75c7)[_0x7494('0x1e')]();};}function respondWithResult(_0x2743ff,_0xffa2b3){_0xffa2b3=_0xffa2b3||0xc8;return function(_0x100537){if(_0x100537){return _0x2743ff[_0x7494('0x1d')](_0xffa2b3)[_0x7494('0x1f')](_0x100537);}};}function respondWithFilteredResult(_0x417d81,_0x3bd9e1){return function(_0x33e2c9){if(_0x33e2c9){var _0x771235=typeof _0x3bd9e1['offset']==='undefined'&&typeof _0x3bd9e1[_0x7494('0x20')]===_0x7494('0x21');var _0x6a40c2=_0x33e2c9[_0x7494('0x22')];var _0x3ebfc8=_0x771235?0x0:_0x3bd9e1[_0x7494('0x23')];var _0x4478fd=_0x771235?_0x33e2c9[_0x7494('0x22')]:_0x3bd9e1['offset']+_0x3bd9e1['limit'];var _0x14b74a;if(_0x4478fd>=_0x6a40c2){_0x4478fd=_0x6a40c2;_0x14b74a=0xc8;}else{_0x14b74a=0xce;}_0x417d81[_0x7494('0x1d')](_0x14b74a);return _0x417d81[_0x7494('0x24')]('Content-Range',_0x3ebfc8+'-'+_0x4478fd+'/'+_0x6a40c2)[_0x7494('0x1f')](_0x33e2c9);}return null;};}function patchUpdates(_0x4655da){return function(_0x27e6be){try{jsonpatch[_0x7494('0x25')](_0x27e6be,_0x4655da,!![]);}catch(_0x667df2){return BPromise[_0x7494('0x26')](_0x667df2);}return _0x27e6be['save']();};}function saveUpdates(_0xdf989d,_0x35f793){return function(_0x404b2b){if(_0x404b2b){return _0x404b2b[_0x7494('0x27')](_0xdf989d)[_0x7494('0x28')](function(_0x35c44f){return _0x35c44f;});}return null;};}function removeEntity(_0x4ab852,_0x4d9208){return function(_0x1820d9){if(_0x1820d9){return _0x1820d9['destroy']()[_0x7494('0x28')](function(){_0x4ab852[_0x7494('0x1d')](0xcc)[_0x7494('0x1e')]();});}};}function handleEntityNotFound(_0x936a95,_0xcb62a8){return function(_0x14fad9){if(!_0x14fad9){_0x936a95[_0x7494('0x1c')](0x194);}return _0x14fad9;};}function handleError(_0x704d23,_0x4711e2){_0x4711e2=_0x4711e2||0x1f4;return function(_0x90f105){logger[_0x7494('0x29')](_0x90f105[_0x7494('0x2a')]);if(_0x90f105[_0x7494('0x2b')]){delete _0x90f105['name'];}_0x704d23[_0x7494('0x1d')](_0x4711e2)[_0x7494('0x2c')](_0x90f105);};}exports['index']=function(_0xf32dd7,_0x34e573){var _0x4ea80b={},_0x111c42={},_0x39610a={'count':0x0,'rows':[]};var _0x434e13=_[_0x7494('0x2d')](db['ZohoConfiguration'][_0x7494('0x2e')],function(_0x27b9c7){return{'name':_0x27b9c7['fieldName'],'type':_0x27b9c7[_0x7494('0x2f')][_0x7494('0x30')]};});_0x111c42['model']=_['map'](_0x434e13,_0x7494('0x2b'));_0x111c42[_0x7494('0x31')]=_[_0x7494('0x32')](_0xf32dd7[_0x7494('0x31')]);_0x111c42[_0x7494('0x33')]=_[_0x7494('0x34')](_0x111c42['model'],_0x111c42[_0x7494('0x31')]);_0x4ea80b[_0x7494('0x35')]=_[_0x7494('0x34')](_0x111c42[_0x7494('0x36')],qs[_0x7494('0x37')](_0xf32dd7['query'][_0x7494('0x37')]));_0x4ea80b[_0x7494('0x35')]=_0x4ea80b[_0x7494('0x35')]['length']?_0x4ea80b[_0x7494('0x35')]:_0x111c42['model'];if(!_0xf32dd7[_0x7494('0x31')][_0x7494('0x38')]('nolimit')){_0x4ea80b[_0x7494('0x20')]=qs[_0x7494('0x20')](_0xf32dd7['query'][_0x7494('0x20')]);_0x4ea80b[_0x7494('0x23')]=qs[_0x7494('0x23')](_0xf32dd7['query'][_0x7494('0x23')]);}_0x4ea80b['order']=qs[_0x7494('0x39')](_0xf32dd7[_0x7494('0x31')][_0x7494('0x39')]);_0x4ea80b[_0x7494('0x3a')]=qs[_0x7494('0x33')](_[_0x7494('0x3b')](_0xf32dd7[_0x7494('0x31')],_0x111c42['filters']),_0x434e13);if(_0xf32dd7[_0x7494('0x31')][_0x7494('0x3c')]){_0x4ea80b[_0x7494('0x3a')]=_[_0x7494('0x3d')](_0x4ea80b[_0x7494('0x3a')],{'$or':_['map'](_0x434e13,function(_0x41a7cc){if(_0x41a7cc[_0x7494('0x2f')]!=='VIRTUAL'){var _0x14b220={};_0x14b220[_0x41a7cc['name']]={'$like':'%'+_0xf32dd7['query'][_0x7494('0x3c')]+'%'};return _0x14b220;}})});}_0x4ea80b=_[_0x7494('0x3d')]({},_0x4ea80b,_0xf32dd7[_0x7494('0x3e')]);var _0x3650c5={'where':_0x4ea80b[_0x7494('0x3a')]};return db[_0x7494('0x3f')][_0x7494('0x22')](_0x3650c5)[_0x7494('0x28')](function(_0x304f1c){_0x39610a[_0x7494('0x22')]=_0x304f1c;if(_0xf32dd7[_0x7494('0x31')][_0x7494('0x40')]){_0x4ea80b['include']=[{'all':!![]}];}return db[_0x7494('0x3f')]['findAll'](_0x4ea80b);})[_0x7494('0x28')](function(_0x14d122){_0x39610a[_0x7494('0x41')]=_0x14d122;return _0x39610a;})[_0x7494('0x28')](respondWithFilteredResult(_0x34e573,_0x4ea80b))['catch'](handleError(_0x34e573,null));};exports[_0x7494('0x42')]=function(_0x4953ee,_0x40e9cd){var _0x14df1a={'raw':![],'where':{'id':_0x4953ee[_0x7494('0x43')]['id']}},_0x5ae91a={};_0x5ae91a[_0x7494('0x36')]=_[_0x7494('0x32')](db[_0x7494('0x3f')][_0x7494('0x2e')]);_0x5ae91a['query']=_[_0x7494('0x32')](_0x4953ee[_0x7494('0x31')]);_0x5ae91a['filters']=_[_0x7494('0x34')](_0x5ae91a[_0x7494('0x36')],_0x5ae91a[_0x7494('0x31')]);_0x14df1a[_0x7494('0x35')]=_[_0x7494('0x34')](_0x5ae91a['model'],qs['fields'](_0x4953ee[_0x7494('0x31')][_0x7494('0x37')]));_0x14df1a[_0x7494('0x35')]=_0x14df1a[_0x7494('0x35')]['length']?_0x14df1a['attributes']:_0x5ae91a[_0x7494('0x36')];if(_0x4953ee[_0x7494('0x31')][_0x7494('0x40')]){_0x14df1a[_0x7494('0x44')]=[{'all':!![]}];}_0x14df1a=_[_0x7494('0x3d')]({},_0x14df1a,_0x4953ee[_0x7494('0x3e')]);return db[_0x7494('0x3f')][_0x7494('0x45')](_0x14df1a)[_0x7494('0x28')](handleEntityNotFound(_0x40e9cd,null))[_0x7494('0x28')](respondWithResult(_0x40e9cd,null))[_0x7494('0x46')](handleError(_0x40e9cd,null));};exports[_0x7494('0x47')]=function(_0x50e1e4,_0x3d52a9){return db['ZohoConfiguration'][_0x7494('0x47')](_0x50e1e4[_0x7494('0x48')],{})['then'](respondWithResult(_0x3d52a9,0xc9))[_0x7494('0x46')](handleError(_0x3d52a9,null));};exports[_0x7494('0x27')]=function(_0x2a6852,_0x866d93){if(_0x2a6852['body']['id']){delete _0x2a6852['body']['id'];}return db[_0x7494('0x3f')][_0x7494('0x45')]({'where':{'id':_0x2a6852[_0x7494('0x43')]['id']}})[_0x7494('0x28')](handleEntityNotFound(_0x866d93,null))['then'](saveUpdates(_0x2a6852[_0x7494('0x48')],null))[_0x7494('0x28')](respondWithResult(_0x866d93,null))['catch'](handleError(_0x866d93,null));};exports[_0x7494('0x49')]=function(_0x420c40,_0x2d9b05){return db[_0x7494('0x3f')]['find']({'where':{'id':_0x420c40[_0x7494('0x43')]['id']}})[_0x7494('0x28')](handleEntityNotFound(_0x2d9b05,null))[_0x7494('0x28')](removeEntity(_0x2d9b05,null))['catch'](handleError(_0x2d9b05,null));};exports[_0x7494('0x4a')]=function(_0x8766c0,_0x3da62f,_0x5c220a){var _0x5b1baa={};var _0x103cf9={};var _0x274406;var _0x352473;return db[_0x7494('0x3f')][_0x7494('0x4b')]({'where':{'id':_0x8766c0['params']['id']}})[_0x7494('0x28')](handleEntityNotFound(_0x3da62f,null))[_0x7494('0x28')](function(_0x49e512){if(_0x49e512){_0x274406=_0x49e512;_0x103cf9['model']=_[_0x7494('0x32')](db[_0x7494('0x4c')][_0x7494('0x2e')]);_0x103cf9['query']=_['keys'](_0x8766c0[_0x7494('0x31')]);_0x103cf9[_0x7494('0x33')]=_['intersection'](_0x103cf9['model'],_0x103cf9[_0x7494('0x31')]);_0x5b1baa[_0x7494('0x35')]=_['intersection'](_0x103cf9['model'],qs[_0x7494('0x37')](_0x8766c0[_0x7494('0x31')][_0x7494('0x37')]));_0x5b1baa['attributes']=_0x5b1baa[_0x7494('0x35')][_0x7494('0x4d')]?_0x5b1baa[_0x7494('0x35')]:_0x103cf9[_0x7494('0x36')];_0x5b1baa[_0x7494('0x4e')]=qs[_0x7494('0x39')](_0x8766c0[_0x7494('0x31')][_0x7494('0x39')]);_0x5b1baa[_0x7494('0x3a')]=qs[_0x7494('0x33')](_[_0x7494('0x3b')](_0x8766c0[_0x7494('0x31')],_0x103cf9[_0x7494('0x33')]));if(_0x8766c0['query'][_0x7494('0x3c')]){_0x5b1baa[_0x7494('0x3a')]=_[_0x7494('0x3d')](_0x5b1baa[_0x7494('0x3a')],{'$or':_[_0x7494('0x2d')](_0x5b1baa[_0x7494('0x35')],function(_0x4fbef4){var _0xf40734={};_0xf40734[_0x4fbef4]={'$like':'%'+_0x8766c0[_0x7494('0x31')]['filter']+'%'};return _0xf40734;})});}_0x5b1baa=_[_0x7494('0x3d')]({},_0x5b1baa,_0x8766c0[_0x7494('0x3e')]);return _0x274406[_0x7494('0x4a')](_0x5b1baa);}})[_0x7494('0x28')](function(_0x5b1f4b){if(_0x5b1f4b){_0x352473=_0x5b1f4b['length'];if(!_0x8766c0[_0x7494('0x31')][_0x7494('0x38')]('nolimit')){_0x5b1baa[_0x7494('0x20')]=qs[_0x7494('0x20')](_0x8766c0[_0x7494('0x31')]['limit']);_0x5b1baa['offset']=qs[_0x7494('0x23')](_0x8766c0[_0x7494('0x31')]['offset']);}return _0x274406[_0x7494('0x4a')](_0x5b1baa);}})[_0x7494('0x28')](function(_0x49229f){if(_0x49229f){return _0x49229f?{'count':_0x352473,'rows':_0x49229f}:null;}})[_0x7494('0x28')](respondWithResult(_0x3da62f,null))[_0x7494('0x46')](handleError(_0x3da62f,null));};exports[_0x7494('0x4f')]=function(_0xa5867a,_0x482e75,_0x341e78){var _0x47bd86={};var _0x5947f2={};var _0x4b8c31;var _0x295c2a;return db[_0x7494('0x3f')][_0x7494('0x4b')]({'where':{'id':_0xa5867a[_0x7494('0x43')]['id']}})[_0x7494('0x28')](handleEntityNotFound(_0x482e75,null))[_0x7494('0x28')](function(_0x4bcc90){if(_0x4bcc90){_0x4b8c31=_0x4bcc90;_0x5947f2['model']=_[_0x7494('0x32')](db[_0x7494('0x4c')][_0x7494('0x2e')]);_0x5947f2['query']=_[_0x7494('0x32')](_0xa5867a[_0x7494('0x31')]);_0x5947f2['filters']=_[_0x7494('0x34')](_0x5947f2[_0x7494('0x36')],_0x5947f2[_0x7494('0x31')]);_0x47bd86[_0x7494('0x35')]=_['intersection'](_0x5947f2[_0x7494('0x36')],qs[_0x7494('0x37')](_0xa5867a[_0x7494('0x31')][_0x7494('0x37')]));_0x47bd86['attributes']=_0x47bd86[_0x7494('0x35')]['length']?_0x47bd86[_0x7494('0x35')]:_0x5947f2['model'];_0x47bd86[_0x7494('0x4e')]=qs[_0x7494('0x39')](_0xa5867a[_0x7494('0x31')][_0x7494('0x39')]);_0x47bd86[_0x7494('0x3a')]=qs[_0x7494('0x33')](_[_0x7494('0x3b')](_0xa5867a['query'],_0x5947f2[_0x7494('0x33')]));if(_0xa5867a[_0x7494('0x31')][_0x7494('0x3c')]){_0x47bd86[_0x7494('0x3a')]=_[_0x7494('0x3d')](_0x47bd86[_0x7494('0x3a')],{'$or':_[_0x7494('0x2d')](_0x47bd86[_0x7494('0x35')],function(_0x3c7f37){var _0x5ab0eb={};_0x5ab0eb[_0x3c7f37]={'$like':'%'+_0xa5867a['query'][_0x7494('0x3c')]+'%'};return _0x5ab0eb;})});}_0x47bd86=_['merge']({},_0x47bd86,_0xa5867a[_0x7494('0x3e')]);return _0x4b8c31[_0x7494('0x4f')](_0x47bd86);}})[_0x7494('0x28')](function(_0x263ab6){if(_0x263ab6){_0x295c2a=_0x263ab6[_0x7494('0x4d')];if(!_0xa5867a['query'][_0x7494('0x38')]('nolimit')){_0x47bd86[_0x7494('0x20')]=qs['limit'](_0xa5867a['query'][_0x7494('0x20')]);_0x47bd86[_0x7494('0x23')]=qs['offset'](_0xa5867a[_0x7494('0x31')][_0x7494('0x23')]);}return _0x4b8c31[_0x7494('0x4f')](_0x47bd86);}})[_0x7494('0x28')](function(_0x542022){if(_0x542022){return _0x542022?{'count':_0x295c2a,'rows':_0x542022}:null;}})[_0x7494('0x28')](respondWithResult(_0x482e75,null))[_0x7494('0x46')](handleError(_0x482e75,null));};exports[_0x7494('0x50')]=function(_0x2736f6,_0x56bb20,_0x3bdbc6){var _0x46485a={};var _0xb8242a={};var _0x5847e5;var _0x5affe4;return db[_0x7494('0x3f')][_0x7494('0x4b')]({'where':{'id':_0x2736f6['params']['id']}})['then'](handleEntityNotFound(_0x56bb20,null))[_0x7494('0x28')](function(_0x1dd3d4){if(_0x1dd3d4){_0x5847e5=_0x1dd3d4;_0xb8242a['model']=_['keys'](db['ZohoField'][_0x7494('0x2e')]);_0xb8242a[_0x7494('0x31')]=_[_0x7494('0x32')](_0x2736f6['query']);_0xb8242a[_0x7494('0x33')]=_[_0x7494('0x34')](_0xb8242a['model'],_0xb8242a[_0x7494('0x31')]);_0x46485a[_0x7494('0x35')]=_[_0x7494('0x34')](_0xb8242a['model'],qs[_0x7494('0x37')](_0x2736f6['query']['fields']));_0x46485a[_0x7494('0x35')]=_0x46485a[_0x7494('0x35')]['length']?_0x46485a[_0x7494('0x35')]:_0xb8242a[_0x7494('0x36')];_0x46485a[_0x7494('0x4e')]=qs[_0x7494('0x39')](_0x2736f6[_0x7494('0x31')]['sort']);_0x46485a[_0x7494('0x3a')]=qs[_0x7494('0x33')](_[_0x7494('0x3b')](_0x2736f6[_0x7494('0x31')],_0xb8242a['filters']));if(_0x2736f6[_0x7494('0x31')][_0x7494('0x3c')]){_0x46485a[_0x7494('0x3a')]=_[_0x7494('0x3d')](_0x46485a[_0x7494('0x3a')],{'$or':_[_0x7494('0x2d')](_0x46485a[_0x7494('0x35')],function(_0x2a5d4c){var _0x530508={};_0x530508[_0x2a5d4c]={'$like':'%'+_0x2736f6[_0x7494('0x31')][_0x7494('0x3c')]+'%'};return _0x530508;})});}_0x46485a=_[_0x7494('0x3d')]({},_0x46485a,_0x2736f6[_0x7494('0x3e')]);return _0x5847e5[_0x7494('0x50')](_0x46485a);}})[_0x7494('0x28')](function(_0x424f3e){if(_0x424f3e){_0x5affe4=_0x424f3e[_0x7494('0x4d')];if(!_0x2736f6['query'][_0x7494('0x38')](_0x7494('0x51'))){_0x46485a['limit']=qs[_0x7494('0x20')](_0x2736f6[_0x7494('0x31')][_0x7494('0x20')]);_0x46485a[_0x7494('0x23')]=qs[_0x7494('0x23')](_0x2736f6[_0x7494('0x31')][_0x7494('0x23')]);}return _0x5847e5[_0x7494('0x50')](_0x46485a);}})['then'](function(_0x5c4528){if(_0x5c4528){return _0x5c4528?{'count':_0x5affe4,'rows':_0x5c4528}:null;}})[_0x7494('0x28')](respondWithResult(_0x56bb20,null))[_0x7494('0x46')](handleError(_0x56bb20,null));};