Skip to content

Commit

Permalink
Add user report settings methods
Browse files Browse the repository at this point in the history
* Implement list, add, get, delete and edit methods for User Report Settings.
* Ensure compatibility with existing Report Settings logic.
  • Loading branch information
”Andrei” committed Jan 21, 2025
1 parent af71abc commit 41a3912
Showing 1 changed file with 81 additions and 0 deletions.
81 changes: 81 additions & 0 deletions src/main/java/com/crowdin/client/reports/ReportsApi.java
Original file line number Diff line number Diff line change
Expand Up @@ -217,6 +217,87 @@ public void deleteReportSettingsTemplate(Long projectId, Long reportSettingsTemp
this.httpClient.delete(this.url + "/projects/" + projectId + "/settings-templates/" + reportSettingsTemplateId, new HttpRequestConfig(), Void.class);
}

// -- USER REPORTS -- //

/**
*
* @param userId user identifier
* @param limit (default 25)
* @param offset (default 0)
* @return list of user report settings template
* @see <ul>
* <li><a href="https://developer.crowdin.com/api/v2/#operation/api.users.reports.settings-templates.getMany" target="_blank"><b>API Documentation</b></a></li>
* <li><a href="https://developer.crowdin.com/enterprise/api/v2/#operation/api.users.reports.settings-templates.getMany" target="_blank"><b>Enterprise API Documentation</b></a></li>
* </ul>
*/
public ResponseList<ReportSettingsTemplate> listUserReportSettingsTemplate(Long userId, Integer limit, Integer offset) throws HttpException, HttpBadRequestException {
Map<String, Optional<Object>> queryParams = HttpRequestConfig.buildUrlParams(
"limit", Optional.ofNullable(limit),
"offset", Optional.ofNullable(offset)
);
ReportSettingsTemplateList reportSettingsTemplateList = this.httpClient.get(this.url + "/users/" + userId + "/reports/settings-templates", new HttpRequestConfig(queryParams), ReportSettingsTemplateList.class);
return ReportSettingsTemplateList.to(reportSettingsTemplateList);
}

/**
*
* @param userId user identifier
* @param request request object
* @return user report settings template
* @see <ul>
* <li><a href="https://developer.crowdin.com/api/v2/#operation/api.users.reports.settings-templates.post" target="_blank"><b>API Documentation</b></a></li>
* <li><a href="https://developer.crowdin.com/enterprise/api/v2/#operation/api.users.reports.settings-templates.post" target="_blank"><b>Enterprise API Documentation</b></a></li>
* </ul>
*/
public ResponseObject<ReportSettingsTemplate> addUserReportSettingsTemplate(Long userId, ReportSettingsTemplate request) throws HttpException, HttpBadRequestException {
ReportSettingsTemplateResponseObject responseObject = this.httpClient.post(this.url + "/users/" + userId + "/reports/settings-templates", request, new HttpRequestConfig(), ReportSettingsTemplateResponseObject.class);
return ResponseObject.of(responseObject.getData());
}

/**
*
* @param userId user identifier
* @param reportSettingsTemplateId report settings template identifier
* @return user report settings template
* @see <ul>
* <li><a href="https://developer.crowdin.com/api/v2/#operation/api.users.reports.settings-templates.get" target="_blank"><b>API Documentation</b></a></li>
* <li><a href="https://developer.crowdin.com/enterprise/api/v2/#operation/api.users.reports.settings-templates.get" target="_blank"><b>Enterprise API Documentation</b></a></li>
* </ul>
*/
public ResponseObject<ReportSettingsTemplate> getUserReportSettingsTemplate(Long userId, Long reportSettingsTemplateId) throws HttpException, HttpBadRequestException {
ReportSettingsTemplateResponseObject responseObject = this.httpClient.get(this.url + "/users/" + userId + "/reports/settings-templates/" + reportSettingsTemplateId, new HttpRequestConfig(), ReportSettingsTemplateResponseObject.class);
return ResponseObject.of(responseObject.getData());
}

/**
*
* @param userId user identifier
* @param reportSettingsTemplateId report settings template identifier
* @param request request object
* @return user report settings template
* @see <ul>
* <li><a href="https://developer.crowdin.com/api/v2/#operation/api.users.reports.settings-templates.patch" target="_blank"><b>API Documentation</b></a></li>
* <li><a href="https://developer.crowdin.com/enterprise/api/v2/#operation/api.users.reports.settings-templates.patch" target="_blank"><b>Enterprise API Documentation</b></a></li>
* </ul>
*/
public ResponseObject<ReportSettingsTemplate> editUserReportSettingsTemplate(Long userId, Long reportSettingsTemplateId, List<PatchRequest> request) throws HttpException, HttpBadRequestException {
ReportSettingsTemplateResponseObject responseObject = this.httpClient.patch(this.url + "/users/" + userId + "/reports/settings-templates/" + reportSettingsTemplateId, request, new HttpRequestConfig(), ReportSettingsTemplateResponseObject.class);
return ResponseObject.of(responseObject.getData());
}

/**
*
* @param userId user identifier
* @param reportSettingsTemplateId report settings template identifier
* @see <ul>
* <li><a href="https://developer.crowdin.com/api/v2/#operation/api.users.reports.settings-templates.delete" target="_blank"><b>API Documentation</b></a></li>
* <li><a href="https://developer.crowdin.com/enterprise/api/v2/#operation/api.users.reports.settings-templates.delete" target="_blank"><b>Enterprise API Documentation</b></a></li>
* </ul>
*/
public void deleteUserReportSettingsTemplate(Long userId, Long reportSettingsTemplateId) throws HttpException, HttpBadRequestException {
this.httpClient.delete(this.url + "/users/" + userId + "/reports/settings-templates/" + reportSettingsTemplateId, new HttpRequestConfig(), Void.class);
}

// -- REPORT ARCHIVES -- //

/**
Expand Down

0 comments on commit 41a3912

Please sign in to comment.