/api/user/me API endpoint
This commit is contained in:
parent
7d322e75af
commit
993160ed0f
|
@ -42,7 +42,11 @@ object Api extends LilaController {
|
|||
}
|
||||
|
||||
def user(name: String) = ApiRequest { implicit ctx =>
|
||||
userApi one name map toApiResult
|
||||
userApi.one(name, isAuth = ctx.me.exists(_ is name)) map toApiResult
|
||||
}
|
||||
|
||||
def me = ApiRequestAuth { implicit ctx => me =>
|
||||
userApi.one(me.id, isAuth = true) map toApiResult
|
||||
}
|
||||
|
||||
private val UsersRateLimitGlobal = new lila.memo.RateLimit[String](
|
||||
|
@ -299,6 +303,10 @@ object Api extends LilaController {
|
|||
js(ctx) map toHttp
|
||||
}
|
||||
|
||||
def ApiRequestAuth(js: Context => lila.user.User => Fu[ApiResult]) = Auth { implicit ctx => me =>
|
||||
js(ctx)(me) map toHttp
|
||||
}
|
||||
|
||||
private val tooManyRequests = TooManyRequest(jsonError("Try again later"))
|
||||
|
||||
private def toHttp(result: ApiResult)(implicit ctx: Context): Result = result match {
|
||||
|
|
|
@ -501,6 +501,7 @@ GET /stat/rating/distribution/:perf controllers.Stat.ratingDistribution(perf:
|
|||
# API
|
||||
GET /api/user controllers.Api.users
|
||||
POST /api/users controllers.Api.usersByIds
|
||||
GET /api/user/me controllers.Api.me
|
||||
GET /api/user/:name controllers.Api.user(name: String)
|
||||
GET /api/user/:name/games controllers.Api.userGames(name: String)
|
||||
GET /api/user/:name/activity controllers.Api.activity(name: String)
|
||||
|
|
|
@ -21,7 +21,7 @@ private[api] final class UserApi(
|
|||
jsonView(u) ++ Json.obj("url" -> makeUrl(s"@/${u.username}"))
|
||||
}))
|
||||
|
||||
def one(username: String)(implicit ctx: Context): Fu[Option[JsObject]] = UserRepo named username flatMap {
|
||||
def one(username: String, isAuth: Boolean)(implicit ctx: Context): Fu[Option[JsObject]] = UserRepo named username flatMap {
|
||||
case None => fuccess(none)
|
||||
case Some(u) if u.disabled => fuccess {
|
||||
Json.obj(
|
||||
|
|
|
@ -106,6 +106,8 @@ case class User(
|
|||
def planMonths: Option[Int] = activePlan.map(_.months)
|
||||
|
||||
def createdSinceDays(days: Int) = createdAt isBefore DateTime.now.minusDays(days)
|
||||
|
||||
def is(name: String) = id == User.normalize(name)
|
||||
}
|
||||
|
||||
object User {
|
||||
|
|
Loading…
Reference in a new issue