Skip to content

Commit 82e8cab

Browse files
committed
Rewrite SendContact to Kotlin
1 parent b8f4aad commit 82e8cab

File tree

3 files changed

+87
-22
lines changed

3 files changed

+87
-22
lines changed

library/src/main/java/com/pengrad/telegrambot/request/SendContact.java

Lines changed: 0 additions & 22 deletions
This file was deleted.
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package com.pengrad.telegrambot.request
2+
3+
import com.pengrad.telegrambot.utility.kotlin.checkDeprecatedConstructorParameters
4+
import com.pengrad.telegrambot.utility.kotlin.optionalRequestParameter
5+
import com.pengrad.telegrambot.utility.kotlin.requestParameter
6+
7+
class SendContact private constructor(
8+
chatId: Long? = null,
9+
channelUsername: String? = null,
10+
11+
phoneNumber: String,
12+
firstName: String
13+
) : KAbstractSendRequest<SendContact>(
14+
chatId = chatId,
15+
channelUsername = channelUsername,
16+
) {
17+
18+
constructor(chatId: Long, phoneNumber: String, firstName: String) : this(
19+
chatId = chatId,
20+
channelUsername = null,
21+
phoneNumber = phoneNumber,
22+
firstName = firstName
23+
)
24+
25+
constructor(channelUsername: String, phoneNumber: String, firstName: String) : this(
26+
chatId = null,
27+
channelUsername = channelUsername,
28+
phoneNumber = phoneNumber,
29+
firstName = firstName
30+
)
31+
32+
@Deprecated("Use constructor with chatId or channelUsername instead", ReplaceWith("SendContact(chatId, phoneNumber, firstName)"))
33+
constructor(chatId: Any, phoneNumber: String, firstName: String) : this(
34+
chatId = (chatId as? Number)?.toLong(),
35+
channelUsername = chatId as? String,
36+
phoneNumber = phoneNumber,
37+
firstName = firstName
38+
) {
39+
checkDeprecatedConstructorParameters()
40+
}
41+
42+
val phoneNumber: String by requestParameter(phoneNumber)
43+
val firstName: String by requestParameter(firstName)
44+
45+
var lastName: String? by optionalRequestParameter()
46+
var vcard: String? by optionalRequestParameter()
47+
48+
fun lastName(lastName: String) = apply { this.lastName = lastName }
49+
50+
fun vcard(vcard: String) = apply { this.vcard = vcard }
51+
52+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package com.pengrad.telegrambot.utility.kotlin.extension.request
2+
3+
import com.pengrad.telegrambot.TelegramAware
4+
import com.pengrad.telegrambot.request.SendContact
5+
import com.pengrad.telegrambot.utility.kotlin.extension.execute
6+
7+
inline fun TelegramAware.sendContact(
8+
chatId: Long,
9+
phoneNumber: String,
10+
firstName: String,
11+
lastName: String? = null,
12+
modifier: SendContact.() -> Unit = {}
13+
) = this.execute(SendContact(
14+
chatId = chatId,
15+
phoneNumber = phoneNumber,
16+
firstName = firstName
17+
)) {
18+
this.lastName = lastName
19+
modifier()
20+
}
21+
22+
inline fun TelegramAware.sendContact(
23+
channelUsername: String,
24+
phoneNumber: String,
25+
firstName: String,
26+
lastName: String? = null,
27+
modifier: SendContact.() -> Unit = {}
28+
) = this.execute(SendContact(
29+
channelUsername = channelUsername,
30+
phoneNumber = phoneNumber,
31+
firstName = firstName
32+
)) {
33+
this.lastName = lastName
34+
modifier()
35+
}

0 commit comments

Comments
 (0)