Skip to content

Commit a753804

Browse files
committed
feat: script to add version header to java dsdk on generation, some test fixes that are already merged in java sdk
1 parent 0070c43 commit a753804

File tree

11 files changed

+107
-31
lines changed

11 files changed

+107
-31
lines changed

.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,4 +76,7 @@ target/
7676
node_modules
7777

7878
#macOS
79-
.DS_Store
79+
.DS_Store
80+
81+
#local env
82+
.env

package-lock.json

Lines changed: 12 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
"scripts": {
33
"bundle": "redocly bundle openapi.json -o dist/bundledSchema.json",
44
"fix-java-file-get-requests": "ts-node ./scripts/java/fixFileRelatedGetRequests.ts",
5-
"generate-java": "rm -rf ./dist/java-sdk && npm run bundle && npx mkdirp dist/java-sdk/src/test/java/unit/java/sdk && cp -a ./unit/e2e_tests/java/. ./dist/java-sdk/src/test/java/unit/java/sdk && openapi-generator-cli generate -g java -i ./dist/bundledSchema.json -o ./dist/java-sdk -p hideGenerationTimestamp=true -p packageName=unit.java.sdk -p modelPackage=unit.java.sdk.model -p apiPackage=unit.java.sdk.api --library native -p useJakartaEe=true --openapi-normalizer REFACTOR_ALLOF_WITH_PROPERTIES_ONLY=true && npm run fix-java-file-get-requests -- --path=./dist/java-sdk/src/main/java/unit/java/sdk/api/UnitApi.java",
5+
"add-version-header-to-java": "ts-node ./scripts/java/addVersionHeaderToApiClient.ts",
6+
"generate-java": "rm -rf ./dist/java-sdk && npm run bundle && npx mkdirp dist/java-sdk/src/test/java/unit/java/sdk && cp -a ./unit/e2e_tests/java/. ./dist/java-sdk/src/test/java/unit/java/sdk && openapi-generator-cli generate -g java -i ./dist/bundledSchema.json -o ./dist/java-sdk -p hideGenerationTimestamp=true -p packageName=unit.java.sdk -p modelPackage=unit.java.sdk.model -p apiPackage=unit.java.sdk.api --library native -p useJakartaEe=true --openapi-normalizer REFACTOR_ALLOF_WITH_PROPERTIES_ONLY=true && npm run fix-java-file-get-requests -- --path=./dist/java-sdk/src/main/java/unit/java/sdk/api/UnitApi.java && npm run add-version-header-to-java -- --path=./dist/java-sdk/src/main/java/unit/java/sdk/ApiClient.java",
67
"generate-ruby": "rm -rf ./dist/ruby-sdk && npm run bundle && cp -r unit ./dist/ruby-sdk && openapi-generator-cli generate -g ruby -i ./dist/bundledSchema.json -o ./dist/ruby-sdk",
78
"generate-node": "rm -rf ./dist/node-sdk && npm run bundle && openapi-generator-cli generate -g typescript-axios -i ./dist/bundledSchema.json -o ./dist/node-sdk",
89
"lint": "redocly lint --config .redocly.yaml openapi.json",
@@ -11,6 +12,7 @@
1112
"dependencies": {
1213
"@openapitools/openapi-generator-cli": "^2.14.0",
1314
"@redocly/cli": "^1.13.0",
15+
"dotenv": "^16.4.5",
1416
"prettier": "^3.2.5",
1517
"ts-node": "^10.9.2"
1618
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import { getPathCmdParameter, loadDotenv, openJavaFile } from "./utils";
2+
import fs from "fs";
3+
4+
function addVersionHeadersToApiClient(data: string): string {
5+
const interceptorRegex = /interceptor = null;/gm;
6+
7+
var processedData = data;
8+
console.log("API VERSION: " + process.env.API_VERSION);
9+
const interceptorWithVersionHeader = `interceptor = (req) -> {
10+
req.setHeader("X-UNIT-SDK", "unit-node-sdk@v${process.env.API_VERSION}");
11+
};`;
12+
processedData = processedData.replaceAll(
13+
interceptorRegex,
14+
interceptorWithVersionHeader
15+
);
16+
17+
return processedData;
18+
}
19+
20+
function execute() {
21+
loadDotenv();
22+
23+
try {
24+
console.log("Adding version header to ApiClient...");
25+
const path = getPathCmdParameter();
26+
const data = openJavaFile(path);
27+
const processedData = addVersionHeadersToApiClient(data);
28+
console.log("Added version header to ApiClient!");
29+
30+
fs.writeFileSync(path, processedData);
31+
} catch (e) {
32+
console.error(e);
33+
}
34+
}
35+
36+
execute();

scripts/java/fixFileRelatedGetRequests.ts

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import fs from "fs";
2+
import { getPathCmdParameter, openJavaFile } from "./utils";
23

3-
function processData(data: string): string {
4+
function fixFileRelatedGetRequests(data: string): string {
45
const mainFunctionNameRegex = /(File )(get|download)/gm;
56
const mainFunctionHttpInfoReturnRegex =
67
/(ApiResponse<)(File)(> localVarResponse)/gm;
@@ -73,26 +74,14 @@ import java.net.URI;`
7374
}
7475

7576
function execute() {
76-
const pathArg = process.argv.find((val) => val.includes("--path="));
77-
if (pathArg == null) {
78-
console.error(
79-
`Undefined path! Don't forget to specify the path, e.g. "...fixFileRelatedGetRequests.ts ./TargetFile.java"`
80-
);
81-
return;
82-
}
83-
84-
const path = pathArg?.replace("--path=", "");
85-
if (!path.includes(".java")) {
86-
console.error("Path must lead to a java file!");
87-
return;
88-
}
89-
9077
try {
9178
console.log("Fixing file related get requests...");
92-
const data = fs.readFileSync(path, "utf-8");
93-
const processedData = processData(data);
94-
fs.writeFileSync(path, processedData);
79+
const path = getPathCmdParameter();
80+
const data = openJavaFile(path);
81+
const processedData = fixFileRelatedGetRequests(data);
9582
console.log("Fixed file related get requests!");
83+
84+
fs.writeFileSync(path, processedData);
9685
} catch (e) {
9786
console.error(e);
9887
}

scripts/java/utils.ts

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import fs from "fs";
2+
import dotenv from "dotenv";
3+
4+
export function loadDotenv() {
5+
dotenv.config();
6+
}
7+
8+
export function openJavaFile(path: string): string {
9+
if (!path.includes(".java")) {
10+
throw new Error("Path must lead to a java file!");
11+
}
12+
13+
return fs.readFileSync(path, "utf-8");
14+
}
15+
16+
export function getPathCmdParameter(): string {
17+
const pathArg = process.argv.find((val) => val.includes("--path="));
18+
19+
if (pathArg == null) {
20+
throw new Error(
21+
`Undefined path! Don't forget to specify the path, e.g. "...fixFileRelatedGetRequests.ts ./TargetFile.java"`
22+
);
23+
}
24+
25+
const path = pathArg?.replace("--path=", "");
26+
if (!path.includes(".java")) {
27+
throw new Error("Path must lead to a java file!");
28+
}
29+
30+
return path;
31+
}

unit/e2e_tests/java/AccountTests.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -414,7 +414,7 @@ WalletAccount CreateAndCloseWalletAccount() throws ApiException {
414414
CloseAccountRequestDataAttributes closeAccountRequestAttributes = new CloseAccountRequestDataAttributes();
415415
closeAccountRequestAttributes.setReason(CloseAccountRequestDataAttributes.ReasonEnum.BY_CUSTOMER);
416416
closeAccountRequestData.setAttributes(closeAccountRequestAttributes);
417-
closeAccountRequestData.setType(CloseAccountRequestData.TypeEnum.DEPOSIT_ACCOUNT_CLOSE);
417+
closeAccountRequestData.setType(CloseAccountRequestData.TypeEnum.WALLET_ACCOUNT_CLOSE);
418418
closeAccountRequest.setData(closeAccountRequestData);
419419

420420
UnitAccountResponse res = unitApi.closeAccount(walletAccount.getId(), closeAccountRequest);
@@ -436,7 +436,7 @@ public void ReopenWalletAccountApiTest() throws ApiException {
436436
}
437437

438438
WalletAccount CreateAndFreezeWalletAccount() throws ApiException {
439-
DepositAccount walletAccount = CreateDepositAccount(unitApi, CreateIndividualCustomer(unitApi));
439+
WalletAccount walletAccount = CreateWalletAccount();
440440
FreezeAccountRequest freezeAccountRequest = new FreezeAccountRequest();
441441
FreezeAccountRequestData freezeAccountRequestData = new FreezeAccountRequestData();
442442
FreezeAccountRequestDataAttributes freezeAccountRequestDataAttributes = new FreezeAccountRequestDataAttributes();
@@ -464,8 +464,8 @@ public void UnfreezeWalletAccountApiTest() throws ApiException {
464464

465465
@Test
466466
public void GetWalletAccountLimitsApiTest() throws ApiException {
467-
DepositAccount depositAccount = CreateDepositAccount(unitApi, CreateIndividualCustomer(unitApi));
468-
UnitGetAccountLimitsResponse res = unitApi.getAccountLimits(depositAccount.getId());
467+
WalletAccount walletAccount = CreateWalletAccount();
468+
UnitGetAccountLimitsResponse res = unitApi.getAccountLimits(walletAccount.getId());
469469
assert res.getData().getType().equals(Limits.TypeEnum.WALLET_LIMITS);
470470
}
471471

unit/e2e_tests/java/PaymentTests.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import static unit.java.sdk.TestHelpers.CreateWirePaymentCounterparty;
88
import static unit.java.sdk.TestHelpers.GenerateUnitApiClient;
99

10-
import java.math.BigDecimal;
1110
import java.util.List;
1211

1312
import static unit.java.sdk.CustomerTests.CreateIndividualCustomer;
@@ -19,7 +18,6 @@
1918
import unit.java.sdk.model.AchPayment;
2019
import unit.java.sdk.model.BookPayment;
2120
import unit.java.sdk.model.CashDepositBarcode;
22-
import unit.java.sdk.model.Coordinates;
2321
import unit.java.sdk.model.Counterparty;
2422
import unit.java.sdk.model.CounterpartyAccountRelationship;
2523
import unit.java.sdk.model.CounterpartyAccountRelationshipData;
@@ -54,7 +52,6 @@
5452
import unit.java.sdk.model.GenerateBarcodeRequestDataAttributes;
5553
import unit.java.sdk.model.GenerateBarcodeRequestRelationships;
5654
import unit.java.sdk.model.GetCashDepositStoreLocationsListFilterParameter;
57-
import unit.java.sdk.model.GetCheckDepositsListFilterParameter;
5855
import unit.java.sdk.model.IndividualCustomer;
5956
import unit.java.sdk.model.IndividualDebitCard;
6057
import unit.java.sdk.model.ListPageParameters;
@@ -301,7 +298,7 @@ public void UpdateAchPaymentApiTest() throws ApiException {
301298
@Test
302299
public void CancelAchPaymentTest() throws ApiException {
303300
AchPayment payment = CreateAchPayment();
304-
System.err.println(payment.getAttributes().getStatus());
301+
305302
UnitPaymentResponse res = unitApi.cancelPayment(payment.getId(), new Object());
306303
assert res.getData().getType().equals(Payment.TypeEnum.ACH_PAYMENT);
307304
}

unit/e2e_tests/java/ReceivedPaymentTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ public void ReprocessReceivedPaymentApiTest() throws ApiException {
135135
UnitReceivedPaymentResponse res = unitApi.createIncomingAchPaymentSimulation(req);
136136
ReceivedPayment payment = res.getData();
137137
assert payment.getType().equals(ReceivedPayment.TypeEnum.ACH_RECEIVED_PAYMENT);
138-
System.err.println(payment.toString());
138+
139139
UnitReceivedPaymentResponse reprocessRes = unitApi.reprocessReceivedPayment(payment.getId());
140140
assert reprocessRes.getData().getType().equals(ReceivedPayment.TypeEnum.ACH_RECEIVED_PAYMENT);
141141
}

unit/e2e_tests/java/TestHelpers.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package unit.java.sdk;
22

3+
import java.net.http.HttpRequest;
34
import java.time.LocalDate;
45
import java.util.ArrayList;
56
import java.util.List;
7+
import java.util.function.Consumer;
68

79
import com.fasterxml.jackson.databind.ObjectMapper;
810
import com.fasterxml.jackson.databind.SerializationFeature;
@@ -44,7 +46,12 @@ static UnitApi GenerateUnitApiClient() {
4446
ObjectMapper mapper = cl.getObjectMapper();
4547
mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
4648
cl.setObjectMapper(mapper);
47-
cl.setRequestInterceptor(r -> r.header("Authorization", "Bearer " + access_token));
49+
Consumer<HttpRequest.Builder> defaultInterceptor = cl.getRequestInterceptor();
50+
cl.setRequestInterceptor(r -> {
51+
r.header("Authorization", "Bearer " + access_token);
52+
System.err.println(r.build().headers().toString());
53+
System.err.println("println test");
54+
});
4855
unitApi = new UnitApi(cl);
4956
}
5057

0 commit comments

Comments
 (0)