fix mobile API versioning

This commit is contained in:
Thibault Duplessis 2016-07-12 15:38:58 +02:00
parent 798fe4cd2c
commit 685d31de67
3 changed files with 7 additions and 11 deletions

View file

@ -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"))

View file

@ -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)
}
}

View file

@ -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
}