Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@JoeyBodnar
Created August 26, 2017 16:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save JoeyBodnar/b6ce86a4a3b7443b05af0a999a20df07 to your computer and use it in GitHub Desktop.
Save JoeyBodnar/b6ce86a4a3b7443b05af0a999a20df07 to your computer and use it in GitHub Desktop.
import Vapor
import FluentProvider
import HTTP
final class User: Model {
let storage = Storage()
var name: String
static let idKey = "id"
static let nameKey = "name"
init(name: String) {
self.name = name
}
init(row: Row) throws {
name = try row.get(User.nameKey)
}
func makeRow() throws -> Row {
var row = Row()
try row.set(User.nameKey, name)
return row
}
}
extension User: Preparation {
static func prepare(_ database: Database) throws {
try database.create(self) { builder in
builder.id()
builder.string(User.nameKey)
}
}
static func revert(_ database: Database) throws {
try database.delete(self)
}
}
extension User: JSONConvertible {
convenience init(json: JSON) throws {
try self.init(
content: json.get(User.nameKey)
)
}
func makeJSON() throws -> JSON {
var json = JSON()
try json.set(User.idKey, id)
try json.set(User.nameKey, name)
return json
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment