diff --git a/src/main/java/com/crowdin/client/labels/LabelsApi.java b/src/main/java/com/crowdin/client/labels/LabelsApi.java index 6c752d4f8..e91fc37c1 100644 --- a/src/main/java/com/crowdin/client/labels/LabelsApi.java +++ b/src/main/java/com/crowdin/client/labels/LabelsApi.java @@ -133,15 +133,17 @@ public ResponseList assignLabelToStrings(Long projectId, Long labe /** * @param projectId Project Identifier * @param labelId Label Identifier + * @param stringIds List of string IDs * @return Source string * @see */ - public ResponseList unassignLabelFromStrings(Long projectId, Long labelId) throws HttpException, HttpBadRequestException { + public ResponseList unassignLabelFromStrings(Long projectId, Long labelId, List stringIds) throws HttpException, HttpBadRequestException { String builtUrl = String.format("%s/projects/%d/labels/%d/strings", this.url, projectId, labelId); - SourceStringResponseList response = this.httpClient.delete(builtUrl, new HttpRequestConfig(), SourceStringResponseList.class); + Map> queryParams = HttpRequestConfig.buildUrlParams("stringIds", Optional.ofNullable(stringIds == null ? null : stringIds.stream().map(String::valueOf).collect(Collectors.joining(",")))); + SourceStringResponseList response = this.httpClient.delete(builtUrl, new HttpRequestConfig(queryParams), SourceStringResponseList.class); return SourceStringResponseList.to(response); } diff --git a/src/test/java/com/crowdin/client/.DS_Store b/src/test/java/com/crowdin/client/.DS_Store new file mode 100644 index 000000000..b4d169ef6 Binary files /dev/null and b/src/test/java/com/crowdin/client/.DS_Store differ diff --git a/src/test/java/com/crowdin/client/labels/LabelsApiTest.java b/src/test/java/com/crowdin/client/labels/LabelsApiTest.java index cc306218a..0f2e684d7 100644 --- a/src/test/java/com/crowdin/client/labels/LabelsApiTest.java +++ b/src/test/java/com/crowdin/client/labels/LabelsApiTest.java @@ -28,39 +28,37 @@ public class LabelsApiTest extends TestClient { - private final String apiFiles = "api/labels/"; - - private String file(String fileName) { - return apiFiles + fileName; - } - private final Long projectId = 8L; private final String labelTitle = "main"; private final Long labelId = 34L; - private final Map urlParams = new HashMap() {{ + + private final Map unassignLabelToScreenshotsUrlParams = new HashMap() {{ put("screenshotIds", "1"); }}; + private final Map unassignLabelToStringTestUrlParams = new HashMap() {{ + put("stringIds", "1"); + }}; @Override public List getMocks() { return Arrays.asList( - RequestMock.build(String.format("%s/projects/%d/labels", this.url, projectId), HttpGet.METHOD_NAME, - "api/labels/listLabels.json"), - RequestMock.build(String.format("%s/projects/%d/labels", this.url, projectId), HttpPost.METHOD_NAME, - "api/labels/addLabelRequest.json", "api/labels/label.json"), - RequestMock.build(String.format("%s/projects/%d/labels/%d", this.url, projectId, labelId), HttpGet.METHOD_NAME, - "api/labels/label.json"), - RequestMock.build(String.format("%s/projects/%d/labels/%d", this.url, projectId, labelId), HttpDelete.METHOD_NAME), - RequestMock.build(String.format("%s/projects/%d/labels/%d", this.url, projectId, labelId), HttpPatch.METHOD_NAME, - "api/labels/editLabelRequest.json", "api/labels/label.json"), - RequestMock.build(String.format("%s/projects/%d/labels/%d/strings", this.url, projectId, labelId), HttpPost.METHOD_NAME, - "api/labels/labelToStringsRequest.json", "api/labels/listStrings.json"), - RequestMock.build(String.format("%s/projects/%d/labels/%d/strings", this.url, projectId, labelId), HttpDelete.METHOD_NAME, - "api/labels/listStrings.json"), - RequestMock.build(String.format("%s/projects/%d/labels/%d/screenshots", this.url, projectId, labelId), HttpPost.METHOD_NAME, - "api/labels/labelToScreenshotsRequest.json", "api/labels/listScreenshots.json"), - RequestMock.build(String.format("%s/projects/%d/labels/%d/screenshots", this.url, projectId, labelId), HttpDelete.METHOD_NAME, - "api/labels/listScreenshots.json", urlParams) + RequestMock.build(String.format("%s/projects/%d/labels", this.url, projectId), HttpGet.METHOD_NAME, + "api/labels/listLabels.json"), + RequestMock.build(String.format("%s/projects/%d/labels", this.url, projectId), HttpPost.METHOD_NAME, + "api/labels/addLabelRequest.json", "api/labels/label.json"), + RequestMock.build(String.format("%s/projects/%d/labels/%d", this.url, projectId, labelId), HttpGet.METHOD_NAME, + "api/labels/label.json"), + RequestMock.build(String.format("%s/projects/%d/labels/%d", this.url, projectId, labelId), HttpDelete.METHOD_NAME), + RequestMock.build(String.format("%s/projects/%d/labels/%d", this.url, projectId, labelId), HttpPatch.METHOD_NAME, + "api/labels/editLabelRequest.json", "api/labels/label.json"), + RequestMock.build(String.format("%s/projects/%d/labels/%d/strings", this.url, projectId, labelId), HttpPost.METHOD_NAME, + "api/labels/labelToStringsRequest.json", "api/labels/listStrings.json"), + RequestMock.build(String.format("%s/projects/%d/labels/%d/strings", this.url, projectId, labelId), HttpDelete.METHOD_NAME, + "api/labels/listStrings.json", unassignLabelToStringTestUrlParams), + RequestMock.build(String.format("%s/projects/%d/labels/%d/screenshots", this.url, projectId, labelId), HttpPost.METHOD_NAME, + "api/labels/labelToScreenshotsRequest.json", "api/labels/listScreenshots.json"), + RequestMock.build(String.format("%s/projects/%d/labels/%d/screenshots", this.url, projectId, labelId), HttpDelete.METHOD_NAME, + "api/labels/listScreenshots.json", unassignLabelToScreenshotsUrlParams) ); } @@ -117,8 +115,8 @@ public void assignLabelToStringTest() { } @Test - public void unassignLabelToStringTest() { - ResponseList response = this.getLabelsApi().unassignLabelFromStrings(projectId, labelId); + public void unassignLabelFromStringTest() { + ResponseList response = this.getLabelsApi().unassignLabelFromStrings(projectId, labelId, Arrays.asList(1L)); assertEquals(1, response.getData().size()); } @@ -133,9 +131,7 @@ public void assignLabelToScreenshot() { @Test public void unassignLabelToScreenshot() { - List screenshotIds= Arrays.asList(1L); - ResponseList response = this.getLabelsApi().unassignLabelFromScreenshots(projectId, labelId, screenshotIds); + ResponseList response = this.getLabelsApi().unassignLabelFromScreenshots(projectId, labelId, Arrays.asList(1L)); assertEquals(1, response.getData().size()); - } }