Skip to content

Commit 2dd9fd6

Browse files
authored
Merge pull request #256 from mircoianese/api_5.4
BOT API v5.4
2 parents ade59a3 + 56028c7 commit 2dd9fd6

File tree

11 files changed

+211
-9
lines changed

11 files changed

+211
-9
lines changed

Diff for: library/src/main/java/com/pengrad/telegrambot/model/ChatInviteLink.java

+26-4
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,14 @@ public class ChatInviteLink implements Serializable {
1212

1313
private String invite_link;
1414
private User creator;
15+
private Boolean creates_join_request;
1516
private Boolean is_primary;
1617
private Boolean is_revoked;
18+
private String name;
1719
private Integer expire_date;
18-
private Integer member_limit;
20+
private Integer member_limit;
21+
private Integer pending_join_request_count;
22+
1923

2024
public String inviteLink() {
2125
return invite_link;
@@ -25,6 +29,10 @@ public User creator() {
2529
return creator;
2630
}
2731

32+
public Boolean createsJoinReqeust() {
33+
return creates_join_request;
34+
}
35+
2836
public Boolean isPrimary() {
2937
return is_primary;
3038
}
@@ -33,6 +41,10 @@ public Boolean isRevoked() {
3341
return is_revoked;
3442
}
3543

44+
public String name() {
45+
return name;
46+
}
47+
3648
public Integer expireDate() {
3749
return expire_date;
3850
}
@@ -41,33 +53,43 @@ public Integer memberLimit() {
4153
return member_limit;
4254
}
4355

56+
public Integer pendingJoinRequestCount() {
57+
return pending_join_request_count;
58+
}
59+
4460
@Override
4561
public boolean equals(Object o) {
4662
if (this == o) return true;
4763
if (o == null || getClass() != o.getClass()) return false;
4864
ChatInviteLink that = (ChatInviteLink) o;
4965
return Objects.equals(invite_link, that.invite_link) &&
5066
Objects.equals(creator, that.creator) &&
67+
Objects.equals(creates_join_request, that.creates_join_request) &&
5168
Objects.equals(is_primary, that.is_primary) &&
5269
Objects.equals(is_revoked, that.is_revoked) &&
70+
Objects.equals(name, that.name) &&
5371
Objects.equals(expire_date, that.expire_date) &&
54-
Objects.equals(member_limit, that.member_limit);
72+
Objects.equals(member_limit, that.member_limit) &&
73+
Objects.equals(pending_join_request_count, that.pending_join_request_count);
5574
}
5675

5776
@Override
5877
public int hashCode() {
59-
return Objects.hash(invite_link, creator, is_primary, is_revoked, expire_date, member_limit);
78+
return Objects.hash(invite_link, creator, creates_join_request, is_primary, is_revoked, name, expire_date, member_limit, pending_join_request_count);
6079
}
6180

6281
@Override
6382
public String toString() {
6483
return "ChatInviteLink{" +
6584
"invite_link='" + invite_link + '\'' +
6685
", creator=" + creator +
86+
", creates_join_request=" + creates_join_request +
6787
", is_primary=" + is_primary +
6888
", is_revoked=" + is_revoked +
89+
", name=" + name +
6990
", expire_date=" + expire_date +
70-
", member_limit=" + member_limit +
91+
", member_limit=" + member_limit +
92+
", pending_join_request_count=" + pending_join_request_count +
7193
'}';
7294
}
7395
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
package com.pengrad.telegrambot.model;
2+
3+
import java.io.Serializable;
4+
import java.util.Objects;
5+
6+
/**
7+
* Mirco Ianese
8+
* 17 Nov 2021
9+
*/
10+
public class ChatJoinRequest implements Serializable {
11+
private final static long serialVersionUID = 0L;
12+
13+
private Chat chat;
14+
private User from;
15+
private Integer date;
16+
private String bio;
17+
private ChatInviteLink invite_link;
18+
19+
public Chat chat() {
20+
return chat;
21+
}
22+
23+
public User from() {
24+
return from;
25+
}
26+
27+
public Integer date() {
28+
return date;
29+
}
30+
31+
public String bio() {
32+
return bio;
33+
}
34+
35+
public ChatInviteLink inviteLink() {
36+
return invite_link;
37+
}
38+
39+
40+
@Override
41+
public boolean equals(Object o) {
42+
if (this == o) return true;
43+
if (o == null || getClass() != o.getClass()) return false;
44+
ChatJoinRequest that = (ChatJoinRequest) o;
45+
return Objects.equals(chat, that.chat) &&
46+
Objects.equals(from, that.from) &&
47+
Objects.equals(date, that.date) &&
48+
Objects.equals(bio, that.bio) &&
49+
Objects.equals(invite_link, that.invite_link);
50+
}
51+
52+
@Override
53+
public int hashCode() {
54+
return Objects.hash(chat, from, date, bio, invite_link);
55+
}
56+
57+
@Override
58+
public String toString() {
59+
return "ChatJoinRequest{" +
60+
"chat=" + chat +
61+
", from=" + from +
62+
", date=" + date +
63+
", bio=" + bio +
64+
", invite_link=" + invite_link +
65+
'}';
66+
}
67+
}

Diff for: library/src/main/java/com/pengrad/telegrambot/model/Update.java

+8-1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ public class Update implements Serializable {
2424
private PollAnswer poll_answer;
2525
private ChatMemberUpdated my_chat_member;
2626
private ChatMemberUpdated chat_member;
27+
private ChatJoinRequest chat_join_request;
2728

2829
public Integer updateId() {
2930
return update_id;
@@ -81,6 +82,10 @@ public ChatMemberUpdated chatMember() {
8182
return chat_member;
8283
}
8384

85+
public ChatJoinRequest chatJoinRequest() {
86+
return chat_join_request;
87+
}
88+
8489
@Override
8590
public boolean equals(Object o) {
8691
if (this == o) return true;
@@ -99,7 +104,8 @@ public boolean equals(Object o) {
99104
Objects.equals(poll, update.poll) &&
100105
Objects.equals(poll_answer, update.poll_answer) &&
101106
Objects.equals(my_chat_member, update.my_chat_member) &&
102-
Objects.equals(chat_member, update.chat_member);
107+
Objects.equals(chat_member, update.chat_member) &&
108+
Objects.equals(chat_join_request, update.chat_join_request);
103109
}
104110

105111
@Override
@@ -124,6 +130,7 @@ public String toString() {
124130
", poll_answer=" + poll_answer +
125131
", my_chat_member=" + my_chat_member +
126132
", chat_member=" + chat_member +
133+
", chat_join_request=" + chat_join_request +
127134
'}';
128135
}
129136
}

Diff for: library/src/main/java/com/pengrad/telegrambot/model/request/ChatAction.java

+11-2
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,15 @@
55
* 10/21/15.
66
*/
77
public enum ChatAction {
8-
typing, upload_photo, record_video, upload_video, record_voice, upload_voice, upload_document, find_location,
9-
record_video_note, upload_video_note
8+
typing,
9+
upload_photo,
10+
record_video,
11+
upload_video,
12+
record_audio,
13+
upload_audio,
14+
upload_document,
15+
choose_sticker,
16+
find_location,
17+
record_video_note,
18+
upload_video_note
1019
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.pengrad.telegrambot.request;
2+
3+
import com.pengrad.telegrambot.response.BaseResponse;
4+
5+
/**
6+
* Mirco Ianese
7+
* 17 Nov 2021
8+
*/
9+
public class ApproveChatJoinRequest extends BaseRequest<ApproveChatJoinRequest, BaseResponse> {
10+
11+
/**
12+
*
13+
* @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername)
14+
* @param userId Unique identifier of the target user
15+
*/
16+
public ApproveChatJoinRequest(Object chatId, Long userId) {
17+
super(BaseResponse.class);
18+
add("chat_id", chatId);
19+
add("user_id", userId);
20+
}
21+
22+
}

Diff for: library/src/main/java/com/pengrad/telegrambot/request/CreateChatInviteLink.java

+18
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,29 @@ public CreateChatInviteLink(Object chatId) {
1313
add("chat_id", chatId);
1414
}
1515

16+
/**
17+
*
18+
* @param name Invite link name; 0-32 characters
19+
* @return
20+
*/
21+
public CreateChatInviteLink name(String name) {
22+
return add("name", name);
23+
}
24+
1625
public CreateChatInviteLink expireDate(Integer expireDate) {
1726
return add("expire_date", expireDate);
1827
}
1928

2029
public CreateChatInviteLink memberLimit(Integer memberLimit) {
2130
return add("member_limit", memberLimit);
2231
}
32+
33+
/**
34+
*
35+
* @param createsJoinRequest True, if users joining the chat via the link need to be approved by chat administrators. If True, member_limit can't be specified
36+
* @return
37+
*/
38+
public CreateChatInviteLink createsJoinRequest(Boolean createsJoinRequest) {
39+
return add("creates_join_request", createsJoinRequest);
40+
}
2341
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.pengrad.telegrambot.request;
2+
3+
import com.pengrad.telegrambot.response.BaseResponse;
4+
5+
/**
6+
* Mirco Ianese
7+
* 17 Nov 2021
8+
*/
9+
public class DeclineChatJoinRequest extends BaseRequest<DeclineChatJoinRequest, BaseResponse> {
10+
11+
/**
12+
*
13+
* @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername)
14+
* @param userId Unique identifier of the target user
15+
*/
16+
public DeclineChatJoinRequest(Object chatId, Long userId) {
17+
super(BaseResponse.class);
18+
add("chat_id", chatId);
19+
add("user_id", userId);
20+
}
21+
22+
}

Diff for: library/src/main/java/com/pengrad/telegrambot/request/EditChatInviteLink.java

+18
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,29 @@ public EditChatInviteLink(Object chatId, String inviteLink) {
1414
add("invite_link", inviteLink);
1515
}
1616

17+
/**
18+
*
19+
* @param name Invite link name; 0-32 characters
20+
* @return
21+
*/
22+
public EditChatInviteLink name(String name) {
23+
return add("name", name);
24+
}
25+
1726
public EditChatInviteLink expireDate(Integer expireDate) {
1827
return add("expire_date", expireDate);
1928
}
2029

2130
public EditChatInviteLink memberLimit(Integer memberLimit) {
2231
return add("member_limit", memberLimit);
2332
}
33+
34+
/**
35+
*
36+
* @param createsJoinRequest True, if users joining the chat via the link need to be approved by chat administrators. If True, member_limit can't be specified
37+
* @return
38+
*/
39+
public EditChatInviteLink createsJoinRequest(Boolean createsJoinRequest) {
40+
return add("creates_join_request", createsJoinRequest);
41+
}
2442
}

Diff for: library/src/test/java/com/pengrad/telegrambot/TelegramBotTest.java

+17-1
Original file line numberDiff line numberDiff line change
@@ -1154,6 +1154,7 @@ public void sendChatAction() {
11541154
assertTrue(bot.execute(new SendChatAction(chatId, ChatAction.find_location)).isOk());
11551155
assertTrue(bot.execute(new SendChatAction(chatId, ChatAction.record_video_note)).isOk());
11561156
assertTrue(bot.execute(new SendChatAction(chatId, ChatAction.upload_video_note)).isOk());
1157+
assertTrue(bot.execute(new SendChatAction(chatId, ChatAction.choose_sticker)).isOk());
11571158
}
11581159

11591160
@Test
@@ -1917,15 +1918,30 @@ public void deleteMyCommands() {
19171918
public void inviteLinks() {
19181919
int memberLimit = 2;
19191920
int expireDate = (int) (System.currentTimeMillis() / 1000) + 500;
1921+
String name = "TestName";
19201922

19211923
ChatInviteLinkResponse response = bot.execute(new CreateChatInviteLink(groupId)
19221924
.expireDate(expireDate)
1923-
.memberLimit(memberLimit));
1925+
.memberLimit(memberLimit)
1926+
.name(name));
19241927
ChatInviteLink link = response.chatInviteLink();
19251928
assertEquals(expireDate, link.expireDate().intValue());
19261929
assertEquals(memberLimit, link.memberLimit().intValue());
19271930
assertFalse(link.isRevoked());
19281931
assertTrue(link.creator().isBot());
1932+
assertEquals(name, link.name());
1933+
1934+
response = bot.execute(new CreateChatInviteLink(groupId)
1935+
.expireDate(expireDate)
1936+
.createsJoinRequest(true)
1937+
.name(name));
1938+
link = response.chatInviteLink();
1939+
assertEquals(expireDate, link.expireDate().intValue());
1940+
assertTrue(link.createsJoinReqeust());
1941+
assertEquals(0, link.pendingJoinRequestCount().intValue());
1942+
assertFalse(link.isRevoked());
1943+
assertTrue(link.creator().isBot());
1944+
assertEquals(name, link.name());
19291945

19301946
int editMemberLimit = 3;
19311947
int editExpireDate = (int) (System.currentTimeMillis() / 1000) + 1500;

Diff for: library/src/test/java/com/pengrad/telegrambot/checks/UpdateTest.java

+1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ public static void check(List<Update> updates) {
2727
if (update.preCheckoutQuery() != null) assertNotNull(update.preCheckoutQuery().id());
2828
if (update.poll() != null) assertNotNull(update.poll().id());
2929
if (update.pollAnswer() != null) assertNotNull((update.pollAnswer().pollId()));
30+
if (update.chatJoinRequest() != null) assertNotNull(update.chatJoinRequest().chat().id());
3031
}
3132
}
3233

Diff for: pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
<dependency>
3131
<groupId>com.google.code.gson</groupId>
3232
<artifactId>gson</artifactId>
33-
<version>2.8.6</version>
33+
<version>2.8.9</version>
3434
<scope>compile</scope>
3535
</dependency>
3636
<dependency>

0 commit comments

Comments
 (0)