Files
cod-backend/Sources/App/Controllers/TodoController.swift
Michael Simard 676a55d2df init
2020-05-25 23:32:28 -05:00

30 lines
874 B
Swift

import Fluent
import Vapor
struct TodoController: RouteCollection {
func boot(routes: RoutesBuilder) throws {
let todos = routes.grouped("match")
todos.get(use: index)
todos.post(use: create)
todos.group(":matchID") { todo in
todo.delete(use: delete)
}
}
func index(req: Request) throws -> EventLoopFuture<[Todo]> {
return Todo.query(on: req.db).all()
}
func create(req: Request) throws -> EventLoopFuture<Todo> {
let todo = try req.content.decode(Todo.self)
return todo.save(on: req.db).map { todo }
}
func delete(req: Request) throws -> EventLoopFuture<HTTPStatus> {
return Todo.find(req.parameters.get("matchID"), on: req.db)
.unwrap(or: Abort(.notFound))
.flatMap { $0.delete(on: req.db) }
.transform(to: .ok)
}
}