Tldraw/apps/dotcom-worker/src/lib/routes/getReadonlySlug.ts

24 wiersze
635 B
TypeScript
Czysty Zwykły widok Historia

2024-03-15 12:34:59 +00:00
import { IRequest } from 'itty-router'
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
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()
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({
slug,
2024-03-15 12:34:59 +00:00
})
)
}