Skip to main content

openapi_nexus/generators/java/okhttp/
runtime.rs

1use crate::codegen::traits::file_writer::FileInfo;
2
3const API_CLIENT_JAVA: &str = include_str!("runtime/ApiClient.java.txt");
4const API_EXCEPTION_JAVA: &str = include_str!("runtime/ApiException.java.txt");
5const AUTHENTICATOR_JAVA: &str = include_str!("runtime/Auth.java.txt");
6const BEARER_AUTH_JAVA: &str = include_str!("runtime/BearerAuth.java.txt");
7const API_KEY_AUTH_JAVA: &str = include_str!("runtime/ApiKeyAuth.java.txt");
8const API_KEY_LOCATION_JAVA: &str = include_str!("runtime/ApiKeyLocation.java.txt");
9
10pub fn runtime_files(header: &str, package_name: &str) -> Vec<FileInfo> {
11    let runtime_package = format!("{package_name}.runtime");
12    vec![
13        FileInfo::runtime(
14            "ApiClient.java".to_string(),
15            repackage(header, API_CLIENT_JAVA, &runtime_package),
16        ),
17        FileInfo::runtime(
18            "ApiException.java".to_string(),
19            repackage(header, API_EXCEPTION_JAVA, &runtime_package),
20        ),
21        FileInfo::runtime(
22            "Authenticator.java".to_string(),
23            repackage(header, AUTHENTICATOR_JAVA, &runtime_package),
24        ),
25        FileInfo::runtime(
26            "BearerAuth.java".to_string(),
27            repackage(header, BEARER_AUTH_JAVA, &runtime_package),
28        ),
29        FileInfo::runtime(
30            "ApiKeyAuth.java".to_string(),
31            repackage(header, API_KEY_AUTH_JAVA, &runtime_package),
32        ),
33        FileInfo::runtime(
34            "ApiKeyLocation.java".to_string(),
35            repackage(header, API_KEY_LOCATION_JAVA, &runtime_package),
36        ),
37    ]
38}
39
40fn repackage(header: &str, body: &str, runtime_package: &str) -> String {
41    let patched = body.replacen(
42        "package runtime;",
43        &format!("package {runtime_package};"),
44        1,
45    );
46    let mut out = String::with_capacity(header.len() + patched.len());
47    out.push_str(header);
48    out.push_str(&patched);
49    out
50}