Skip to content

Commit 40ac9d4

Browse files
committed
Add optional fileName for all multipart send requests
1 parent 5a20c5f commit 40ac9d4

File tree

8 files changed

+29
-24
lines changed

8 files changed

+29
-24
lines changed

src/main/java/com/pengrad/telegrambot/request/AbstractMultipartRequest.java

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,29 +9,46 @@
99
abstract public class AbstractMultipartRequest<T extends AbstractMultipartRequest> extends AbstractSendRequest<T> {
1010

1111
private final boolean isMultipart;
12+
private String fileName;
1213

1314
public AbstractMultipartRequest(Object chatId, Object file) {
1415
super(chatId);
1516
if (file instanceof String) {
1617
isMultipart = false;
17-
} else if (file instanceof File || file instanceof byte[]) {
18+
} else if (file instanceof File) {
19+
isMultipart = true;
20+
fileName = ((File) file).getName();
21+
} else if (file instanceof byte[]) {
1822
isMultipart = true;
1923
} else {
2024
throw new IllegalArgumentException("Sending data should be String, File or byte[]");
2125
}
2226
add(getFileParamName(), file);
2327
}
2428

29+
public T fileName(String fileName) {
30+
this.fileName = fileName;
31+
return thisAsT;
32+
}
33+
2534
@Override
2635
public boolean isMultipart() {
2736
return isMultipart;
2837
}
2938

30-
abstract protected String getFileParamName();
31-
3239
@Override
33-
abstract public String getFileName();
40+
public String getFileName() {
41+
if (fileName != null && !fileName.isEmpty()) {
42+
return fileName;
43+
} else {
44+
return getDefaultFileName();
45+
}
46+
}
3447

3548
@Override
3649
abstract public String getContentType();
50+
51+
abstract protected String getDefaultFileName();
52+
53+
abstract protected String getFileParamName();
3754
}

src/main/java/com/pengrad/telegrambot/request/SendAudio.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ protected String getFileParamName() {
3838
}
3939

4040
@Override
41-
public String getFileName() {
41+
public String getDefaultFileName() {
4242
return ContentTypes.AUDIO_FILE_NAME;
4343
}
4444

src/main/java/com/pengrad/telegrambot/request/SendDocument.java

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,12 @@
88
*/
99
public class SendDocument extends AbstractMultipartRequest<SendDocument> {
1010

11-
private String fileName;
12-
1311
public SendDocument(Object chatId, String document) {
1412
super(chatId, document);
1513
}
1614

1715
public SendDocument(Object chatId, File document) {
1816
super(chatId, document);
19-
fileName = document.getName();
2017
}
2118

2219
public SendDocument(Object chatId, byte[] document) {
@@ -27,23 +24,14 @@ public SendDocument caption(String caption) {
2724
return add("caption", caption);
2825
}
2926

30-
public SendDocument fileName(String fileName) {
31-
this.fileName = fileName;
32-
return thisAsT;
33-
}
34-
3527
@Override
3628
protected String getFileParamName() {
3729
return "document";
3830
}
3931

4032
@Override
41-
public String getFileName() {
42-
if (fileName != null && !fileName.isEmpty()) {
43-
return fileName;
44-
} else {
45-
return ContentTypes.DOC_FILE_NAME;
46-
}
33+
public String getDefaultFileName() {
34+
return ContentTypes.DOC_FILE_NAME;
4735
}
4836

4937
@Override

src/main/java/com/pengrad/telegrambot/request/SendPhoto.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ protected String getFileParamName() {
3030
}
3131

3232
@Override
33-
public String getFileName() {
33+
public String getDefaultFileName() {
3434
return ContentTypes.PHOTO_FILE_NAME;
3535
}
3636

src/main/java/com/pengrad/telegrambot/request/SendSticker.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ protected String getFileParamName() {
2626
}
2727

2828
@Override
29-
public String getFileName() {
29+
public String getDefaultFileName() {
3030
return ContentTypes.PHOTO_FILE_NAME;
3131
}
3232

src/main/java/com/pengrad/telegrambot/request/SendVideo.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ protected String getFileParamName() {
4242
}
4343

4444
@Override
45-
public String getFileName() {
45+
public String getDefaultFileName() {
4646
return ContentTypes.VIDEO_FILE_NAME;
4747
}
4848

src/main/java/com/pengrad/telegrambot/request/SendVoice.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ protected String getFileParamName() {
3030
}
3131

3232
@Override
33-
public String getFileName() {
33+
public String getDefaultFileName() {
3434
return ContentTypes.VOICE_FILE_NAME;
3535
}
3636

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ public void sendAudio() {
132132

133133
@Test
134134
public void sendDocument() {
135-
SendDocument request = new SendDocument(chatId, new File(docFile)).caption("caption");
135+
SendDocument request = new SendDocument(chatId, new File(docFile)).fileName("my doc.zip").caption("caption");
136136
SendResponse sendResponse = bot.execute(request);
137137
Message message = sendResponse.message();
138138
MessageTest.checkDocumentMessage(message);

0 commit comments

Comments
 (0)