Skip to content

Instantly share code, notes, and snippets.

@timbaev
Created January 28, 2019 06:52
Show Gist options
  • Save timbaev/90cdd3dac672eae95c8adfde3dffde12 to your computer and use it in GitHub Desktop.
Save timbaev/90cdd3dac672eae95c8adfde3dffde12 to your computer and use it in GitHub Desktop.
import Vapor
final class TodoController {
fileprivate var todoService: TodoService
init(todoService: TodoService) {
self.todoService = todoService
}
func fetch(_ req: Request) throws -> Future<[TodoDto]> {
return try self.todoService.fetch(request: req)
}
func create(_ req: Request, todoDto: TodoDto) throws -> Future<TodoDto> {
return try self.todoService.create(request: req, todoDto: todoDto)
}
func delete(_ req: Request) throws -> Future<TodoDto> {
let todoID = try req.parameters.next(Int.self)
return try self.todoService.delete(request: req, todoID: todoID)
}
}
extension TodoController: RouteCollection {
func boot(router: Router) throws {
let group = router.grouped("v1/todo").grouped(JWTMiddleware())
group.post(TodoDto.self, use: self.create)
group.get(use: self.fetch)
group.delete(Int.parameter, use: self.delete)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment