feat: Fixes release build failures and get's release dockerfile working.

This commit is contained in:
2025-01-24 16:47:00 -05:00
parent 90c6058d56
commit 978ce8c74f
38 changed files with 233 additions and 217 deletions

View File

@@ -6,8 +6,8 @@ import Vapor
public extension DatabaseClient.Employees {
static func live(database: any Database) -> DatabaseClient.Employees {
.init { create in
static func live(database: any Database) -> Self {
Self { create in
let model = try create.toModel()
try await model.save(on: database)
return try model.toDTO()
@@ -18,13 +18,13 @@ public extension DatabaseClient.Employees {
try await model.delete(on: database)
} fetchAll: { request in
var query = EmployeeModel.query(on: database)
.sort(\.$lastName)
.sort(\EmployeeModel.$lastName)
switch request {
case .active:
query = query.filter(\.$active == true)
query = query.filter(\EmployeeModel.$active == true)
case .inactive:
query = query.filter(\.$active == false)
query = query.filter(\EmployeeModel.$active == false)
case .all:
break
}

View File

@@ -9,7 +9,8 @@ public extension DatabaseClient.PurchaseOrders {
.init { create in
let model = try create.toModel()
try await model.save(on: database)
let fetched = try await PurchaseOrderModel.allQuery(on: database).filter(\.$id == model.id!).first()!
let fetched = try await PurchaseOrderModel.allQuery(on: database)
.filter(\PurchaseOrderModel.$id == model.id!).first()!
return try fetched.toDTO()
} fetchAll: {
try await PurchaseOrderModel.allQuery(on: database)
@@ -21,7 +22,7 @@ public extension DatabaseClient.PurchaseOrders {
.map { try $0.toDTO() }
} get: { id in
try await PurchaseOrderModel.allQuery(on: database)
.filter(\.$id == id)
.filter(\PurchaseOrderModel.$id == id)
.first()
.map { try $0.toDTO() }
} delete: { id in
@@ -34,17 +35,17 @@ public extension DatabaseClient.PurchaseOrders {
switch search {
case let .employee(id):
return try await query.filter(\.$createdFor.$id == id)
return try await query.filter(\PurchaseOrderModel.$createdFor.$id == id)
.paginate(page)
.map { try $0.toDTO() }
case let .customer(search):
return try await query.filter(\.$customer ~~ search)
return try await query.filter(\PurchaseOrderModel.$customer ~~ search)
.paginate(page)
.map { try $0.toDTO() }
case let .vendor(id):
return try await query.filter(\.$vendorBranch.$id == id)
return try await query.filter(\PurchaseOrderModel.$vendorBranch.$id == id)
.paginate(page)
.map { try $0.toDTO() }
}
@@ -190,11 +191,11 @@ final class PurchaseOrderModel: Model, Codable, @unchecked Sendable {
static func allQuery(on db: any Database) -> QueryBuilder<PurchaseOrderModel> {
PurchaseOrderModel.query(on: db)
.sort(\.$id, .descending)
.with(\.$createdBy)
.with(\.$createdFor)
.with(\.$vendorBranch) { branch in
branch.with(\.$vendor)
.sort(\PurchaseOrderModel.$id, .descending)
.with(\PurchaseOrderModel.$createdBy)
.with(\PurchaseOrderModel.$createdFor)
.with(\PurchaseOrderModel.$vendorBranch) { branch in
branch.with(\VendorBranchModel.$vendor)
}
}
}

View File

@@ -28,9 +28,9 @@ public extension DatabaseClient.Users {
var query = UserModel.query(on: database)
if let username = login.username {
query = query.filter(\.$username == username)
query = query.filter(\UserModel.$username == username)
} else {
query = query.filter(\.$email == login.email!)
query = query.filter(\UserModel.$email == login.email!)
}
guard let user = try await query.first() else {
@@ -265,7 +265,7 @@ public struct UserPasswordAuthenticator: AsyncBasicAuthenticator {
public func authenticate(basic: BasicAuthorization, for request: Request) async throws {
guard let user = try await UserModel.query(on: request.db)
.filter(\.$username == basic.username)
.filter(\UserModel.$username == basic.username)
.first(),
try Bcrypt.verify(basic.password, created: user.passwordHash)
else {
@@ -282,8 +282,8 @@ public struct UserTokenAuthenticator: AsyncBearerAuthenticator {
public func authenticate(bearer: BearerAuthorization, for request: Request) async throws {
guard let token = try await UserTokenModel.query(on: request.db)
.filter(\.$value == bearer.token)
.with(\.$user)
.filter(\UserTokenModel.$value == bearer.token)
.with(\UserTokenModel.$user)
.first()
else {
throw Abort(.unauthorized)
@@ -299,7 +299,7 @@ public struct UserSessionAuthenticator: AsyncSessionAuthenticator {
public func authenticate(sessionID: User.SessionID, for request: Request) async throws {
guard let user = try await UserModel.query(on: request.db)
.filter(\.$username == sessionID)
.filter(\UserModel.$username == sessionID)
.first()
else {
throw Abort(.unauthorized)

View File

@@ -23,8 +23,8 @@ public extension DatabaseClient.VendorBranches {
break
case let .for(vendorID: vendorID):
let branches = try await VendorModel.query(on: db)
.filter(\.$id == vendorID)
.with(\.$branches)
.filter(\VendorModel.$id == vendorID)
.with(\VendorModel.$branches)
.first()?
.branches
.map { try $0.toDTO() }
@@ -36,7 +36,7 @@ public extension DatabaseClient.VendorBranches {
return try await query.all().map { try $0.toDTO() }
} fetchAllWithDetail: {
try await VendorBranchModel.query(on: db)
.with(\.$vendor)
.with(\VendorBranchModel.$vendor)
.all()
.map { try $0.toDetail() }
} get: { id in

View File

@@ -17,13 +17,13 @@ public extension DatabaseClient.Vendors {
}
try await model.delete(on: db)
} fetchAll: { request in
var query = VendorModel.query(on: db).sort(\.$name, .ascending)
var query = VendorModel.query(on: db).sort(\VendorModel.$name, .ascending)
let withBranches = request == .withBranches
switch request {
case .withBranches:
query = query.with(\.$branches)
query = query.with(\VendorModel.$branches)
case .all:
break
}
@@ -34,7 +34,7 @@ public extension DatabaseClient.Vendors {
var query = VendorModel.query(on: db).filter(\.$id == id)
let withBranches = request == .withBranches
if withBranches {
query = query.with(\.$branches)
query = query.with(\VendorModel.$branches)
}
return try await query.first().map { try $0.toDTO(includeBranches: withBranches) }
} update: { id, updates, withBranches in
@@ -47,8 +47,8 @@ public extension DatabaseClient.Vendors {
return try model.toDTO()
}
return try await VendorModel.query(on: db)
.filter(\.$id == id)
.with(\.$branches)
.filter(\VendorModel.$id == id)
.with(\VendorModel.$branches)
.first()!
.toDTO()
}