Skip to content

Commit

Permalink
Fix #1314 files.upload v2 method does not upload multiple files with …
Browse files Browse the repository at this point in the history
…full metadata (#1316)
  • Loading branch information
seratch committed May 27, 2024
1 parent c97f5aa commit 27c0dbf
Show file tree
Hide file tree
Showing 4 changed files with 46 additions and 9 deletions.
7 changes: 6 additions & 1 deletion json-logs/samples/api/files.completeUploadExternal.json
Original file line number Diff line number Diff line change
Expand Up @@ -128,5 +128,10 @@
],
"error": "",
"needed": "",
"provided": ""
"provided": "",
"response_metadata": {
"messages": [
""
]
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2233,23 +2233,26 @@ public FilesUploadV2Response filesUploadV2(FilesUploadV2Request req) throws IOEx
if (req.getUploadFiles() != null && req.getUploadFiles().size() > 0) {
// upload multiple files
for (FilesUploadV2Request.UploadFile uploadFile : req.getUploadFiles()) {
String fileId = helper.uploadFile(req, uploadFile);

FilesCompleteUploadExternalRequest.FileDetails file = new FilesCompleteUploadExternalRequest.FileDetails();
file.setId(fileId);
if (uploadFile.getTitle() != null) {
file.setTitle(uploadFile.getTitle());
uploadFile.setTitle(uploadFile.getTitle());
} else {
String filename = req.getFilename();
if (filename == null) {
if (req.getFile() != null && req.getFile().getName() != null) {
filename = req.getFile().getName();
if (uploadFile.getFile() != null && uploadFile.getFile().getName() != null) {
filename = uploadFile.getFile().getName();
} else {
filename = "Uploaded file";
}
}
file.setTitle(filename);
uploadFile.setFilename(filename);
uploadFile.setTitle(filename);
}
String fileId = helper.uploadFile(req, uploadFile);

FilesCompleteUploadExternalRequest.FileDetails file = new FilesCompleteUploadExternalRequest.FileDetails();
file.setId(fileId);
file.setTitle(uploadFile.getTitle());

files.add(file);
}
} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -838,6 +838,7 @@ public void uploadInThreads_v2() throws Exception {

@Test
public void issue824_gif_files() throws IOException, SlackApiException {
loadRandomChannel();
MethodsClient client = slack.methods(userToken);
File file = new File("src/test/resources/slack-logo.gif");
byte[] fileData = Files.readAllBytes(Paths.get(file.toURI()));
Expand All @@ -852,6 +853,7 @@ public void issue824_gif_files() throws IOException, SlackApiException {

@Test
public void issue824_gif_files_v2() throws IOException, SlackApiException {
loadRandomChannel();
MethodsClient client = slack.methods(userToken);
File file = new File("src/test/resources/slack-logo.gif");
byte[] fileData = Files.readAllBytes(Paths.get(file.toURI()));
Expand All @@ -864,6 +866,33 @@ public void issue824_gif_files_v2() throws IOException, SlackApiException {
assertThat(fileInfo.getError(), is(nullValue()));
}

@Test
public void issue1314_non_image_files_with_v2() throws IOException, SlackApiException {
loadRandomChannel();
MethodsClient client = slack.methods(botToken);
File file = new File("src/test/resources/test.zip");
FilesUploadV2Response upload = client.filesUploadV2(r -> r
.file(file)
.channel(channelId)
.initialComment("Here you are!")
);
assertThat(upload.getError(), is(nullValue()));
assertThat(upload.getFile().getName(), is("test.zip"));
assertThat(upload.getFile().getTitle(), is("test.zip"));

FilesUploadV2Response upload2 = client.filesUploadV2(r -> r
.uploadFiles(Arrays.asList(FilesUploadV2Request.UploadFile.builder()
.file(file)
.build()
))
.channel(channelId)
.initialComment("Here you are!")
);
assertThat(upload2.getFiles().get(0).getName(), is("test.zip"));
assertThat(upload2.getFiles().get(0).getTitle(), is("test.zip"));
assertThat(upload2.getError(), is(nullValue()));
}

@Test
public void fileLinks() throws Exception {
loadRandomChannelId();
Expand Down
Binary file added slack-api-client/src/test/resources/test.zip
Binary file not shown.

0 comments on commit 27c0dbf

Please sign in to comment.