2024-03-15 12:34:59 +00:00
|
|
|
import { IRequest } from 'itty-router'
|
2024-03-18 14:23:36 +00:00
|
|
|
import { nanoid } from 'nanoid'
|
|
|
|
import { Environment } from '../types'
|
2024-03-15 12:34:59 +00:00
|
|
|
import { fourOhFour } from '../utils/fourOhFour'
|
|
|
|
|
|
|
|
// Return a URL to a readonly version of the room
|
2024-03-18 14:23:36 +00:00
|
|
|
export async function getReadonlySlug(request: IRequest, env: Environment): Promise<Response> {
|
2024-03-15 12:34:59 +00:00
|
|
|
const roomId = request.params.roomId
|
|
|
|
if (!roomId) return fourOhFour()
|
|
|
|
|
2024-03-18 14:23:36 +00:00
|
|
|
let slug = await env.SLUG_TO_READONLY_SLUG.get(roomId)
|
|
|
|
|
|
|
|
if (!slug) {
|
|
|
|
slug = nanoid()
|
|
|
|
await env.SLUG_TO_READONLY_SLUG.put(roomId, slug)
|
|
|
|
await env.READONLY_SLUG_TO_SLUG.put(slug, roomId)
|
|
|
|
}
|
2024-03-15 12:34:59 +00:00
|
|
|
return new Response(
|
|
|
|
JSON.stringify({
|
2024-03-18 14:23:36 +00:00
|
|
|
slug,
|
2024-03-15 12:34:59 +00:00
|
|
|
})
|
|
|
|
)
|
|
|
|
}
|