Share: load server data on page load

This commit is contained in:
Frank 2025-06-08 01:17:54 -04:00
parent 879d02f86c
commit 1d782dc19a
3 changed files with 329 additions and 132 deletions

View file

@ -69,6 +69,15 @@ export class SyncServer extends DurableObject<Env> {
return secret
}
public async messages() {
const data = await this.ctx.storage.list()
const messages = []
for (const [key, content] of data.entries()) {
messages.push({ key, content })
}
return messages
}
private async getSecret() {
return this.ctx.storage.get<string>("secret")
}
@ -163,5 +172,17 @@ export default {
const stub = env.SYNC_SERVER.get(env.SYNC_SERVER.idFromName(id))
return stub.fetch(request)
}
if (request.method === "GET" && method === "share_messages") {
const id = url.searchParams.get("id")
console.log("share_messages", id)
if (!id)
return new Response("Error: Share ID is required", { status: 400 })
const stub = env.SYNC_SERVER.get(env.SYNC_SERVER.idFromName(id))
const messages = await stub.messages()
return new Response(JSON.stringify({ messages }), {
headers: { "Content-Type": "application/json" },
})
}
},
}