Skip to content

Commit 9e48d70

Browse files
committed
refactor: switch organization uploads to file bytes
1 parent 5e9e2e0 commit 9e48d70

2 files changed

Lines changed: 77 additions & 7 deletions

File tree

src/main/java/io/facturapi/resources/OrganizationsResource.java

Lines changed: 34 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@
1414
import io.facturapi.models.OrganizationUserAccess;
1515
import io.facturapi.models.SearchResult;
1616
import io.facturapi.models.Series;
17+
import java.io.File;
1718
import java.io.IOException;
1819
import java.nio.file.Files;
19-
import java.nio.file.Path;
2020
import java.util.List;
2121
import java.util.Map;
2222

@@ -89,21 +89,48 @@ public DomainAvailability checkDomainAvailability(Map<String, ?> query) {
8989
/**
9090
* Uploads organization logo file.
9191
*/
92-
public Organization uploadLogo(String id, Path filePath) throws IOException {
93-
byte[] fileBytes = Files.readAllBytes(filePath);
92+
public Organization uploadLogo(String id, File file) throws IOException {
93+
return uploadLogo(id, Files.readAllBytes(file.toPath()), file.getName());
94+
}
95+
96+
/**
97+
* Uploads organization logo file bytes.
98+
*/
99+
public Organization uploadLogo(String id, byte[] fileBytes, String fileName) {
94100
MultipartBody multipartBody = new MultipartBodyBuilder()
95-
.addFile("file", filePath.getFileName().toString(), fileBytes, "application/octet-stream")
101+
.addFile("file", fileName, fileBytes, "application/octet-stream")
96102
.build();
97103
return client.putMultipart("/organizations/" + id + "/logo", multipartBody, Organization.class);
98104
}
99105

100106
/**
101107
* Uploads organization CSD certificate files.
102108
*/
103-
public Organization uploadCertificate(String id, Path cerFile, Path keyFile, String password) throws IOException {
109+
public Organization uploadCertificate(String id, File cerFile, File keyFile, String password) throws IOException {
110+
return uploadCertificate(
111+
id,
112+
Files.readAllBytes(cerFile.toPath()),
113+
cerFile.getName(),
114+
Files.readAllBytes(keyFile.toPath()),
115+
keyFile.getName(),
116+
password
117+
);
118+
}
119+
120+
/**
121+
* Uploads organization CSD certificate file bytes.
122+
*/
123+
public Organization uploadCertificate(
124+
String id,
125+
byte[] cerFileBytes,
126+
String cerFileName,
127+
byte[] keyFileBytes,
128+
String keyFileName,
129+
String password
130+
) {
104131
MultipartBody multipartBody = new MultipartBodyBuilder()
105-
.addFile("cer", cerFile.getFileName().toString(), Files.readAllBytes(cerFile), "application/octet-stream")
106-
.addFile("key", keyFile.getFileName().toString(), Files.readAllBytes(keyFile), "application/octet-stream")
132+
.addFile("cer", cerFileName, cerFileBytes, "application/octet-stream")
133+
.addFile("key", keyFileName, keyFileBytes, "application/octet-stream")
107134
.addField("password", password)
108135
.build();
109136
return client.putMultipart("/organizations/" + id + "/certificate", multipartBody, Organization.class);

src/test/java/io/facturapi/FacturapiResourcesTest.java

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,49 @@ void invoicePdfCanBeStreamed() throws Exception {
6262
assertEquals("/v2/invoices/inv_1/pdf", request.uri().getPath());
6363
}
6464

65+
@Test
66+
void organizationUploadsAcceptBytes() {
67+
StubHttpClient httpClient = new StubHttpClient();
68+
httpClient.enqueueJson(200, "{\"id\":\"org_1\"}");
69+
70+
Facturapi sdk = new Facturapi(
71+
FacturapiConfig.builder("sk_test")
72+
.httpClient(httpClient)
73+
.build()
74+
);
75+
76+
var response = sdk.organizations().uploadLogo("org_1", "logo-bytes".getBytes(StandardCharsets.UTF_8), "logo.png");
77+
78+
assertEquals("org_1", response.getId());
79+
assertEquals("PUT", httpClient.requests().get(0).method());
80+
assertEquals("/v2/organizations/org_1/logo", httpClient.requests().get(0).uri().getPath());
81+
}
82+
83+
@Test
84+
void organizationCertificateUploadsAcceptBytes() {
85+
StubHttpClient httpClient = new StubHttpClient();
86+
httpClient.enqueueJson(200, "{\"id\":\"org_1\"}");
87+
88+
Facturapi sdk = new Facturapi(
89+
FacturapiConfig.builder("sk_test")
90+
.httpClient(httpClient)
91+
.build()
92+
);
93+
94+
var response = sdk.organizations().uploadCertificate(
95+
"org_1",
96+
"cer-bytes".getBytes(StandardCharsets.UTF_8),
97+
"certificate.cer",
98+
"key-bytes".getBytes(StandardCharsets.UTF_8),
99+
"certificate.key",
100+
"secret"
101+
);
102+
103+
assertEquals("org_1", response.getId());
104+
assertEquals("PUT", httpClient.requests().get(0).method());
105+
assertEquals("/v2/organizations/org_1/certificate", httpClient.requests().get(0).uri().getPath());
106+
}
107+
65108
@Test
66109
void sdkExposesAccessorBasedSurface() {
67110
Facturapi sdk = new Facturapi(

0 commit comments

Comments
 (0)