This commit is contained in:
2024-08-22 18:20:29 +02:00
parent ee14d523cf
commit fb8d9b450e
36 changed files with 261 additions and 180 deletions

View File

@@ -0,0 +1,10 @@
import { useValidatedBody, z } from 'h3-zod'
export default defineEventHandler(async (event) => {
const users = await useDB().select().from(tables.users).all()
const { email } = await useValidatedBody(event, {
email: z.string(),
})
const user = users.find(user => user.email === email)
return !!user
})

View File

@@ -1,3 +0,0 @@
export default defineEventHandler(() => {
return { hello: 'API' }
})

View File

@@ -1,5 +0,0 @@
CREATE TABLE `users` (
`id` integer PRIMARY KEY NOT NULL,
`name` text DEFAULT '',
`created_at` text DEFAULT (CURRENT_DATE)
);

View File

@@ -1,49 +0,0 @@
{
"version": "6",
"dialect": "sqlite",
"id": "ef8e28cd-73a1-4801-9a0b-7e80169a57c0",
"prevId": "00000000-0000-0000-0000-000000000000",
"tables": {
"users": {
"name": "users",
"columns": {
"id": {
"name": "id",
"type": "integer",
"primaryKey": true,
"notNull": true,
"autoincrement": false
},
"name": {
"name": "name",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false,
"default": "''"
},
"created_at": {
"name": "created_at",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false,
"default": "(CURRENT_DATE)"
}
},
"indexes": {},
"foreignKeys": {},
"compositePrimaryKeys": {},
"uniqueConstraints": {}
}
},
"enums": {},
"_meta": {
"schemas": {},
"tables": {},
"columns": {}
},
"internal": {
"indexes": {}
}
}

View File

@@ -1,13 +0,0 @@
{
"version": "7",
"dialect": "sqlite",
"entries": [
{
"idx": 0,
"version": "6",
"when": 1721758030188,
"tag": "0000_hot_thunderball",
"breakpoints": true
}
]
}

View File

@@ -4,5 +4,6 @@ import { sql } from 'drizzle-orm'
export const users = sqliteTable('users', {
id: integer('id').primaryKey(),
name: text('name').default(''),
email: text('email').default(''),
createdAt: text('created_at').default(sql`(CURRENT_DATE)`),
})

View File

@@ -0,0 +1,18 @@
export default oauthGitHubEventHandler({
config: {
emailRequired: true,
},
async onSuccess(event, { user }) {
await setUserSession(event, {
user: {
email: user.email,
name: user.name,
},
})
return sendRedirect(event, '/home')
},
onError(event, error) {
console.error('GitHub OAuth error:', error)
return sendRedirect(event, '/')
},
})