# FMPPush

interface FMPPush : FMPObject

Представляет собой PUSH уведомления.

#### Since

21.04.01

#### Samples

    import ru.fsight.fmp.FMP
    import ru.fsight.fmp.FMPPush
    fun main() {
       //sampleStart
       /*
     * Пример создания FMPPush.
     */
    val push: FMPPush = fmp.push // Создать Builder.
    	.token(firebaseToken) // Указать токен Firebase.
    	.build() // Создать FMPPush.
       //sampleEnd
    }

    import ru.fsight.fmp.FMP
    import ru.fsight.fmp.FMPPush
    fun main() {
       //sampleStart
       /*
     * Пример работы с топиками и токенами.
     */
    val topics: List<FMPPush.Topic> = push.getTopics().result // Получить список доступных топиков.
    val tokens: List<FMPPush.Token> = push.getTokens().result // Получить список токенов текущего устройства с сервера.

    val isAdded: Boolean = push.submitToken().result // True если токен был добавлен на сервер.
    val isRemoved: Boolean = push.revokeToken().result // True если токен был удалён с сервера.

    val isSubscribed: Boolean = push.subscribe(listOf("topic")).result // True подписался на все топики.
    val isUnsubscribed: Boolean = push.unsubscribe(listOf("topic")).result // True если отписался от всех топиков.
       //sampleEnd
    }

    import ru.fsight.fmp.FMP
    import ru.fsight.fmp.FMPPush
    fun main() {
       //sampleStart
       /*
     * Пример отправки пуш-уведомления пользователю или группе пользователей через топик.
     * Содержимое сообщения зависит от содержимого шаблона.
     */
    val title = "Сообщение от пользователя test"
    val message = "Тут лес вокруг!"
    push.sendToUser(
    	"template",
    	"username",
    	"{\"title\":\"$title\",\"body\":\"$message\"}"
    ) // Отправить сообщение пользователю username.
    push.sendToTopic(
    	"template",
    	"topic",
    	"{\"title\":\"$title\",\"body\":\"$message\"}"
    ) // Отправить сообщение пользователям подписанным на топик topic.
       //sampleEnd
    }

## Types

Builder
Link copied to clipboard
abstract class Builder : FMPObject.Builder
Companion
Link copied to clipboard
object Companion
Token
Link copied to clipboard
data class Token

Представляет собой описание токена, полученного с сервера.

Topic
Link copied to clipboard
data class Topic

Представляет собой описание топика, полученное с сервера.

## Properties

service
Link copied to clipboard
abstract val service: String

Используемый сервис PUSH-уведомлений. По умолчанию SERVICE_FIREBASE.

token
Link copied to clipboard
abstract val token: String

Токен устройства.

## Functions

equals
Link copied to clipboard
abstract operator override fun equals(other: Any?): Boolean

Сравнить объекты между собой.

getTokens
Link copied to clipboard
abstract fun getTokens(): FMPResult<List<FMPPush.Token>>

Получить список токенов на сервере, принадлежащих текущему пользователю.

getTopics
Link copied to clipboard
abstract fun getTopics(): FMPResult<List<FMPPush.Topic>>

Получить список доступных пользователю топиков.

hashCode
Link copied to clipboard
abstract override fun hashCode(): Int

Хэш-код объектов. В отличие от equals он будет одинаков для объектов с одинаковыми ключевыми параметрами, но созданными от разных объектов FMP.

rebuild
Link copied to clipboard
abstract override fun rebuild(): FMPPush.Builder
revokeToken
Link copied to clipboard
abstract fun revokeToken(): FMPResult<Boolean>

Удалить token с сервера.

sendToTopic
Link copied to clipboard
abstract fun sendToTopic(template: String, topic: String, data: String): FMPResult<Boolean>

Отправить пуш группе пользователей по топику.

sendToUser
Link copied to clipboard
abstract fun sendToUser(template: String, user: String, data: String): FMPResult<Boolean>

Отправить пуш конкретному пользователю.

submitToken
Link copied to clipboard
abstract fun submitToken(): FMPResult<Boolean>

Отправить token устройства на сервер.

subscribe
Link copied to clipboard
abstract fun subscribe(topics: List<String>): FMPResult<Boolean>

Подписаться на topics на сервере.

toString
Link copied to clipboard
abstract override fun toString(): String

Получить ключевые параметры объекта в виде строки.

unsubscribe
Link copied to clipboard
abstract fun unsubscribe(topics: List<String>): FMPResult<Boolean>

Отписаться от topics на сервере.