|
@@ -25,6 +25,7 @@ import { RelationsService } from '~/services/RelationsService';
|
|
|
import { UnregisterService } from '~/services/UnregisterService';
|
|
import { UnregisterService } from '~/services/UnregisterService';
|
|
|
import { InvalidUrlError } from '../models/errors';
|
|
import { InvalidUrlError } from '../models/errors';
|
|
|
import loggerFactory from '~/utils/logger';
|
|
import loggerFactory from '~/utils/logger';
|
|
|
|
|
+import { JoinToConversationMiddleware } from '~/middlewares/slack-to-growi/join-to-conversation';
|
|
|
|
|
|
|
|
|
|
|
|
|
const logger = loggerFactory('slackbot-proxy:controllers:slack');
|
|
const logger = loggerFactory('slackbot-proxy:controllers:slack');
|
|
@@ -97,21 +98,10 @@ export class SlackCtrl {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Post('/commands')
|
|
@Post('/commands')
|
|
|
- @UseBefore(AddSigningSecretToReq, verifySlackRequest, AuthorizeCommandMiddleware)
|
|
|
|
|
|
|
+ @UseBefore(AddSigningSecretToReq, verifySlackRequest, AuthorizeCommandMiddleware, JoinToConversationMiddleware)
|
|
|
async handleCommand(@Req() req: SlackOauthReq, @Res() res: Res): Promise<void|string|Res|WebAPICallResult> {
|
|
async handleCommand(@Req() req: SlackOauthReq, @Res() res: Res): Promise<void|string|Res|WebAPICallResult> {
|
|
|
const { body, authorizeResult } = req;
|
|
const { body, authorizeResult } = req;
|
|
|
|
|
|
|
|
- if (body.text == null) {
|
|
|
|
|
- return 'No text.';
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
|
|
|
- const client = generateWebClient(authorizeResult.botToken!);
|
|
|
|
|
- const joinResult = await client.conversations.join({ channel: body.channel_id });
|
|
|
|
|
- if (!joinResult.ok) {
|
|
|
|
|
- logger.error(joinResult.error, joinResult);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
const growiCommand = parseSlashCommand(body);
|
|
const growiCommand = parseSlashCommand(body);
|
|
|
|
|
|
|
|
// register
|
|
// register
|