| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- import { isServer } from '@growi/core/dist/utils';
- import { Container } from 'unstated';
- import { apiv3Get, apiv3Put } from '../util/apiv3-client';
- /**
- * Service container for admin LegacySlackIntegration setting page (LegacySlackIntegration.jsx)
- * @extends {Container} unstated Container
- */
- export default class AdminSlackIntegrationLegacyContainer extends Container {
- constructor(appContainer) {
- super();
- if (isServer()) {
- return;
- }
- this.appContainer = appContainer;
- this.state = {
- isSlackbotConfigured: false,
- retrieveError: null,
- selectSlackOption: 'Incoming Webhooks',
- webhookUrl: '',
- isIncomingWebhookPrioritized: false,
- slackToken: '',
- };
- }
- /**
- * Workaround for the mangling in production build to break constructor.name
- */
- static getClassName() {
- return 'AdminSlackIntegrationLegacyContainer';
- }
- /**
- * Retrieve notificationData
- */
- async retrieveData() {
- const response = await apiv3Get('/slack-integration-legacy-settings/');
- const { slackIntegrationParams } = response.data;
- this.setState({
- isSlackbotConfigured: slackIntegrationParams.isSlackbotConfigured,
- webhookUrl: slackIntegrationParams.webhookUrl,
- isIncomingWebhookPrioritized: slackIntegrationParams.isIncomingWebhookPrioritized,
- slackToken: slackIntegrationParams.slackToken,
- });
- }
- /**
- * Switch slackOption
- */
- switchSlackOption(slackOption) {
- this.setState({ selectSlackOption: slackOption });
- }
- /**
- * Change webhookUrl
- */
- changeWebhookUrl(webhookUrl) {
- this.setState({ webhookUrl });
- }
- /**
- * Switch incomingWebhookPrioritized
- */
- switchIsIncomingWebhookPrioritized() {
- this.setState({ isIncomingWebhookPrioritized: !this.state.isIncomingWebhookPrioritized });
- }
- /**
- * Change slackToken
- */
- changeSlackToken(slackToken) {
- this.setState({ slackToken });
- }
- /**
- * Update slackAppConfiguration
- * @memberOf SlackAppConfiguration
- */
- async updateSlackAppConfiguration() {
- const response = await apiv3Put('/slack-integration-legacy-settings/', {
- webhookUrl: this.state.webhookUrl,
- isIncomingWebhookPrioritized: this.state.isIncomingWebhookPrioritized,
- slackToken: this.state.slackToken,
- });
- return response;
- }
- }
|