Steven Fukase 4 лет назад
Родитель
Сommit
95dbedcf0c

+ 19 - 7
src/client/js/components/Admin/SlackIntegration/CustomBotWithProxySettings.jsx

@@ -54,16 +54,28 @@ const CustomBotWithProxySettings = (props) => {
   };
   };
 
 
   const discardTokenHandler = async() => {
   const discardTokenHandler = async() => {
-    const response = await appContainer.apiv3.delete('/slack-integration-settings/slack-app-integration',
-      { tokenGtoP, tokenPtoG });
-    console.log(response);
+    try {
+      await appContainer.apiv3.delete('/slack-integration-settings/slack-app-integration', { tokenGtoP, tokenPtoG });
+      setTokenGtoP('');
+      setTokenPtoG('');
+    }
+    catch (err) {
+      toastError(err);
+      logger(err);
+    }
   };
   };
 
 
   const generateTokenHandler = async() => {
   const generateTokenHandler = async() => {
-    const response = await appContainer.apiv3.put('/slack-integration-settings/access-tokens');
-    console.log(response);
-    setTokenGtoP('setAccessTokenForProxy');
-    setTokenPtoG('tokenForProxy');
+    try {
+      const { data: { tokenGtoP, tokenPtoG } } = await appContainer.apiv3.put('/slack-integration-settings/access-tokens');
+      setTokenGtoP(tokenGtoP);
+      setTokenPtoG(tokenPtoG);
+    }
+    catch (err) {
+      toastError(err);
+      logger(err);
+    }
+
   };
   };
 
 
   const deleteSlackSettingsHandler = async() => {
   const deleteSlackSettingsHandler = async() => {

+ 11 - 4
src/client/js/components/Admin/SlackIntegration/WithProxyAccordions.jsx

@@ -73,9 +73,6 @@ const GeneratingTokensAndRegisteringProxyServiceProcess = withUnstatedContainers
   const { t } = useTranslation();
   const { t } = useTranslation();
   const growiUrl = props.appContainer.config.crowi.url;
   const growiUrl = props.appContainer.config.crowi.url;
 
 
-  const discardTokenHandler = props.discardTokenHandler;
-  const generateTokenHandler = props.generateTokenHandler;
-
   let tokenGtoP;
   let tokenGtoP;
   if (props.tokenGtoP != null) {
   if (props.tokenGtoP != null) {
     tokenGtoP = props.tokenGtoP;
     tokenGtoP = props.tokenGtoP;
@@ -86,6 +83,16 @@ const GeneratingTokensAndRegisteringProxyServiceProcess = withUnstatedContainers
     tokenPtoG = props.tokenPtoG;
     tokenPtoG = props.tokenPtoG;
   }
   }
 
 
+  let discardTokenHandler;
+  if (props.discardTokenHandler != null) {
+    discardTokenHandler = props.discardTokenHandler;
+  }
+
+  let generateTokenHandler;
+  if (props.generateTokenHandler != null) {
+    generateTokenHandler = props.generateTokenHandler;
+  }
+
   return (
   return (
     <div className="py-4 px-5">
     <div className="py-4 px-5">
       <p className="font-weight-bold">1. {t('admin:slack_integration.accordion.generate_access_token')}</p>
       <p className="font-weight-bold">1. {t('admin:slack_integration.accordion.generate_access_token')}</p>
@@ -118,6 +125,7 @@ const GeneratingTokensAndRegisteringProxyServiceProcess = withUnstatedContainers
             type="button"
             type="button"
             className="btn btn-outline-secondary mx-2"
             className="btn btn-outline-secondary mx-2"
             onClick={discardTokenHandler}
             onClick={discardTokenHandler}
+            disabled={!tokenGtoP || !tokenPtoG}
           >
           >
             { t('admin:slack_integration.access_token_settings.discard') }
             { t('admin:slack_integration.access_token_settings.discard') }
           </button>
           </button>
@@ -326,7 +334,6 @@ const WithProxyAccordions = (props) => {
           <Accordion
           <Accordion
             title={<><span className="mr-2">{key}</span>{t(`admin:slack_integration.accordion.${value.title}`)}</>}
             title={<><span className="mr-2">{key}</span>{t(`admin:slack_integration.accordion.${value.title}`)}</>}
             key={key}
             key={key}
-            props={props}
           >
           >
             {value.content}
             {value.content}
           </Accordion>
           </Accordion>

+ 4 - 3
src/server/routes/apiv3/slack-integration-settings.js

@@ -401,11 +401,12 @@ module.exports = (crowi) => {
    *          200:
    *          200:
    *            description: Succeeded to delete access tokens for slack
    *            description: Succeeded to delete access tokens for slack
    */
    */
-  router.delete('/slack-app-integration', validator.AccessTokens, apiV3FormValidator, async(req, res) => {
+  router.delete('/slack-app-integration', validator.AccessTokens, async(req, res) => {
     const SlackAppIntegration = mongoose.model('SlackAppIntegration');
     const SlackAppIntegration = mongoose.model('SlackAppIntegration');
-    const { tokenGtoP, tokenPtoG } = req.body;
+    const { tokenGtoP, tokenPtoG } = req.query;
     try {
     try {
-      await SlackAppIntegration.findOneAndDelete({ tokenGtoP, tokenPtoG });
+      const response = await SlackAppIntegration.findOneAndDelete({ tokenGtoP, tokenPtoG });
+      return res.apiv3({ response });
     }
     }
     catch (error) {
     catch (error) {
       const msg = 'Error occured in deleting access token for slack app tokens';
       const msg = 'Error occured in deleting access token for slack app tokens';