Skip to content

Commit

Permalink
Add support for user report settings template
Browse files Browse the repository at this point in the history
* Added methods to handle User Report Settings Templates endpoints, reusing logic from existing Report Settings Templates methods.
* Implemented tests to ensure the correct functionality of the newly added methods.
* Created 4 JSON files for User Report Settings Templates, following the structure of existing Report Settings Templates.
  • Loading branch information
”Andrei” committed Jan 22, 2025
1 parent 41a3912 commit 98b36b3
Show file tree
Hide file tree
Showing 5 changed files with 159 additions and 1 deletion.
50 changes: 49 additions & 1 deletion src/test/java/com/crowdin/client/reports/ReportsApiTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,12 @@ public List<RequestMock> getMocks() {
RequestMock.build(this.url + "/users/" + userId + "/reports/archives/" + archiveId, HttpDelete.METHOD_NAME),
RequestMock.build(this.url + "/users/" + userId + "/reports/archives/" + archiveId + "/exports", HttpPost.METHOD_NAME, "api/reports/exportReportArchiveReques.json", "api/reports/reportGenerationStatus.json"),
RequestMock.build(this.url + "/users/" + userId + "/reports/archives/" + archiveId + "/exports/" + exportId, HttpGet.METHOD_NAME, "api/reports/reportGenerationStatus.json"),
RequestMock.build(this.url + "/users/" + userId + "/reports/archives" + archiveId + "/exports/" + exportId + "/download", HttpGet.METHOD_NAME, "api/reports/downloadLink.json"));
RequestMock.build(this.url + "/users/" + userId + "/reports/archives" + archiveId + "/exports/" + exportId + "/download", HttpGet.METHOD_NAME, "api/reports/downloadLink.json"),
RequestMock.build(this.url + "/users/" + userId + "/reports/settings-templates", HttpGet.METHOD_NAME, "api/reports/listUserReportSettingsTemplate.json"),
RequestMock.build(this.url + "/users/" + userId + "/reports/settings-templates", HttpPost.METHOD_NAME, "api/reports/addUserReportSettingsTemplate.json", "api/reports/userReportSettingsTemplate.json"),
RequestMock.build(this.url + "/users/" + userId + "/reports/settings-templates/" + reportSettingsTemplateId, HttpGet.METHOD_NAME, "api/reports/userReportSettingsTemplate.json"),
RequestMock.build(this.url + "/users/" + userId + "/reports/settings-templates/" + reportSettingsTemplateId, HttpPatch.METHOD_NAME, "api/reports/editUserReportSettingsTemplate.json", "api/reports/userReportSettingsTemplate.json"),
RequestMock.build(this.url + "/users/" + userId + "/reports/settings-templates/" + reportSettingsTemplateId, HttpDelete.METHOD_NAME));
}

private ReportSettingsTemplate createSettingsTemplate() {
Expand Down Expand Up @@ -227,6 +232,49 @@ public void deleteReportSettingsTemplateTest() {
this.getReportsApi().deleteReportSettingsTemplate(projectId, reportSettingsTemplateId);
}

@Test
public void listUserReportSettingsTemplateTest() {
ResponseList<ReportSettingsTemplate> userReportSettingsTemplateResponseList = this.getReportsApi().listUserReportSettingsTemplate(userId, null, null);
assertEquals(userReportSettingsTemplateResponseList.getData().size(), 1);
assertEquals(userReportSettingsTemplateResponseList.getData().get(0).getData().getId(), userId);
assertEquals(userReportSettingsTemplateResponseList.getData().get(0).getData().getName(), name);
}

@Test
public void addUserReportSettingsTemplateTest() {
ReportSettingsTemplate request = createSettingsTemplate();
request.setIsPublic(null);
ResponseObject<ReportSettingsTemplate> userReportSettingsTemplateResponseObject = this.getReportsApi().addUserReportSettingsTemplate(userId, request);
ReportSettingsTemplate response = userReportSettingsTemplateResponseObject.getData();
assertEquals(request.getName(), response.getName());
assertEquals(request.getCurrency(), response.getCurrency());
assertEquals(request.getUnit(), response.getUnit());
assertEquals(request.getConfig(), response.getConfig());
}

@Test
public void getUserReportSettingsTemplateTest() {
ResponseObject<ReportSettingsTemplate> responseObject = this.getReportsApi().getUserReportSettingsTemplate(userId, reportSettingsTemplateId);
assertEquals(responseObject.getData().getId(), userId);
assertEquals(responseObject.getData().getName(), name);
}

@Test
public void editUserReportSettingsTemplateTest() {
PatchRequest request = new PatchRequest();
request.setOp(PatchOperation.REPLACE);
request.setValue(name);
request.setPath("name");
ResponseObject<ReportSettingsTemplate> responseObject = this.getReportsApi().editUserReportSettingsTemplate(userId, reportSettingsTemplateId, singletonList(request));
assertEquals(responseObject.getData().getId(), userId);
assertEquals(responseObject.getData().getName(), name);
}

@Test
public void deleteUserReportSettingsTemplateTest() {
this.getReportsApi().deleteUserReportSettingsTemplate(userId, reportSettingsTemplateId);
}

@Test
public void getListReportArchivesTest() {
ResponseList<ReportArchive> responseObject = this.getReportsApi().listReportArchives(userId, null, null, null, null);
Expand Down
29 changes: 29 additions & 0 deletions src/test/resources/api/reports/addUserReportSettingsTemplate.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
"name": "my report template",
"currency": "USD",
"unit": "strings",
"config": {
"regularRates": [
{
"mode": "no_match",
"value": 0.1
}
],
"individualRates": [
{
"languageIds": [
"uk"
],
"userIds": [
20
],
"rates": [
{
"mode": "tm_match",
"value": 0.1
}
]
}
]
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
[
{
"op": "replace",
"path": "name",
"value": "my report template"
}
]
40 changes: 40 additions & 0 deletions src/test/resources/api/reports/listUserReportSettingsTemplate.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
{
"data": [
{
"data": {
"id": 1,
"name": "my report template",
"currency": "USD",
"unit": "words",
"config": {
"regularRates": [
{
"mode": "tm_match",
"value": 0.1
}
],
"individualRates": [
{
"languageIds": [
"uk"
],
"userIds": [],
"rates": [
{
"mode": "tm_match",
"value": 0.1
}
]
}
]
},
"createdAt": "2019-09-23T11:26:54+00:00",
"updatedAt": "2019-09-23T11:26:54+00:00"
}
}
],
"pagination": {
"offset": 0,
"limit": 25
}
}
34 changes: 34 additions & 0 deletions src/test/resources/api/reports/userReportSettingsTemplate.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
{
"data": {
"id": 1,
"name": "my report template",
"currency": "USD",
"unit": "strings",
"config": {
"regularRates": [
{
"mode": "no_match",
"value": 0.1
}
],
"individualRates": [
{
"languageIds": [
"uk"
],
"userIds": [
20
],
"rates": [
{
"mode": "tm_match",
"value": 0.1
}
]
}
]
},
"createdAt": "2019-09-23T11:26:54+00:00",
"updatedAt": "2019-09-23T11:26:54+00:00"
}
}

0 comments on commit 98b36b3

Please sign in to comment.