Skip to content

Commit 87f44fe

Browse files
committed
Added new methods exportChatInviteLink, setChatPhoto, deleteChatPhoto, setChatTitle, setChatDescription, pinChatMessage and unpinChatMessage to manage groups and channels
1 parent 0c0e899 commit 87f44fe

File tree

11 files changed

+192
-1
lines changed

11 files changed

+192
-1
lines changed
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.pengrad.telegrambot.request;
2+
3+
import com.pengrad.telegrambot.response.BaseResponse;
4+
5+
/**
6+
* Stas Parshin
7+
* 01 July 2017
8+
*/
9+
public class DeleteChatPhoto extends BaseRequest<DeleteChatPhoto, BaseResponse> {
10+
11+
public DeleteChatPhoto(Object chatId) {
12+
super(BaseResponse.class);
13+
add("chat_id", chatId);
14+
}
15+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.pengrad.telegrambot.request;
2+
3+
import com.pengrad.telegrambot.response.StringResponse;
4+
5+
/**
6+
* Stas Parshin
7+
* 01 July 2017
8+
*/
9+
public class ExportChatInviteLink extends BaseRequest<ExportChatInviteLink, StringResponse> {
10+
11+
public ExportChatInviteLink(Object chatId) {
12+
super(StringResponse.class);
13+
add("chat_id", chatId);
14+
}
15+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package com.pengrad.telegrambot.request;
2+
3+
import com.pengrad.telegrambot.response.BaseResponse;
4+
5+
/**
6+
* Stas Parshin
7+
* 01 July 2017
8+
*/
9+
public class PinChatMessage extends BaseRequest<PinChatMessage, BaseResponse> {
10+
11+
public PinChatMessage(Object chatId, int messageId) {
12+
super(BaseResponse.class);
13+
add("chat_id", chatId).add("message_id", messageId);
14+
}
15+
16+
public PinChatMessage disableNotification(boolean disableNotification) {
17+
return add("disable_notification", disableNotification);
18+
}
19+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.pengrad.telegrambot.request;
2+
3+
import com.pengrad.telegrambot.response.BaseResponse;
4+
5+
/**
6+
* Stas Parshin
7+
* 01 July 2017
8+
*/
9+
public class SetChatDescription extends BaseRequest<SetChatDescription, BaseResponse> {
10+
11+
public SetChatDescription(Object chatId, String description) {
12+
super(BaseResponse.class);
13+
add("chat_id", chatId).add("description", description);
14+
}
15+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package com.pengrad.telegrambot.request;
2+
3+
import com.pengrad.telegrambot.response.BaseResponse;
4+
5+
import java.io.File;
6+
7+
/**
8+
* Stas Parshin
9+
* 01 July 2017
10+
*/
11+
public class SetChatPhoto extends BaseRequest<SetChatPhoto, BaseResponse> {
12+
13+
public SetChatPhoto(Object chatId, byte[] photo) {
14+
super(BaseResponse.class);
15+
add("chat_id", chatId).add("photo", photo);
16+
}
17+
18+
public SetChatPhoto(Object chatId, File photo) {
19+
super(BaseResponse.class);
20+
add("chat_id", chatId).add("photo", photo);
21+
}
22+
23+
@Override
24+
public boolean isMultipart() {
25+
return true;
26+
}
27+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.pengrad.telegrambot.request;
2+
3+
import com.pengrad.telegrambot.response.BaseResponse;
4+
5+
/**
6+
* Stas Parshin
7+
* 01 July 2017
8+
*/
9+
public class SetChatTitle extends BaseRequest<SetChatTitle, BaseResponse> {
10+
11+
public SetChatTitle(Object chatId, String title) {
12+
super(BaseResponse.class);
13+
add("chat_id", chatId).add("title", title);
14+
}
15+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.pengrad.telegrambot.request;
2+
3+
import com.pengrad.telegrambot.response.BaseResponse;
4+
5+
/**
6+
* Stas Parshin
7+
* 01 July 2017
8+
*/
9+
public class UnpinChatMessage extends BaseRequest<UnpinChatMessage, BaseResponse> {
10+
11+
public UnpinChatMessage(Object chatId) {
12+
super(BaseResponse.class);
13+
add("chat_id", chatId);
14+
}
15+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.pengrad.telegrambot.response;
2+
3+
/**
4+
* Stas Parshin
5+
* 01 July 2017
6+
*/
7+
public class StringResponse extends BaseResponse {
8+
9+
private String result;
10+
11+
public String result() {
12+
return result;
13+
}
14+
15+
@Override
16+
public String toString() {
17+
return "StringResponse{" +
18+
"result='" + result + '\'' +
19+
", base=" + super.toString() +
20+
'}';
21+
}
22+
}

library/src/test/java/com/pengrad/telegrambot/ResponseTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@ public void setClasses() {
3333
GetUpdatesResponse.class,
3434
GetUserProfilePhotosResponse.class,
3535
GetWebhookInfoResponse.class,
36-
SendResponse.class
36+
SendResponse.class,
37+
StringResponse.class
3738
};
3839
}
3940

library/src/test/java/com/pengrad/telegrambot/TelegramBotTest.java

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ public class TelegramBotTest {
3838

3939
Path resourcePath = Paths.get("src/test/resources");
4040
String imagefile = resourcePath.resolve("image.png").toString();
41+
File imageFile = resourcePath.resolve("image.jpg").toFile();
4142
String audioFile = resourcePath.resolve("beep.mp3").toString();
4243
String docFile = resourcePath.resolve("doc.txt").toString();
4344
String videoFile = resourcePath.resolve("tabs.mp4").toString();
@@ -779,4 +780,50 @@ private PreCheckoutQuery getLastPreCheckoutQuery() {
779780
return null;
780781
}
781782

783+
@Test
784+
public void exportChatInviteLink() {
785+
StringResponse response = bot.execute(new ExportChatInviteLink(groupId));
786+
assertTrue(response.isOk());
787+
assertNotNull(response.result());
788+
}
789+
790+
@Test
791+
public void setChatPhoto() throws IOException {
792+
BaseResponse response = bot.execute(new SetChatPhoto(groupId, imageFile));
793+
assertTrue(response.isOk());
794+
795+
byte[] bytes = Files.readAllBytes(imageFile.toPath());
796+
response = bot.execute(new SetChatPhoto(groupId, bytes));
797+
assertTrue(response.isOk());
798+
}
799+
800+
@Test
801+
public void deleteChatPhoto() {
802+
BaseResponse response = bot.execute(new DeleteChatPhoto(groupId));
803+
assertTrue(response.isOk());
804+
}
805+
806+
@Test
807+
public void setChatTitle() {
808+
BaseResponse response = bot.execute(new SetChatTitle(groupId, "Test Bot Group " + System.currentTimeMillis()));
809+
assertTrue(response.isOk());
810+
}
811+
812+
@Test
813+
public void setChatDescription() {
814+
BaseResponse response = bot.execute(new SetChatDescription(groupId, "New desc " + System.currentTimeMillis()));
815+
assertTrue(response.isOk());
816+
}
817+
818+
@Test
819+
public void pinChatMessage() {
820+
BaseResponse response = bot.execute(new PinChatMessage(groupId, 18).disableNotification(false));
821+
assertTrue(response.isOk());
822+
}
823+
824+
@Test
825+
public void unpinChatMessage() {
826+
BaseResponse response = bot.execute(new UnpinChatMessage(groupId));
827+
assertTrue(response.isOk());
828+
}
782829
}

0 commit comments

Comments
 (0)