Skip to content

Instantly share code, notes, and snippets.

@hsharghi
hsharghi / Post.swift
Last active December 20, 2019 19:37
virgool-blog-0005
import Vapor
import FluentMySQL // 1
final class Post: MySQLModel { // 2
var id: Int?
var title: String
var body: String // 3
init(id: Int? = nil, title: String, body: String) { // 4
self.id = id
@hsharghi
hsharghi / PostController.swift
Last active December 21, 2019 11:12
virgool-post-controller-0015
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
@hsharghi
hsharghi / routes.swift
Last active December 21, 2019 12:35
virgool-blog-0008
import Vapor
public func routes(_ router: Router) throws {
let postController = PostController() // 1
// 2
/// GET /posts
router.get("posts", use: postController.index)
@hsharghi
hsharghi / configure.swift
Last active December 21, 2019 12:38
virgool-blog-0020
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