Skip to content

Commit

Permalink
Sendable methods work in 5.10 and `swift package resolve --skip-upd…
Browse files Browse the repository at this point in the history
…ate` is deprecated (#132)

* Sendable methods work in 5.10

* swift package resolve --skip-update is deprecated in Swift 6 because it doesn't work as expected
  • Loading branch information
gwynne authored May 19, 2024
1 parent 64cc082 commit 73d303c
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 5 deletions.
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ WORKDIR /build
# as long as your Package.swift/Package.resolved
# files do not change.
COPY ./Package.* ./
RUN swift package resolve --skip-update \
RUN swift package resolve \
$([ -f ./Package.resolved ] && echo "--force-resolved-versions" || true)

# Copy entire repo into container
Expand Down
11 changes: 7 additions & 4 deletions Sources/App/Controllers/TodoController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -5,24 +5,27 @@ struct TodoController: RouteCollection {
func boot(routes: RoutesBuilder) throws {
let todos = routes.grouped("todos")

todos.get(use: { try await self.index(req: $0) })
todos.post(use: { try await self.create(req: $0) })
todos.get(use: self.index)
todos.post(use: self.create)
todos.group(":todoID") { todo in
todo.delete(use: { try await self.delete(req: $0) })
todo.delete(use: self.delete)
}
}


@Sendable
func index(req: Request) async throws -> [TodoDTO] {
try await Todo.query(on: req.db).all().map { $0.toDTO() }
}

@Sendable
func create(req: Request) async throws -> TodoDTO {
let todo = try req.content.decode(TodoDTO.self).toModel()

try await todo.save(on: req.db)
return todo.toDTO()
}

@Sendable
func delete(req: Request) async throws -> HTTPStatus {
guard let todo = try await Todo.find(req.parameters.get("todoID"), on: req.db) else {
throw Abort(.notFound)
Expand Down

0 comments on commit 73d303c

Please sign in to comment.