This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
struct PostAndComments { | |
var post: Post | |
var comments: [Comment] | |
} | |
func showPostsWithComments() -> Future<[PostAndComments]> { | |
return getPostsFromDatabase().flatMap { posts -> Future<[PostAndComments]> in | |
return posts.flatMap { post -> Future<[PostAndComments]> in | |
return post.getComments().map { comments -> [PostAndComments] in | |
return PostAndComment(post: post, comments: comments) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import Vapor | |
/// Controls basic CRUD operations on `Post`s. | |
final class PostController { | |
/// Returns a list of all `Posts`s. | |
/// GET /posts | |
func index(_ req: Request) throws -> Future<[Post]> { | |
return Post.query(on: req).all() //1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import Vapor | |
public func routes(_ router: Router) throws { | |
let postController = PostController() // 1 | |
// 2 | |
/// GET /posts | |
router.get("posts", use: postController.index) | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import FluentSQLite | |
import Vapor | |
/// Called before your application initializes. | |
public func configure(_ config: inout Config, _ env: inout Environment, _ services: inout Services) throws { | |
// Register providers first | |
try services.register(FluentSQLiteProvider()) | |
// Register routes to the router |
OlderNewer