mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI.git
synced 2024-11-22 16:23:48 +00:00
add SetWebhook
This commit is contained in:
parent
de039c3909
commit
ff2b56b3a9
@ -2,6 +2,11 @@
|
|||||||
|
|
||||||
## 0.12.0
|
## 0.12.0
|
||||||
|
|
||||||
|
* Added `DataRequest` interface which replace `Data` interface
|
||||||
|
* `MultipartRequestImpl` now use `DataRequest`
|
||||||
|
* All requests which implements `Data` now implement `DataRequest`
|
||||||
|
* Added class `SetWebhook` and its factory
|
||||||
|
|
||||||
## 0.11.0
|
## 0.11.0
|
||||||
|
|
||||||
* Kotlin `1.3.11` -> `1.3.21`
|
* Kotlin `1.3.11` -> `1.3.21`
|
||||||
|
@ -0,0 +1,54 @@
|
|||||||
|
package com.github.insanusmokrassar.TelegramBotAPI.requests
|
||||||
|
|
||||||
|
import com.github.insanusmokrassar.TelegramBotAPI.requests.abstracts.*
|
||||||
|
import com.github.insanusmokrassar.TelegramBotAPI.requests.send.media.base.*
|
||||||
|
import com.github.insanusmokrassar.TelegramBotAPI.types.*
|
||||||
|
import kotlinx.serialization.*
|
||||||
|
import kotlinx.serialization.internal.BooleanSerializer
|
||||||
|
|
||||||
|
fun SetWebhook(
|
||||||
|
url: String,
|
||||||
|
certificate: InputFile,
|
||||||
|
maxAllowedConnections: Int? = null,
|
||||||
|
allowedUpdates: List<String>? = null
|
||||||
|
) : Request<Boolean> {
|
||||||
|
val data = SetWebhook(
|
||||||
|
url,
|
||||||
|
certificate.fileId,
|
||||||
|
maxAllowedConnections,
|
||||||
|
allowedUpdates
|
||||||
|
)
|
||||||
|
return when (certificate) {
|
||||||
|
is FileId -> data
|
||||||
|
is MultipartFile -> MultipartRequestImpl(
|
||||||
|
data,
|
||||||
|
mapOf(certificateField to certificate)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Serializable
|
||||||
|
data class SetWebhook internal constructor(
|
||||||
|
@SerialName(urlField)
|
||||||
|
val url: String,
|
||||||
|
@SerialName(certificateField)
|
||||||
|
@Optional
|
||||||
|
val certificateFile: String? = null,
|
||||||
|
@SerialName(maxAllowedConnectionsField)
|
||||||
|
@Optional
|
||||||
|
val maxAllowedConnections: Int? = null,
|
||||||
|
@SerialName(allowedUpdatesField)
|
||||||
|
@Optional
|
||||||
|
val allowedUpdates: List<String>? = null
|
||||||
|
) : DataRequest<Boolean> {
|
||||||
|
override fun method(): String = "setWebhook"
|
||||||
|
override fun resultSerializer(): KSerializer<Boolean> = BooleanSerializer
|
||||||
|
|
||||||
|
init {
|
||||||
|
maxAllowedConnections ?.let {
|
||||||
|
if (it !in allowedConnectionsLength) {
|
||||||
|
throw IllegalArgumentException("Allowed connection for webhook must be in $allowedConnectionsLength range (but passed $it)")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -87,7 +87,7 @@ data class SendAnimationData internal constructor(
|
|||||||
@SerialName(replyMarkupField)
|
@SerialName(replyMarkupField)
|
||||||
@Optional
|
@Optional
|
||||||
override val replyMarkup: KeyboardMarkup? = null
|
override val replyMarkup: KeyboardMarkup? = null
|
||||||
) : Data<RawMessage>,
|
) : DataRequest<RawMessage>,
|
||||||
SendMessageRequest<RawMessage>,
|
SendMessageRequest<RawMessage>,
|
||||||
ReplyingMarkupSendMessageRequest<RawMessage>,
|
ReplyingMarkupSendMessageRequest<RawMessage>,
|
||||||
TextableSendMessageRequest<RawMessage>,
|
TextableSendMessageRequest<RawMessage>,
|
||||||
|
@ -88,7 +88,7 @@ data class SendAudioData internal constructor(
|
|||||||
@SerialName(replyMarkupField)
|
@SerialName(replyMarkupField)
|
||||||
@Optional
|
@Optional
|
||||||
override val replyMarkup: KeyboardMarkup? = null
|
override val replyMarkup: KeyboardMarkup? = null
|
||||||
) : Data<RawMessage>,
|
) : DataRequest<RawMessage>,
|
||||||
SendMessageRequest<RawMessage>,
|
SendMessageRequest<RawMessage>,
|
||||||
ReplyingMarkupSendMessageRequest<RawMessage>,
|
ReplyingMarkupSendMessageRequest<RawMessage>,
|
||||||
TextableSendMessageRequest<RawMessage>,
|
TextableSendMessageRequest<RawMessage>,
|
||||||
|
@ -72,7 +72,7 @@ data class SendDocumentData internal constructor(
|
|||||||
@SerialName(replyMarkupField)
|
@SerialName(replyMarkupField)
|
||||||
@Optional
|
@Optional
|
||||||
override val replyMarkup: KeyboardMarkup? = null
|
override val replyMarkup: KeyboardMarkup? = null
|
||||||
) : Data<RawMessage>,
|
) : DataRequest<RawMessage>,
|
||||||
SendMessageRequest<RawMessage>,
|
SendMessageRequest<RawMessage>,
|
||||||
ReplyingMarkupSendMessageRequest<RawMessage>,
|
ReplyingMarkupSendMessageRequest<RawMessage>,
|
||||||
TextableSendMessageRequest<RawMessage>,
|
TextableSendMessageRequest<RawMessage>,
|
||||||
|
@ -66,7 +66,7 @@ data class SendMediaGroupData internal constructor(
|
|||||||
@SerialName(replyToMessageIdField)
|
@SerialName(replyToMessageIdField)
|
||||||
@Optional
|
@Optional
|
||||||
override val replyToMessageId: MessageIdentifier? = null
|
override val replyToMessageId: MessageIdentifier? = null
|
||||||
) : Data<List<RawMessage>>,
|
) : DataRequest<List<RawMessage>>,
|
||||||
SendMessageRequest<List<RawMessage>>
|
SendMessageRequest<List<RawMessage>>
|
||||||
{
|
{
|
||||||
@SerialName(mediaField)
|
@SerialName(mediaField)
|
||||||
|
@ -58,7 +58,7 @@ data class SendPhotoData internal constructor(
|
|||||||
@SerialName(replyMarkupField)
|
@SerialName(replyMarkupField)
|
||||||
@Optional
|
@Optional
|
||||||
override val replyMarkup: KeyboardMarkup? = null
|
override val replyMarkup: KeyboardMarkup? = null
|
||||||
) : Data<RawMessage>,
|
) : DataRequest<RawMessage>,
|
||||||
SendMessageRequest<RawMessage>,
|
SendMessageRequest<RawMessage>,
|
||||||
ReplyingMarkupSendMessageRequest<RawMessage>,
|
ReplyingMarkupSendMessageRequest<RawMessage>,
|
||||||
TextableSendMessageRequest<RawMessage>
|
TextableSendMessageRequest<RawMessage>
|
||||||
|
@ -92,7 +92,7 @@ data class SendVideoData internal constructor(
|
|||||||
@SerialName(replyMarkupField)
|
@SerialName(replyMarkupField)
|
||||||
@Optional
|
@Optional
|
||||||
override val replyMarkup: KeyboardMarkup? = null
|
override val replyMarkup: KeyboardMarkup? = null
|
||||||
) : Data<RawMessage>,
|
) : DataRequest<RawMessage>,
|
||||||
SendMessageRequest<RawMessage>,
|
SendMessageRequest<RawMessage>,
|
||||||
ReplyingMarkupSendMessageRequest<RawMessage>,
|
ReplyingMarkupSendMessageRequest<RawMessage>,
|
||||||
TextableSendMessageRequest<RawMessage>,
|
TextableSendMessageRequest<RawMessage>,
|
||||||
|
@ -82,7 +82,7 @@ data class SendVideoNoteData internal constructor(
|
|||||||
@SerialName(replyMarkupField)
|
@SerialName(replyMarkupField)
|
||||||
@Optional
|
@Optional
|
||||||
override val replyMarkup: KeyboardMarkup? = null
|
override val replyMarkup: KeyboardMarkup? = null
|
||||||
) : Data<RawMessage>,
|
) : DataRequest<RawMessage>,
|
||||||
SendMessageRequest<RawMessage>,
|
SendMessageRequest<RawMessage>,
|
||||||
ReplyingMarkupSendMessageRequest<RawMessage>,
|
ReplyingMarkupSendMessageRequest<RawMessage>,
|
||||||
TextableSendMessageRequest<RawMessage>,
|
TextableSendMessageRequest<RawMessage>,
|
||||||
|
@ -77,7 +77,7 @@ data class SendVoiceData internal constructor(
|
|||||||
@SerialName(replyMarkupField)
|
@SerialName(replyMarkupField)
|
||||||
@Optional
|
@Optional
|
||||||
override val replyMarkup: KeyboardMarkup? = null
|
override val replyMarkup: KeyboardMarkup? = null
|
||||||
) : Data<RawMessage>,
|
) : DataRequest<RawMessage>,
|
||||||
SendMessageRequest<RawMessage>,
|
SendMessageRequest<RawMessage>,
|
||||||
ReplyingMarkupSendMessageRequest<RawMessage>,
|
ReplyingMarkupSendMessageRequest<RawMessage>,
|
||||||
TextableSendMessageRequest<RawMessage>,
|
TextableSendMessageRequest<RawMessage>,
|
||||||
|
@ -1,5 +1,10 @@
|
|||||||
package com.github.insanusmokrassar.TelegramBotAPI.requests.send.media.base
|
package com.github.insanusmokrassar.TelegramBotAPI.requests.send.media.base
|
||||||
|
|
||||||
import com.github.insanusmokrassar.TelegramBotAPI.requests.abstracts.SimpleRequest
|
@Deprecated(
|
||||||
|
"Renamed to DataRequest",
|
||||||
interface Data<T: Any> : SimpleRequest<T>
|
ReplaceWith(
|
||||||
|
"DataRequest",
|
||||||
|
"com.github.insanusmokrassar.TelegramBotAPI.requests.send.media.base.DataRequest"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
typealias Data<T> = DataRequest<T>
|
||||||
|
@ -0,0 +1,5 @@
|
|||||||
|
package com.github.insanusmokrassar.TelegramBotAPI.requests.send.media.base
|
||||||
|
|
||||||
|
import com.github.insanusmokrassar.TelegramBotAPI.requests.abstracts.SimpleRequest
|
||||||
|
|
||||||
|
interface DataRequest<T: Any> : SimpleRequest<T>
|
@ -9,7 +9,7 @@ import kotlinx.serialization.json.JsonObject
|
|||||||
/**
|
/**
|
||||||
* Will be used as SimpleRequest if
|
* Will be used as SimpleRequest if
|
||||||
*/
|
*/
|
||||||
class MultipartRequestImpl<D: Data<R>, F: Files, R: Any>(
|
class MultipartRequestImpl<D: DataRequest<R>, F: Files, R: Any>(
|
||||||
val data: D,
|
val data: D,
|
||||||
val files: F
|
val files: F
|
||||||
) : MultipartRequest<R> {
|
) : MultipartRequest<R> {
|
||||||
|
@ -23,6 +23,7 @@ val userProfilePhotosRequestLimit = 0 .. 100
|
|||||||
val chatTitleLength = 1 until 255
|
val chatTitleLength = 1 until 255
|
||||||
val chatDescriptionLength = 0 until 256
|
val chatDescriptionLength = 0 until 256
|
||||||
val inlineResultQueryIdLingth = 1 until 64
|
val inlineResultQueryIdLingth = 1 until 64
|
||||||
|
val allowedConnectionsLength = 1 .. 100
|
||||||
|
|
||||||
val invoiceTitleLimit = 1 until 32
|
val invoiceTitleLimit = 1 until 32
|
||||||
val invoiceDescriptionLimit = 1 until 256
|
val invoiceDescriptionLimit = 1 until 256
|
||||||
@ -68,6 +69,8 @@ const val isPersonalField = "is_personal"
|
|||||||
const val nextOffsetField = "next_offset"
|
const val nextOffsetField = "next_offset"
|
||||||
const val switchPmTextField = "switch_pm_text"
|
const val switchPmTextField = "switch_pm_text"
|
||||||
const val switchPmParameterField = "switch_pm_parameter"
|
const val switchPmParameterField = "switch_pm_parameter"
|
||||||
|
const val maxAllowedConnectionsField = "max_connections"
|
||||||
|
const val allowedUpdatesField = "allowed_updates"
|
||||||
|
|
||||||
|
|
||||||
const val photoUrlField = "photo_url"
|
const val photoUrlField = "photo_url"
|
||||||
@ -172,6 +175,7 @@ const val pricesField = "prices"
|
|||||||
const val payloadField = "payload"
|
const val payloadField = "payload"
|
||||||
const val vcardField = "vcard"
|
const val vcardField = "vcard"
|
||||||
const val resultsField = "results"
|
const val resultsField = "results"
|
||||||
|
const val certificateField = "certificate"
|
||||||
|
|
||||||
const val pointField = "point"
|
const val pointField = "point"
|
||||||
const val xShiftField = "x_shift"
|
const val xShiftField = "x_shift"
|
||||||
|
Loading…
Reference in New Issue
Block a user