30 lines
808 B
Scala
30 lines
808 B
Scala
package controllers
|
|
|
|
import lila.app._
|
|
import lila.push.WebSubscription
|
|
import lila.push.WebSubscription.readers._
|
|
|
|
final class Push(env: Env) extends LilaController(env) {
|
|
|
|
def mobileRegister(platform: String, deviceId: String) =
|
|
Auth { implicit ctx => me =>
|
|
env.push.registerDevice(me, platform, deviceId)
|
|
}
|
|
|
|
def mobileUnregister =
|
|
Auth { implicit ctx => me =>
|
|
env.push.unregisterDevices(me)
|
|
}
|
|
|
|
def webSubscribe =
|
|
AuthBody(parse.json) { implicit ctx => me =>
|
|
val currentSessionId = ~env.security.api.reqSessionId(ctx.req)
|
|
ctx.body.body
|
|
.validate[WebSubscription]
|
|
.fold(
|
|
err => BadRequest(err.toString).fuccess,
|
|
data => env.push.webSubscriptionApi.subscribe(me, data, currentSessionId) inject NoContent
|
|
)
|
|
}
|
|
}
|