fix mobile API versioning
This commit is contained in:
parent
798fe4cd2c
commit
685d31de67
|
@ -279,7 +279,7 @@ private[controllers] trait LilaController
|
|||
|
||||
protected def negotiate(html: => Fu[Result], api: Int => Fu[Result])(implicit ctx: Context): Fu[Result] =
|
||||
(lila.api.Mobile.Api.requestVersion(ctx.req) match {
|
||||
case Some(1) => api(1) map (_ as JSON)
|
||||
case Some(v) => api(v) map (_ as JSON)
|
||||
case _ => html
|
||||
}) map (_.withHeaders("Vary" -> "Accept"))
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ private[controllers] trait TheftPrevention { self: LilaController =>
|
|||
case (Some(playerId), Some(userId)) =>
|
||||
playerId != userId && !(ctx.me ?? Granter.superAdmin)
|
||||
case (None, _) =>
|
||||
lila.api.Mobile.Api.requestVersion(ctx.req).isEmpty &&
|
||||
!lila.api.Mobile.Api.requested(ctx.req) &&
|
||||
!ctx.req.cookies.get(AnonCookie.name).map(_.value).contains(pov.playerId)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,15 +15,11 @@ object Mobile {
|
|||
// date when the server stops accepting requests
|
||||
unsupportedAt: DateTime)
|
||||
|
||||
def currentVersion = 2
|
||||
val currentVersion = 2
|
||||
|
||||
def oldVersions: List[Old] = List(
|
||||
// old version 0 is just an example, so the list is never empty :)
|
||||
// nobody ever used version 0.
|
||||
Old(
|
||||
version = 0,
|
||||
deprecatedAt = new DateTime("2014-08-01"),
|
||||
unsupportedAt = new DateTime("2014-12-01")),
|
||||
val acceptedVersionNumbers = Set(1, 2)
|
||||
|
||||
val oldVersions: List[Old] = List(
|
||||
Old( // chat messages are html escaped
|
||||
version = 1,
|
||||
deprecatedAt = new DateTime("2016-07-13"),
|
||||
|
@ -40,7 +36,7 @@ object Mobile {
|
|||
case PathPattern(version) => parseIntOption(version)
|
||||
case _ => None
|
||||
}
|
||||
}
|
||||
} filter acceptedVersionNumbers.contains
|
||||
|
||||
def requested(req: RequestHeader) = requestVersion(req).isDefined
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue