Delete uses findOneAndDelete with author match (no TOCTOU window); existence check only runs on miss to distinguish 403 vs 404. Posts list capped at 200. Drop unused resolveTagChannel and refreshParams; route slack URL building through the composable's slackUrl helper.
19 lines
445 B
JavaScript
19 lines
445 B
JavaScript
export function useBoardChannels() {
|
|
const channels = useState('board.channels', () => [])
|
|
|
|
async function fetchChannels() {
|
|
const result = await $fetch('/api/board/channels')
|
|
channels.value = result?.channels || []
|
|
return channels.value
|
|
}
|
|
|
|
function slackUrl(channelId) {
|
|
return `https://gammaspace.slack.com/archives/${channelId}`
|
|
}
|
|
|
|
return {
|
|
channels: readonly(channels),
|
|
fetchChannels,
|
|
slackUrl,
|
|
}
|
|
}
|