Skip to content

Commit 7f9d0a3

Browse files
committed
Convert JPR and related ELFs to a/a
1 parent cc0d525 commit 7f9d0a3

File tree

3 files changed

+19
-22
lines changed

3 files changed

+19
-22
lines changed

Sources/App/Controllers/PackageController+routes.swift

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -301,7 +301,7 @@ enum PackageController {
301301
}
302302

303303
let pkg = try await Joined<Package, Repository>
304-
.query(on: req.db, owner: owner, repository: repository).get()
304+
.query(on: req.db, owner: owner, repository: repository)
305305

306306
// For repositories that have no README file at all.
307307
guard let readmeHtmlUrl = pkg.repository?.readmeHtmlUrl else {
@@ -328,18 +328,15 @@ enum PackageController {
328328
}
329329

330330
@Sendable
331-
static func releases(req: Request) throws -> EventLoopFuture<Node<HTML.BodyContext>> {
331+
static func releases(req: Request) async throws -> Node<HTML.BodyContext> {
332332
guard
333333
let owner = req.parameters.get("owner"),
334334
let repository = req.parameters.get("repository")
335-
else {
336-
return req.eventLoop.future(error: Abort(.notFound))
337-
}
335+
else { throw Abort(.notFound) }
338336

339-
return Joined<Package, Repository>
340-
.query(on: req.db, owner: owner, repository: repository)
341-
.map { PackageReleases.Model.init(package: $0) }
342-
.map { PackageReleases.View(model: $0).document() }
337+
let pkg = try await Joined<Package, Repository>.query(on: req.db, owner: owner, repository: repository)
338+
let model = PackageReleases.Model(package: pkg)
339+
return PackageReleases.View(model: model).document()
343340
}
344341

345342
@Sendable

Sources/App/Core/Query+Support/Joined+Package.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ extension Joined where M == Package, R == Repository {
2626
method: .left)
2727
}
2828

29-
static func query(on database: Database, owner: String, repository: String) -> EventLoopFuture<Self> {
30-
query(on: database)
29+
static func query(on database: Database, owner: String, repository: String) async throws -> Self {
30+
try await query(on: database)
3131
.filter(Repository.self, \.$owner, .custom("ilike"), owner)
3232
.filter(Repository.self, \.$name, .custom("ilike"), repository)
3333
.first()

Tests/AppTests/JoinedTests.swift

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -19,36 +19,36 @@ import XCTest
1919
class JoinedTests: AppTestCase {
2020
typealias JPR = Joined<Package, Repository>
2121

22-
func test_query_owner_repository() throws {
22+
func test_query_owner_repository() async throws {
2323
// setup
2424
let pkg = Package(url: "1")
25-
try pkg.save(on: app.db).wait()
26-
try Repository(package: pkg, name: "bar", owner: "foo")
27-
.save(on: app.db).wait()
25+
try await pkg.save(on: app.db)
26+
try await Repository(package: pkg, name: "bar", owner: "foo")
27+
.save(on: app.db)
2828
do { // inselected package
2929
let pkg = Package(url: "2")
30-
try pkg.save(on: app.db).wait()
31-
try Repository(package: pkg, name: "bar2", owner: "foo")
32-
.save(on: app.db).wait()
30+
try await pkg.save(on: app.db)
31+
try await Repository(package: pkg, name: "bar2", owner: "foo")
32+
.save(on: app.db)
3333
}
3434

3535
// MUT
36-
let jpr = try JPR.query(on: app.db, owner: "foo", repository: "bar").wait()
36+
let jpr = try await JPR.query(on: app.db, owner: "foo", repository: "bar")
3737

3838
// validate
3939
XCTAssertEqual(jpr.package.id, pkg.id)
4040
XCTAssertEqual(jpr.repository?.owner, "foo")
4141
XCTAssertEqual(jpr.repository?.name, "bar")
4242
}
4343

44-
func test_repository_access() throws {
44+
func test_repository_access() async throws {
4545
// Test accessing repository through the join vs through the package relation
4646
// setup
4747
let p = try savePackage(on: app.db, "1")
48-
try Repository(package: p).save(on: app.db).wait()
48+
try await Repository(package: p).save(on: app.db)
4949

5050
// MUT
51-
let jpr = try XCTUnwrap(JPR.query(on: app.db).first().wait())
51+
let jpr = try await XCTUnwrapAsync(try await JPR.query(on: app.db).first())
5252

5353
// validate
5454
XCTAssertNotNil(jpr.repository)

0 commit comments

Comments
 (0)