
com.malliina.push.apns.APNSHttpClientF.scala Maven / Gradle / Ivy
package com.malliina.push.apns
import cats.Monad
import cats.implicits._
import com.malliina.http.HttpClient
object APNSHttpClientF {
def apply[F[_]: Monad](conf: APNSTokenConf, http: HttpClient[F], isSandbox: Boolean) =
new APNSHttpClientF[F](http, RequestPreparer.token(conf), isSandbox)
}
class APNSHttpClientF[F[_]: Monad](http: HttpClient[F], prep: RequestPreparer, isSandbox: Boolean)
extends APNSHttpClientBase[F](http, prep, isSandbox) {
override def push(id: APNSToken, message: APNSRequest): F[Either[APNSError, APNSIdentifier]] =
send(id, message).map(parseResponse)
override def pushAll(
ids: Seq[APNSToken],
message: APNSRequest
): F[Seq[Either[APNSError, APNSIdentifier]]] =
ids.traverse { token => push(token, message) }
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy