Turn a channel name into an id before touching a message
conversations.history and chat.delete only take ids, so a stored name like logbuch answered channel_not_found. The name is resolved through conversations.list first, and the hint asks for the id.
This commit is contained in:
@@ -8,7 +8,7 @@ import {
|
||||
} from '~/data/repositories/settings'
|
||||
import { invalid, isUuid, readField, readFlag, type AdminFormState } from './admin-forms'
|
||||
import { runWeeklyReport } from './report-settings'
|
||||
import { deleteFromSlack, findMessageTs } from './slack'
|
||||
import { deleteFromSlack, findMessageTs, resolveChannelId } from './slack'
|
||||
import { reportText } from './weekly-report'
|
||||
import type { Viewer } from './auth-access'
|
||||
|
||||
@@ -132,12 +132,18 @@ export async function performDeleteMessage(viewer: Viewer, formData: FormData):
|
||||
return invalid('runNoChannel')
|
||||
}
|
||||
|
||||
const resolved = await resolveChannelId(token, channel)
|
||||
|
||||
if (!resolved.ok) {
|
||||
return invalid('slackSaid', { detail: resolved.detail })
|
||||
}
|
||||
|
||||
let messageTs = run.messageTs
|
||||
|
||||
if (!messageTs) {
|
||||
const lookup = await findMessageTs({
|
||||
token,
|
||||
channel,
|
||||
channel: resolved.id,
|
||||
text: reportText({ from: run.fromAt, to: run.toAt, total: run.total }),
|
||||
around: run.createdAt,
|
||||
})
|
||||
@@ -149,7 +155,7 @@ export async function performDeleteMessage(viewer: Viewer, formData: FormData):
|
||||
messageTs = lookup.messageTs
|
||||
}
|
||||
|
||||
const result = await deleteFromSlack(token, channel, messageTs)
|
||||
const result = await deleteFromSlack(token, resolved.id, messageTs)
|
||||
|
||||
if (!result.ok) {
|
||||
return invalid('slackSaid', { detail: result.detail })
|
||||
@@ -163,7 +169,7 @@ export async function performDeleteMessage(viewer: Viewer, formData: FormData):
|
||||
action: 'settings.reportDelete',
|
||||
entity: 'setting',
|
||||
entityId: run.id,
|
||||
data: { channel, messageTs },
|
||||
data: { channel: resolved.id, messageTs },
|
||||
})
|
||||
|
||||
return { status: 'ok', message: 'messageDeleted' }
|
||||
|
||||
Reference in New Issue
Block a user