egg_server/routes/bot/index.ts
zhaoyingbo 69254635c8
All checks were successful
Egg Server CI/CD / build-image (push) Successful in 2m1s
Egg Server CI/CD / refresh-image (push) Successful in 14s
Egg Server CI/CD / fast-deploy (push) Successful in 3s
feat(event-proxy): 转发的时候过滤掉消息
2024-10-29 08:39:47 +00:00

37 lines
1.1 KiB
TypeScript

import { Context } from "../../types"
import { manageActionMsg } from "./actionMsg"
import { manageEventMsg } from "./eventMsg"
/**
* 处理机器人请求
* @param {Context.Data} ctx - 上下文数据,包含请求体、日志记录器和响应生成器
* @returns {Promise<Response>} 返回响应对象
*/
export const manageBotReq = async (ctx: Context.Data): Promise<Response> => {
const { body, larkBody, app, attachService } = ctx
// 检查请求体是否为空
if (!body) {
return ctx.genResp.badRequest("bot req body is empty")
}
// 验证机器人
if (body.type === "url_verification") {
ctx.logger.info(`bot challenge: ${body.challenge}`)
return Response.json({ challenge: body.challenge })
}
// 如果是michat的Event转发给MiChatServer
if (app === "michat" && larkBody.isEvent && !larkBody.isMessageEvent) {
attachService.proxyMiChatEvent(body)
}
// 处理消息事件
if (larkBody.isMessageEvent) manageEventMsg(ctx)
// 处理Action消息
if (larkBody.isAction) return await manageActionMsg(ctx)
// 返回成功响应
return ctx.genResp.ok()
}