Skip to content

Commit

Permalink
feat(api): implement message.delete
Browse files Browse the repository at this point in the history
  • Loading branch information
ilharp committed Mar 8, 2024
1 parent 6f71181 commit bf14ad4
Show file tree
Hide file tree
Showing 5 changed files with 59 additions and 2 deletions.
23 changes: 23 additions & 0 deletions packages/engine-chronocat-api/src/api/message/delete.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import { ChatType } from '@chronocat/red'
import type { ChronocatContext, MessageDeletePayload } from '@chronocat/shell'
import { recallMsg } from '../../definitions/msgService'

export const buildMessageDelete =
(ctx: ChronocatContext) =>
async ({ channel_id, message_id }: MessageDeletePayload) => {
await recallMsg({
peer: channel_id.startsWith('private:')
? {
chatType: ChatType.Private,
peerUid: ctx.chronocat.uix.getUid(channel_id.slice(8))!, // private:
}
: {
chatType: ChatType.Group,
peerUid: channel_id,
guildId: '',
},
msgIds: [message_id],
})

return {}
}
2 changes: 2 additions & 0 deletions packages/engine-chronocat-api/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import { buildAssetsGet } from './api/internal/assets/get'
import { qfaceGet, qfaceList } from './api/internal/qface'
import { buildLoginGet } from './api/login/get'
import { buildMessageCreate } from './api/message/create'
import { buildMessageDelete } from './api/message/delete'
import { buildMessageGet } from './api/message/get'
import { buildUserChannelCreate } from './api/user/channel/create'
import { buildHandler } from './handler'
Expand Down Expand Up @@ -47,6 +48,7 @@ export const apply = async (ctx: ChronocatContext) => {
register('guild.member.kick', buildGuildMemberKick(ctx))
register('message.create', buildMessageCreate(ctx))
register('message.get', buildMessageGet(ctx))
register('message.delete', buildMessageDelete(ctx))
register('login.get', buildLoginGet(ctx))
register('chronocat.internal.message.create.forward', buildMessageCreate(ctx))

Expand Down
4 changes: 2 additions & 2 deletions packages/shell/src/satori/routes/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import { guildMemberList } from './guild/member/list'
import { guildRemove } from './guild/remove'
// import { loginGet } from './login/get'
import { messageCreate } from './message/create'
// import { messageDelete } from './message/delete'
import { messageDelete } from './message/delete'
import { messageGet } from './message/get'
// import { messageList } from './message/list'
import { notImplemented } from './notimpl'
Expand Down Expand Up @@ -48,7 +48,7 @@ const routesIntl = {
// 'login.get': loginGet,
'message.create': messageCreate,
'message.get': messageGet,
// 'message.delete': messageDelete,
'message.delete': messageDelete,
'message.update': notImplemented,
// 'message.list': messageList,
'reaction.create': notImplemented,
Expand Down
30 changes: 30 additions & 0 deletions packages/shell/src/satori/routes/message/delete.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import type { MessageDeletePayload } from '../../types'
import type { RouteContext } from '../types'

export const messageDelete = async ({
cctx,
path,
req,
res,
json,
}: RouteContext) => {
const payload = (await json()) as MessageDeletePayload

const validateResult = await cctx.chronocat.validate('MessageDeletePayload')(
payload,
)

if (validateResult) {
const err = `解析 ${path} 请求时出现问题,来自 ${req.socket.remoteAddress}${validateResult}`

cctx.chronocat.l.error(err, {
code: 400,
})

res.writeHead(400)
res.end(`400 bad request\n${err}`)
return
}

return await cctx.chronocat.api['message.delete'](payload)
}
2 changes: 2 additions & 0 deletions packages/shell/src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import type {
Login,
Message,
MessageCreatePayload,
MessageDeletePayload,
MessageGetPayload,
UserPayload,
} from './satori/types'
Expand Down Expand Up @@ -116,6 +117,7 @@ export interface Methods {
Message[],
]
'message.get': [[MessageGetPayload], Message]
'message.delete': [[MessageDeletePayload], Record<string, never>]

'login.get': [[], Login]

Expand Down

0 comments on commit bf14ad4

Please sign in to comment.