diff --git a/src/hooks.ts b/src/hooks.ts new file mode 100644 index 0000000..90345f4 --- /dev/null +++ b/src/hooks.ts @@ -0,0 +1,10 @@ +import type { Reroute } from '@sveltejs/kit'; + +export const reroute: Reroute = async ({ url }) => { + + const subdomain = url.hostname.split('.')[0] + + if (url.pathname === '/.well-known/atproto-did') { + return `/handles/${subdomain}/.well-known/atproto-did` + } +} \ No newline at end of file diff --git a/src/lib/server/db/schema.ts b/src/lib/server/db/schema.ts index 01ed1b3..38d5f7b 100644 --- a/src/lib/server/db/schema.ts +++ b/src/lib/server/db/schema.ts @@ -1,6 +1,12 @@ +import { sql } from 'drizzle-orm'; import { sqliteTable, text, integer } from 'drizzle-orm/sqlite-core'; export const user = sqliteTable('user', { - id: integer('id').primaryKey(), - age: integer('age') + id: integer('id').primaryKey({ autoIncrement: true }), + // One handle, per person + did: text('did_plc').unique().notNull(), + handle: text('handle').unique().notNull(), + createdAt: text('created_at').notNull().default(sql`(CURRENT_TIMESTAMP)`), + // Eventually I want people to be able to update their handle, but that'll probably require implementing oauth + updatedAt: text('updated_at').notNull().default(sql`(CURRENT_TIMESTAMP)`), }); diff --git a/src/routes/.well-known/atproto-did/+page.svelte b/src/routes/.well-known/atproto-did/+page.svelte new file mode 100644 index 0000000..e69de29 diff --git a/src/routes/handles/[handle]/.well-known/atproto-did/+page.svelte b/src/routes/handles/[handle]/.well-known/atproto-did/+page.svelte new file mode 100644 index 0000000..5b41857 --- /dev/null +++ b/src/routes/handles/[handle]/.well-known/atproto-did/+page.svelte @@ -0,0 +1,3 @@ +

+ This worked +

\ No newline at end of file