All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.mle.push.apns.APNSMessage.scala Maven / Gradle / Ivy

The newest version!
package com.mle.push.apns

import play.api.libs.json.Json._
import play.api.libs.json._


/**
 * @author Michael
 */
case class APNSMessage(aps: APSPayload, data: Map[String, JsValue] = Map())

object APNSMessage {
  def simple(alert: String): APNSMessage = simple(alert, None)

  def badged(alert: String, badge: Int): APNSMessage = simple(alert, Option(badge))

  /**
   * @return A message that updates the app badge in the background: No message is shown and no sound is played.
   */
  def background(badge: Int): APNSMessage = APNSMessage(APSPayload(None, Option(badge)))

  private def simple(alert: String, badge: Option[Int]): APNSMessage = APNSMessage(APSPayload(Some(Left(alert)), badge))

  implicit val json = new Writes[APNSMessage] {
    override def writes(o: APNSMessage): JsValue = obj("aps" -> toJson(o.aps)) ++ toJson(o.data).as[JsObject]
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy