feat: Working on hummingbird app

This commit is contained in:
2025-01-14 07:51:13 -05:00
parent 6225c32007
commit 4f47f1aed8
10 changed files with 223 additions and 86 deletions

View File

@@ -10,16 +10,16 @@ public extension DatabaseClient.Users {
.init { create in
let model = try create.toModel()
try await model.save(on: database)
return model.toDTO()
return try model.toDTO()
} delete: { id in
guard let model = try await UserModel.find(id, on: database) else {
throw NotFoundError()
}
try await model.delete(on: database)
} fetchAll: {
try await UserModel.query(on: database).all().map { $0.toDTO() }
try await UserModel.query(on: database).all().map { try $0.toDTO() }
} get: { id in
try await UserModel.find(id, on: database).map { $0.toDTO() }
try await UserModel.find(id, on: database).map { try $0.toDTO() }
} login: { login in
try login.validate()
@@ -168,13 +168,13 @@ final class UserModel: Model, @unchecked Sendable {
self.passwordHash = passwordHash
}
func toDTO() -> User {
.init(
id: id,
createdAt: createdAt,
func toDTO() throws -> User {
try .init(
id: requireID(),
email: email,
updatedAt: updatedAt,
username: username
username: username,
createdAt: createdAt,
updatedAt: updatedAt
)
}