Skip to content

Commit

Permalink
feat(api): Add the JavaScript File Export Options (#178)
Browse files Browse the repository at this point in the history
  • Loading branch information
akashpambhar authored Aug 11, 2023
1 parent 77bd300 commit 6061f2d
Show file tree
Hide file tree
Showing 5 changed files with 61 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.crowdin.client.sourcefiles.model.ExportOptions;
import com.crowdin.client.sourcefiles.model.GeneralFileExportOptions;
import com.crowdin.client.sourcefiles.model.JavaScriptFileExportOptions;
import com.crowdin.client.sourcefiles.model.PropertyFileExportOptions;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
Expand Down Expand Up @@ -32,6 +33,8 @@ public ExportOptions deserialize(JsonParser p, DeserializationContext ctxt) thro
.collect(Collectors.toList());
if (fields.contains("escapeSpecialCharacters") || fields.contains("escapeQuotes")) {
return this.objectMapper.readValue(treeNode.toString(), PropertyFileExportOptions.class);
} else if (fields.contains("exportQuotes")) {
return this.objectMapper.readValue(treeNode.toString(), JavaScriptFileExportOptions.class);
} else {
return this.objectMapper.readValue(treeNode.toString(), GeneralFileExportOptions.class);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package com.crowdin.client.sourcefiles.model;

import com.crowdin.client.core.model.EnumConverter;

public enum ExportQuotes implements EnumConverter<ExportQuotes> {

SINGLE, DOUBLE;

public static ExportQuotes from(String value) {
return ExportQuotes.valueOf(value.toUpperCase());
}

@Override
public String to(ExportQuotes v) {
return v.name().toLowerCase();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.crowdin.client.sourcefiles.model;

import lombok.Data;
import lombok.EqualsAndHashCode;

@Data
@EqualsAndHashCode(callSuper = false)
public class JavaScriptFileExportOptions extends ExportOptions {

private ExportQuotes exportQuotes;
private String exportPattern;
}
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ public void editDirectoryTest() {
@Test
public void listFilesTest() {
ResponseList<File> fileResponseList = (ResponseList<File>) this.getSourceFilesApi().listFiles(projectId, null, null, null, null, null, null);
assertEquals(fileResponseList.getData().size(), 4);
assertEquals(fileResponseList.getData().size(), 5);
assertEquals(fileResponseList.getData().get(0).getData().getId(), fileId);
assertEquals(fileResponseList.getData().get(0).getData().getName(), fileName);
ExportOptions exportOptions = fileResponseList.getData().get(0).getData().getExportOptions();
Expand Down Expand Up @@ -197,6 +197,13 @@ public void listFilesTest() {
assertEquals(((DocxFileImportOptions) importOptions).getImportHiddenSlides(), false);
assertEquals(((DocxFileImportOptions) importOptions).getContentSegmentation(), true);
assertEquals(((DocxFileImportOptions) importOptions).getSrxStorageId(), null);

assertEquals(fileResponseList.getData().get(4).getData().getId(), Long.valueOf(48L));
assertEquals(fileResponseList.getData().get(4).getData().getName(), "fileB.js");
exportOptions = fileResponseList.getData().get(4).getData().getExportOptions();
assertTrue(exportOptions instanceof JavaScriptFileExportOptions);
assertEquals(((JavaScriptFileExportOptions) exportOptions).getExportPattern(), "/files/fileB.js");
assertEquals(((JavaScriptFileExportOptions) exportOptions).getExportQuotes().name().toLowerCase(), "single");
}

@Test
Expand Down
21 changes: 21 additions & 0 deletions src/test/resources/api/sourcefiles/listFiles.json
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,27 @@
"type" : "docx",
"path" : "/docs/guide.odt"
}
},
{
"data": {
"id": 48,
"projectId": 2,
"branchId": 34,
"directoryId": 4,
"name": "fileB.js",
"title": "File B",
"type": "js",
"revisionId": 1,
"status": "active",
"priority": "normal",
"importOptions": {},
"exportOptions": {
"exportPattern": "/files/fileB.js",
"exportQuotes": "SINGLE"
},
"createdAt": "2019-09-19T15:10:43+00:00",
"updatedAt": "2019-09-19T15:10:46+00:00"
}
}
],
"pagination": {
Expand Down

0 comments on commit 6061f2d

Please sign in to comment.