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

eu.vendeli.tgbot.api.Venue.kt Maven / Gradle / Ivy

@file:Suppress("MatchingDeclarationName")

package eu.vendeli.tgbot.api

import eu.vendeli.tgbot.interfaces.Action
import eu.vendeli.tgbot.interfaces.ActionState
import eu.vendeli.tgbot.interfaces.TgAction
import eu.vendeli.tgbot.interfaces.features.MarkupFeature
import eu.vendeli.tgbot.interfaces.features.OptionsFeature
import eu.vendeli.tgbot.types.Message
import eu.vendeli.tgbot.types.internal.TgMethod
import eu.vendeli.tgbot.types.internal.VenueParams
import eu.vendeli.tgbot.types.internal.options.VenueOptions
import eu.vendeli.tgbot.utils.getReturnType

class SendVenueAction(
    latitude: Float,
    longitude: Float,
    title: String,
    address: String,
) : Action,
    ActionState(),
    OptionsFeature,
    MarkupFeature {
    override val TgAction.method: TgMethod
        get() = TgMethod("sendVenue")
    override val TgAction.returnType: Class
        get() = getReturnType()
    override val OptionsFeature.options: VenueOptions
        get() = VenueOptions()

    init {
        parameters["latitude"] = latitude
        parameters["longitude"] = longitude
        parameters["title"] = title
        parameters["address"] = address
    }
}

fun venue(latitude: Float, longitude: Float, params: VenueParams.() -> Unit): SendVenueAction {
    val venueParams = VenueParams("", "").apply(params)
    return SendVenueAction(latitude, longitude, venueParams.title, venueParams.address)
}

fun venue(latitude: Float, longitude: Float, title: String, address: String) =
    SendVenueAction(latitude, longitude, title, address)




© 2015 - 2025 Weber Informatics LLC | Privacy Policy