diff --git a/src/main/java/com/crowdin/client/filereferences/FileReferencesApi.java b/src/main/java/com/crowdin/client/filereferences/FileReferencesApi.java new file mode 100644 index 00000000..b5e2c9b3 --- /dev/null +++ b/src/main/java/com/crowdin/client/filereferences/FileReferencesApi.java @@ -0,0 +1,47 @@ +package com.crowdin.client.filereferences; + +import com.crowdin.client.core.CrowdinApi; +import com.crowdin.client.core.model.ResponseList; +import com.crowdin.client.core.model.ResponseObject; +import com.crowdin.client.filereferences.model.FileReference; +import com.crowdin.client.filereferences.model.AddFileReferenceRequest; +import com.fasterxml.jackson.core.type.TypeReference; + +public class FileReferencesApi extends CrowdinApi { + + public FileReferencesApi(com.crowdin.client.core.model.Credentials credentials) { + super(credentials); + } + + /** + * List File References + */ + public ResponseList listFileReferences(Long projectId) { + String url = String.format("%s/projects/%d/file-references", this.url, projectId); + return this.httpClient.get(url, new TypeReference>() {}); + } + + /** + * Get File Reference by ID + */ + public ResponseObject getFileReference(Long projectId, Long fileReferenceId) { + String url = String.format("%s/projects/%d/file-references/%d", this.url, projectId, fileReferenceId); + return this.httpClient.get(url, new TypeReference>() {}); + } + + /** + * Add File Reference + */ + public ResponseObject addFileReference(Long projectId, AddFileReferenceRequest request) { + String url = String.format("%s/projects/%d/file-references", this.url, projectId); + return this.httpClient.post(url, request, new TypeReference>() {}); + } + + /** + * Delete File Reference + */ + public void deleteFileReference(Long projectId, Long fileReferenceId) { + String url = String.format("%s/projects/%d/file-references/%d", this.url, projectId, fileReferenceId); + this.httpClient.delete(url); + } +} diff --git a/src/main/java/com/crowdin/client/filereferences/model/AddFileReferenceRequest.java b/src/main/java/com/crowdin/client/filereferences/model/AddFileReferenceRequest.java new file mode 100644 index 00000000..3052dc0c --- /dev/null +++ b/src/main/java/com/crowdin/client/filereferences/model/AddFileReferenceRequest.java @@ -0,0 +1,13 @@ +package com.crowdin.client.filereferences.model; + +import lombok.Data; + +/** + * Request body for creating a new File Reference. + */ +@Data +public class AddFileReferenceRequest { + private String name; // Name of the reference + private String type; // Type of the reference (e.g., "file" or "asset") + private Long fileId; // ID of the file this reference points to +} diff --git a/src/main/java/com/crowdin/client/filereferences/model/FileReference.java b/src/main/java/com/crowdin/client/filereferences/model/FileReference.java new file mode 100644 index 00000000..8d174ec6 --- /dev/null +++ b/src/main/java/com/crowdin/client/filereferences/model/FileReference.java @@ -0,0 +1,13 @@ +import com.crowdin.client.filereferences.model.AddFileReferenceRequest; + +package com.crowdin.client.filereferences.model; + +import lombok.Data; + +@Data +public class FileReference { + private Long id; + private String name; + private String type; + private Long projectId; +}