Skip to content

Commit 2f4b94e

Browse files
committed
calling java converter
1 parent 4a9925b commit 2f4b94e

File tree

2 files changed

+55
-1
lines changed

2 files changed

+55
-1
lines changed

docs/examples/generate-language-examples.js

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ const fs = require('fs');
2121
const path = require('path');
2222
const { parseDocument: yamlParseDocument } = require('yaml');
2323
const { convertRequests, loadSchema } = require('@elastic/request-converter');
24+
const {parseRequest} = require("@elastic/request-converter/dist/parse");
25+
const {JavaCaller} = require("java-caller");
2426

2527
const LANGUAGES = ['Python', 'JavaScript', 'Ruby', 'PHP', 'curl'];
2628

@@ -43,6 +45,40 @@ async function generateLanguages(example) {
4345
code: (await convertRequests(request, lang, {})).trim(),
4446
});
4547
}
48+
// specific java example generator
49+
const javaExampleFile = path.parse(example).name + "Java.txt";
50+
const partialRequest = await parseRequest(request);
51+
const java = new JavaCaller({
52+
minimumJavaVersion: 21,
53+
jar: "path/to/converter/jar/java-es-request-converter-1.0-SNAPSHOT.jar",
54+
});
55+
56+
let correctParams = getCodeGenParamNames(partialRequest.params, partialRequest.request);
57+
let body = partialRequest.body;
58+
if (!body) {
59+
body = {}
60+
}
61+
62+
let javaReqs = [];
63+
const javaParsedRequest = {
64+
api: partialRequest.api,
65+
params: correctParams,
66+
query: partialRequest.query,
67+
body: body,
68+
};
69+
javaReqs.push(javaParsedRequest)
70+
71+
let args = [];
72+
args.push(JSON.stringify(javaReqs));
73+
74+
const { status, stdout, stderr } = await java.run(args);
75+
if (status) {
76+
console.log(stderr);
77+
console.log(JSON.stringify(javaReqs));
78+
return stderr;
79+
}
80+
await fs.promises.writeFile(javaExampleFile, stdout);
81+
4682
doc.delete('alternatives');
4783
doc.add(doc.createPair('alternatives', data.alternatives));
4884
await fs.promises.writeFile(example, doc.toString({lineWidth: 132}));
@@ -60,6 +96,23 @@ async function* walkExamples(dir) {
6096
}
6197
}
6298

99+
function getCodeGenParamNames(
100+
params,
101+
request,
102+
){
103+
for (const [key, value] of Object.entries(params)) {
104+
if (request?.path) {
105+
for (const prop of request.path) {
106+
if (prop.name === key && prop.codegenName !== undefined) {
107+
delete params[key];
108+
params[prop.codegenName] = value;
109+
}
110+
}
111+
}
112+
}
113+
return params;
114+
}
115+
63116
async function main() {
64117
let count = 0;
65118
let errors = 0;

docs/examples/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
"@elastic/request-converter": "^9.1.1",
77
"@redocly/cli": "^1.34.3",
88
"@stoplight/spectral-cli": "^6.14.2",
9-
"yaml": "^2.8.0"
9+
"yaml": "^2.8.0",
10+
"java-caller": "^4.1.1"
1011
}
1112
}

0 commit comments

Comments
 (0)