feat: Reorganizes files.

This commit is contained in:
2025-01-10 14:03:52 -05:00
parent 280bc31a03
commit 455287fe1c
10 changed files with 0 additions and 0 deletions

View File

@@ -0,0 +1,36 @@
import Fluent
import Vapor
struct UserDB {
func create(_ model: User.Create, on db: any Database) async throws -> User.DTO {
guard model.password == model.confirmPassword else {
throw Abort(.badRequest, reason: "Passwords did not match.")
}
let user = try User(
username: model.username,
email: model.email,
passwordHash: Bcrypt.hash(model.password)
)
try await user.save(on: db)
return user.toDTO()
}
func login(user: User, on db: any Database) async throws -> UserToken {
let token = try user.generateToken()
try await token.save(on: db)
return token
}
func fetchAll(on db: any Database) async throws -> [User.DTO] {
try await User.query(on: db).all().map { $0.toDTO() }
}
func delete(id: User.IDValue, on db: any Database) async throws {
guard let user = try await User.find(id, on: db) else {
throw Abort(.notFound)
}
try await user.delete(on: db)
}
}