【发布时间】:2019-11-28 10:18:19
【问题描述】:
如果基于facebook用户ID已经存在如何返回用户,如果Vapor中不存在则创建一个新用户?你可以看到我是如何尝试获取数据的,但是得到了错误。
final class User: Content {
var id: Int?
var fbId: String
init(id: Int? = nil, fbId: String) {
self.id = id
self.fbId = fbId
}
}
router.get("user") { (request) -> Future<User> in
return Future.map(on: request) { () -> User in
let fbId = try request.query.get(String.self, at: "fbId")
return User.query(on: request).filter(\.fbId == fbId).first().map { (user) -> (U) in
if user == nil {
user = User(fbId: fbId)
}
return user
}
}
}
【问题讨论】: