Added Docker

This commit is contained in:
Tiemen van Olst
2025-09-09 08:52:28 +02:00
parent 7f1595dddd
commit 72d9f5e642
29 changed files with 10623 additions and 193 deletions

View File

@@ -0,0 +1,16 @@
import { sequelize } from '~/server/database'
export default defineEventHandler(async (event) => {
try {
// Import and run migrations
const { execSync } = await import('child_process')
execSync('npx sequelize-cli db:migrate', { stdio: 'inherit' })
return { success: true, message: 'Database migrated successfully' }
} catch (error) {
throw createError({
statusCode: 500,
statusMessage: 'Failed to migrate database'
})
}
})

View File

@@ -0,0 +1,20 @@
import { Post, User } from '~/server/database/models'
export default defineEventHandler(async (event) => {
try {
const posts = await Post.findAll({
include: [{
model: User,
as: 'author'
}],
order: [['createdAt', 'DESC']]
})
return posts
} catch (error) {
throw createError({
statusCode: 500,
statusMessage: 'Failed to fetch posts'
})
}
})

View File

@@ -0,0 +1,29 @@
import { Post, User } from '~/server/database/models'
export default defineEventHandler(async (event) => {
try {
const body = await readBody(event)
const post = await Post.create({
title: body.title,
content: body.content,
published: body.published || false,
authorId: body.authorId
})
// Get the post with author information
const postWithAuthor = await Post.findByPk(post.id, {
include: [{
model: User,
as: 'author'
}]
})
return postWithAuthor
} catch (error) {
throw createError({
statusCode: 500,
statusMessage: 'Failed to create post'
})
}
})

View File

@@ -0,0 +1,19 @@
import { User, Post } from '~/server/database/models';
export default defineEventHandler(async (event) => {
try {
const users = await User.findAll({
include: [{
model: Post,
as: 'posts'
}]
})
return users
} catch (error) {
console.error('Error fetching users:', error);
throw createError({
statusCode: 500,
statusMessage: 'Failed to fetch users'
})
}
})

View File

@@ -0,0 +1,19 @@
import { User } from '~/server/database/models'
export default defineEventHandler(async (event) => {
try {
const body = await readBody(event)
const user = await User.create({
email: body.email,
name: body.name
})
return user
} catch (error) {
throw createError({
statusCode: 500,
statusMessage: 'Failed to create user'
})
}
})