Skip to content

Commit 696ffbb

Browse files
SK-2071: fix file object in response
1 parent 5816de1 commit 696ffbb

File tree

7 files changed

+91
-13
lines changed

7 files changed

+91
-13
lines changed

src/main/java/com/skyflow/VaultClient.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -493,10 +493,10 @@ protected DeidentifyAudioRequest getDeidentifyAudioRequest(DeidentifyFileRequest
493493
.allowRegex(allowRegex)
494494
.restrictRegex(restrictRegex)
495495
.entityTypes(mappedEntityTypes)
496-
.bleepFrequency(request.getBleep().getFrequency())
497-
.bleepGain(request.getBleep().getGain())
498-
.bleepStartPadding(request.getBleep().getStartPadding())
499-
.bleepStopPadding(request.getBleep().getStopPadding())
496+
.bleepFrequency(request.getBleep() != null ? request.getBleep().getFrequency() : null)
497+
.bleepGain(request.getBleep() != null ? request.getBleep().getGain() : null)
498+
.bleepStartPadding(request.getBleep() != null ? request.getBleep().getStartPadding() : null)
499+
.bleepStopPadding(request.getBleep() != null ? request.getBleep().getStopPadding() : null)
500500
.outputProcessedAudio(request.getOutputProcessedAudio())
501501
.outputTranscription(outputTranscriptionType)
502502
.tokenType(tokenType)

src/main/java/com/skyflow/utils/Constants.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,6 @@ public final class Constants {
2626
public static final String SDK_METRICS_HEADER_KEY = "sky-metadata";
2727
public static final String REQUEST_ID_HEADER_KEY = "x-request-id";
2828
public static final String PROCESSED_FILE_NAME_PREFIX = "processed-";
29-
public static final String ERROR_FROM_CLIENT_HEADER_KEY = "error-from-client";
29+
public static final String ERROR_FROM_CLIENT_HEADER_KEY = "eror-from-client";
30+
public static final String DEIDENTIFIED_FILE_PREFIX = "deidentified";;
3031
}

src/main/java/com/skyflow/vault/controller/DetectController.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -231,24 +231,26 @@ private static synchronized DeidentifyFileResponse parseDeidentifyFileResponse(D
231231
}
232232

233233
File processedFileObject = null;
234+
FileInfo fileInfo = null;
234235
Optional<String> processedFileBase64 = firstOutput != null ? firstOutput.getProcessedFile() : Optional.empty();
235236
Optional<String> processedFileExtension = firstOutput != null ? firstOutput.getProcessedFileExtension() : Optional.empty();
236237

237238
if (processedFileBase64.isPresent() && processedFileExtension.isPresent()) {
238239
try {
239240
byte[] decodedBytes = Base64.getDecoder().decode(processedFileBase64.get());
240241
String suffix = "." + processedFileExtension.get();
241-
processedFileObject = File.createTempFile("deidentified", suffix);
242-
processedFileObject.deleteOnExit();
243-
242+
String fileName = Constants.DEIDENTIFIED_FILE_PREFIX + suffix;
243+
processedFileObject = new File(System.getProperty("java.io.tmpdir"), fileName);
244244
Files.write(processedFileObject.toPath(), decodedBytes);
245+
fileInfo = new FileInfo(processedFileObject);
246+
processedFileObject.deleteOnExit();
245247
} catch (IOException ioe) {
246248
throw new SkyflowException(ErrorCode.INVALID_INPUT.getCode(), ErrorMessage.FailedToEncodeFile.getMessage());
247249
}
248250
}
249251

250252
return new DeidentifyFileResponse(
251-
processedFileObject,
253+
fileInfo,
252254
firstOutput.getProcessedFile().orElse(null),
253255
firstOutput.getProcessedFileType().get().toString(),
254256
firstOutput.getProcessedFileExtension().get(),

src/main/java/com/skyflow/vault/detect/DeidentifyFileResponse.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import java.util.List;
88

99
public class DeidentifyFileResponse {
10-
private final File file;
10+
private final FileInfo file;
1111
private final String fileBase64;
1212
private final String type;
1313
private final String extension;
@@ -23,7 +23,7 @@ public class DeidentifyFileResponse {
2323
private final List<String> errors;
2424

2525

26-
public DeidentifyFileResponse(File file, String fileBase64, String type, String extension,
26+
public DeidentifyFileResponse(FileInfo file, String fileBase64, String type, String extension,
2727
Integer wordCount, Integer charCount, Double sizeInKb,
2828
Double durationInSeconds, Integer pageCount, Integer slideCount,
2929
List<FileEntityInfo> entities, String runId, String status, List<String> errors) {
@@ -47,7 +47,7 @@ public DeidentifyFileResponse(String runId, String status) {
4747
this(null, null, null, null, null, null, null, null, null, null, null, runId, status, null);
4848
}
4949

50-
public File getFile() {
50+
public FileInfo getFile() {
5151
return file;
5252
}
5353

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package com.skyflow.vault.detect;
2+
3+
import java.io.File;
4+
5+
public class FileInfo {
6+
private String name;
7+
private long size;
8+
private String type;
9+
private long lastModified;
10+
11+
public FileInfo(File file) {
12+
this.name = file.getName();
13+
this.size = file.length();
14+
this.type = "";
15+
this.lastModified = file.lastModified();
16+
}
17+
18+
public String getName() {
19+
return name;
20+
}
21+
22+
public long getSize() {
23+
return size;
24+
}
25+
26+
public String getType() {
27+
return type;
28+
}
29+
30+
public long getLastModified() {
31+
return lastModified;
32+
}
33+
}

src/test/java/com/skyflow/vault/detect/DeidentifyFileResponseTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,10 @@ public void testAllGettersAndToString() {
2727
String runId = "run-123";
2828
String status = "SUCCESS";
2929
java.util.List<String> errors = Arrays.asList("error1", "error2");
30+
FileInfo fileInfo = new FileInfo(fileObject);
3031

3132
DeidentifyFileResponse response = new DeidentifyFileResponse(
32-
fileObject, file, type, extension, wordCount, charCount, sizeInKb,
33+
fileInfo, file, type, extension, wordCount, charCount, sizeInKb,
3334
durationInSeconds, pageCount, slideCount, entities, runId, status, errors
3435
);
3536

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package com.skyflow.vault.detect;
2+
3+
import org.junit.Assert;
4+
import org.junit.Test;
5+
6+
import java.io.File;
7+
import java.io.FileWriter;
8+
import java.io.IOException;
9+
10+
public class FileInfoTest {
11+
12+
@Test
13+
public void testFileInfoFields() throws IOException {
14+
// Create a temp file
15+
File tempFile = File.createTempFile("testfileinfo", ".txt");
16+
tempFile.deleteOnExit();
17+
18+
// Write some content to ensure size > 0
19+
FileWriter writer = new FileWriter(tempFile);
20+
writer.write("Hello Skyflow!");
21+
writer.close();
22+
23+
FileInfo fileInfo = new FileInfo(tempFile);
24+
25+
Assert.assertEquals(tempFile.getName(), fileInfo.getName());
26+
Assert.assertEquals(tempFile.length(), fileInfo.getSize());
27+
Assert.assertEquals("", fileInfo.getType());
28+
Assert.assertEquals(tempFile.lastModified(), fileInfo.getLastModified());
29+
}
30+
31+
@Test
32+
public void testFileInfoWithNonExistentFile() {
33+
File fakeFile = new File("nonexistentfile.txt");
34+
FileInfo fileInfo = new FileInfo(fakeFile);
35+
36+
Assert.assertEquals("nonexistentfile.txt", fileInfo.getName());
37+
Assert.assertEquals(0, fileInfo.getSize());
38+
Assert.assertEquals("", fileInfo.getType());
39+
Assert.assertEquals(0, fileInfo.getLastModified());
40+
}
41+
}

0 commit comments

Comments
 (0)