FINERACT-1724: Fixed fineract-client generation to handle non-required request bodies in APIs
This commit is contained in:
committed by
Arnold Gálovics
parent
47108e0ac9
commit
0c63bf2f27
@@ -110,15 +110,20 @@ task buildAsciidoc(type: org.openapitools.generator.gradle.plugin.tasks.Generate
|
|||||||
dependsOn(':fineract-provider:resolve')
|
dependsOn(':fineract-provider:resolve')
|
||||||
}
|
}
|
||||||
|
|
||||||
task cleanupJodaImports() {
|
task cleanupGeneratedJavaFiles() {
|
||||||
// This is a temporary step to get rid of joda imports in the generated code
|
|
||||||
// At this point it's unknown why it's even generated, probably it's a bug in the generator
|
|
||||||
doLast {
|
doLast {
|
||||||
copy {
|
copy {
|
||||||
from "$buildDir/generated/temp-java".toString()
|
from "$buildDir/generated/temp-java".toString()
|
||||||
into "$buildDir/generated/java".toString()
|
into "$buildDir/generated/java".toString()
|
||||||
filter { line ->
|
filter { line ->
|
||||||
line.replaceAll("import org\\.joda\\.time\\.\\*;", "")
|
line
|
||||||
|
// This is a temporary step to get rid of joda imports in the generated code
|
||||||
|
// At this point it's unknown why it's even generated, probably it's a bug in the generator
|
||||||
|
.replaceAll("import org\\.joda\\.time\\.\\*;", "")
|
||||||
|
// The 3 lines below handles the cases when a request body is not required
|
||||||
|
.replaceAll(", \\)", ")")
|
||||||
|
.replaceAll(", , @HeaderMap", ", @HeaderMap")
|
||||||
|
.replaceAll("\\(, ", "(")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -127,7 +132,7 @@ task cleanupJodaImports() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TODO: @vidakovic we could provide even more client libs in different languages (Go, Ruby, Swift etc.)
|
// TODO: @vidakovic we could provide even more client libs in different languages (Go, Ruby, Swift etc.)
|
||||||
compileJava.dependsOn(buildJavaSdk, buildTypescriptAngularSdk, buildAsciidoc, cleanupJodaImports, licenseFormatMain, spotlessMiscApply)
|
compileJava.dependsOn(buildJavaSdk, buildTypescriptAngularSdk, buildAsciidoc, cleanupGeneratedJavaFiles, licenseFormatMain, spotlessMiscApply)
|
||||||
|
|
||||||
java {
|
java {
|
||||||
// keep this at Java 8, not 17; see https://issues.apache.org/jira/browse/FINERACT-1214
|
// keep this at Java 8, not 17; see https://issues.apache.org/jira/browse/FINERACT-1214
|
||||||
|
|||||||
@@ -3,17 +3,17 @@ package {{package}};
|
|||||||
import {{invokerPackage}}.CollectionFormats.*;
|
import {{invokerPackage}}.CollectionFormats.*;
|
||||||
|
|
||||||
{{#useRxJava2}}
|
{{#useRxJava2}}
|
||||||
import io.reactivex.Observable;
|
import io.reactivex.Observable;
|
||||||
{{/useRxJava2}}
|
{{/useRxJava2}}
|
||||||
{{#useRxJava3}}
|
{{#useRxJava3}}
|
||||||
import io.reactivex.rxjava3.core.Observable;
|
import io.reactivex.rxjava3.core.Observable;
|
||||||
{{/useRxJava3}}
|
{{/useRxJava3}}
|
||||||
{{^returnType}}
|
{{^returnType}}
|
||||||
{{#useRxJava2}}
|
{{#useRxJava2}}
|
||||||
import io.reactivex.Completable;
|
import io.reactivex.Completable;
|
||||||
{{/useRxJava2}}
|
{{/useRxJava2}}
|
||||||
{{#useRxJava3}}
|
{{#useRxJava3}}
|
||||||
import io.reactivex.rxjava3.core.Completable;
|
import io.reactivex.rxjava3.core.Completable;
|
||||||
{{/useRxJava3}}
|
{{/useRxJava3}}
|
||||||
{{/returnType}}
|
{{/returnType}}
|
||||||
{{#doNotUseRx}}
|
{{#doNotUseRx}}
|
||||||
@@ -29,92 +29,174 @@ import okhttp3.MultipartBody;
|
|||||||
{{/imports}}
|
{{/imports}}
|
||||||
|
|
||||||
{{^fullJavaUtil}}
|
{{^fullJavaUtil}}
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
{{/fullJavaUtil}}
|
{{/fullJavaUtil}}
|
||||||
|
|
||||||
{{#operations}}
|
{{#operations}}
|
||||||
public interface {{classname}} {
|
public interface {{classname}} {
|
||||||
{{#operation}}
|
{{#operation}}
|
||||||
|
/**
|
||||||
|
* {{summary}}
|
||||||
|
* {{notes}}
|
||||||
|
{{#allParams}}
|
||||||
|
* @param {{paramName}} {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{#defaultValue}}, default to {{.}}{{/defaultValue}}){{/required}}
|
||||||
|
{{/allParams}}
|
||||||
|
* @return {{^doNotUseRx}}{{#useRxJava2}}{{#returnType}}Observable<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{returnType}}{{/isResponseFile}}>{{/returnType}}{{^returnType}}Completable{{/returnType}}{{/useRxJava2}}{{#useRxJava3}}{{#returnType}}Observable<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{returnType}}{{/isResponseFile}}>{{/returnType}}{{^returnType}}Completable{{/returnType}}{{/useRxJava3}}{{/doNotUseRx}}{{#doNotUseRx}}Call<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{returnType}}{{^returnType}}Void{{/returnType}}{{/isResponseFile}}>{{/doNotUseRx}}
|
||||||
|
{{#isDeprecated}}
|
||||||
|
* @deprecated
|
||||||
|
{{/isDeprecated}}
|
||||||
|
{{#externalDocs}}
|
||||||
|
* {{description}}
|
||||||
|
* @see <a href="{{url}}">{{summary}} Documentation</a>
|
||||||
|
{{/externalDocs}}
|
||||||
|
*/
|
||||||
|
{{#isDeprecated}}
|
||||||
|
@Deprecated
|
||||||
|
{{/isDeprecated}}
|
||||||
|
{{#formParams}}
|
||||||
|
{{#-first}}
|
||||||
|
{{#isMultipart}}@retrofit2.http.Multipart{{/isMultipart}}{{^isMultipart}}@retrofit2.http.FormUrlEncoded{{/isMultipart}}
|
||||||
|
{{/-first}}
|
||||||
|
{{/formParams}}
|
||||||
|
{{^formParams}}
|
||||||
|
{{#prioritizedContentTypes}}
|
||||||
|
{{#-first}}
|
||||||
|
@Headers({
|
||||||
|
"Content-Type:{{{mediaType}}}"
|
||||||
|
})
|
||||||
|
{{/-first}}
|
||||||
|
{{/prioritizedContentTypes}}
|
||||||
|
{{/formParams}}
|
||||||
|
@{{httpMethod}}("{{{path}}}")
|
||||||
|
{{^doNotUseRx}}{{#useRxJava2}}{{#returnType}}Observable<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{{returnType}}}{{/isResponseFile}}>{{/returnType}}{{^returnType}}Completable{{/returnType}}{{/useRxJava2}}{{#useRxJava3}}{{#returnType}}Observable<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{{returnType}}}{{/isResponseFile}}>{{/returnType}}{{^returnType}}Completable{{/returnType}}{{/useRxJava3}}{{/doNotUseRx}}{{#doNotUseRx}}Call<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{{returnType}}}{{^returnType}}Void{{/returnType}}{{/isResponseFile}}>{{/doNotUseRx}} {{operationId}}({{^allParams}});{{/allParams}}{{#allParams}}{{>libraries/retrofit2/queryParams}}{{>libraries/retrofit2/pathParams}}{{>libraries/retrofit2/headerParams}}{{#isBodyParam}}@retrofit2.http.Body {{{dataType}}} {{paramName}}{{/isBodyParam}}{{>libraries/retrofit2/formParams}}{{^-last}}, {{/-last}}{{#-last}});{{/-last}}{{/allParams}}
|
||||||
|
|
||||||
|
{{/operation}}
|
||||||
|
|
||||||
|
{{#operation}}
|
||||||
|
{{#allParams}}
|
||||||
|
{{#isBodyParam}}
|
||||||
|
{{^required}}
|
||||||
/**
|
/**
|
||||||
* {{summary}}
|
* {{summary}}
|
||||||
* {{notes}}
|
* {{notes}}
|
||||||
{{#allParams}}
|
{{#allParams}}
|
||||||
* @param {{paramName}} {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{#defaultValue}}, default to {{.}}{{/defaultValue}}){{/required}}
|
* @param {{paramName}} {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{#defaultValue}}, default to {{.}}{{/defaultValue}}){{/required}}
|
||||||
{{/allParams}}
|
{{/allParams}}
|
||||||
* @return {{^doNotUseRx}}{{#useRxJava2}}{{#returnType}}Observable<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{returnType}}{{/isResponseFile}}>{{/returnType}}{{^returnType}}Completable{{/returnType}}{{/useRxJava2}}{{#useRxJava3}}{{#returnType}}Observable<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{returnType}}{{/isResponseFile}}>{{/returnType}}{{^returnType}}Completable{{/returnType}}{{/useRxJava3}}{{/doNotUseRx}}{{#doNotUseRx}}Call<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{returnType}}{{^returnType}}Void{{/returnType}}{{/isResponseFile}}>{{/doNotUseRx}}
|
* @return {{^doNotUseRx}}{{#useRxJava2}}{{#returnType}}Observable<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{returnType}}{{/isResponseFile}}>{{/returnType}}{{^returnType}}Completable{{/returnType}}{{/useRxJava2}}{{#useRxJava3}}{{#returnType}}Observable<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{returnType}}{{/isResponseFile}}>{{/returnType}}{{^returnType}}Completable{{/returnType}}{{/useRxJava3}}{{/doNotUseRx}}{{#doNotUseRx}}Call<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{returnType}}{{^returnType}}Void{{/returnType}}{{/isResponseFile}}>{{/doNotUseRx}}
|
||||||
{{#isDeprecated}}
|
{{#isDeprecated}}
|
||||||
* @deprecated
|
* @deprecated
|
||||||
{{/isDeprecated}}
|
{{/isDeprecated}}
|
||||||
{{#externalDocs}}
|
{{#externalDocs}}
|
||||||
* {{description}}
|
* {{description}}
|
||||||
* @see <a href="{{url}}">{{summary}} Documentation</a>
|
* @see <a href="{{url}}">{{summary}} Documentation</a>
|
||||||
{{/externalDocs}}
|
{{/externalDocs}}
|
||||||
*/
|
*/
|
||||||
{{#isDeprecated}}
|
{{#isDeprecated}}
|
||||||
@Deprecated
|
@Deprecated
|
||||||
{{/isDeprecated}}
|
{{/isDeprecated}}
|
||||||
{{#formParams}}
|
{{#formParams}}
|
||||||
|
{{#-first}}
|
||||||
|
{{#isMultipart}}@retrofit2.http.Multipart{{/isMultipart}}{{^isMultipart}}@retrofit2.http.FormUrlEncoded{{/isMultipart}}
|
||||||
|
{{/-first}}
|
||||||
|
{{/formParams}}
|
||||||
|
{{^formParams}}
|
||||||
|
{{#prioritizedContentTypes}}
|
||||||
{{#-first}}
|
{{#-first}}
|
||||||
{{#isMultipart}}@retrofit2.http.Multipart{{/isMultipart}}{{^isMultipart}}@retrofit2.http.FormUrlEncoded{{/isMultipart}}
|
|
||||||
{{/-first}}
|
|
||||||
{{/formParams}}
|
|
||||||
{{^formParams}}
|
|
||||||
{{#prioritizedContentTypes}}
|
|
||||||
{{#-first}}
|
|
||||||
@Headers({
|
@Headers({
|
||||||
"Content-Type:{{{mediaType}}}"
|
"Content-Type:{{{mediaType}}}"
|
||||||
})
|
})
|
||||||
{{/-first}}
|
|
||||||
{{/prioritizedContentTypes}}
|
|
||||||
{{/formParams}}
|
|
||||||
@{{httpMethod}}("{{{path}}}")
|
|
||||||
{{^doNotUseRx}}{{#useRxJava2}}{{#returnType}}Observable<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{{returnType}}}{{/isResponseFile}}>{{/returnType}}{{^returnType}}Completable{{/returnType}}{{/useRxJava2}}{{#useRxJava3}}{{#returnType}}Observable<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{{returnType}}}{{/isResponseFile}}>{{/returnType}}{{^returnType}}Completable{{/returnType}}{{/useRxJava3}}{{/doNotUseRx}}{{#doNotUseRx}}Call<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{{returnType}}}{{^returnType}}Void{{/returnType}}{{/isResponseFile}}>{{/doNotUseRx}} {{operationId}}({{^allParams}});{{/allParams}}
|
|
||||||
{{#allParams}}{{>libraries/retrofit2/queryParams}}{{>libraries/retrofit2/pathParams}}{{>libraries/retrofit2/headerParams}}{{>libraries/retrofit2/bodyParams}}{{>libraries/retrofit2/formParams}}{{^-last}}, {{/-last}}{{#-last}}
|
|
||||||
);{{/-last}}{{/allParams}}
|
|
||||||
|
|
||||||
{{/operation}}
|
|
||||||
|
|
||||||
{{#operation}}
|
|
||||||
/**
|
|
||||||
* {{summary}}
|
|
||||||
* {{notes}}
|
|
||||||
{{#allParams}}
|
|
||||||
* @param {{paramName}} {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{#defaultValue}}, default to {{.}}{{/defaultValue}}){{/required}}
|
|
||||||
{{/allParams}}
|
|
||||||
* @return {{^doNotUseRx}}{{#useRxJava2}}{{#returnType}}Observable<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{returnType}}{{/isResponseFile}}>{{/returnType}}{{^returnType}}Completable{{/returnType}}{{/useRxJava2}}{{#useRxJava3}}{{#returnType}}Observable<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{returnType}}{{/isResponseFile}}>{{/returnType}}{{^returnType}}Completable{{/returnType}}{{/useRxJava3}}{{/doNotUseRx}}{{#doNotUseRx}}Call<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{returnType}}{{^returnType}}Void{{/returnType}}{{/isResponseFile}}>{{/doNotUseRx}}
|
|
||||||
{{#isDeprecated}}
|
|
||||||
* @deprecated
|
|
||||||
{{/isDeprecated}}
|
|
||||||
{{#externalDocs}}
|
|
||||||
* {{description}}
|
|
||||||
* @see <a href="{{url}}">{{summary}} Documentation</a>
|
|
||||||
{{/externalDocs}}
|
|
||||||
*/
|
|
||||||
{{#isDeprecated}}
|
|
||||||
@Deprecated
|
|
||||||
{{/isDeprecated}}
|
|
||||||
{{#formParams}}
|
|
||||||
{{#-first}}
|
|
||||||
{{#isMultipart}}@retrofit2.http.Multipart{{/isMultipart}}{{^isMultipart}}@retrofit2.http.FormUrlEncoded{{/isMultipart}}
|
|
||||||
{{/-first}}
|
{{/-first}}
|
||||||
{{/formParams}}
|
{{/prioritizedContentTypes}}
|
||||||
{{^formParams}}
|
{{/formParams}}
|
||||||
{{#prioritizedContentTypes}}
|
@{{httpMethod}}("{{{path}}}")
|
||||||
{{#-first}}
|
{{^doNotUseRx}}{{#useRxJava2}}{{#returnType}}Observable<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{{returnType}}}{{/isResponseFile}}>{{/returnType}}{{^returnType}}Completable{{/returnType}}{{/useRxJava2}}{{#useRxJava3}}{{#returnType}}Observable<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{{returnType}}}{{/isResponseFile}}>{{/returnType}}{{^returnType}}Completable{{/returnType}}{{/useRxJava3}}{{/doNotUseRx}}{{#doNotUseRx}}Call<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{{returnType}}}{{^returnType}}Void{{/returnType}}{{/isResponseFile}}>{{/doNotUseRx}} {{operationId}}({{^allParams}});{{/allParams}}{{#allParams}}{{>libraries/retrofit2/queryParams}}{{>libraries/retrofit2/pathParams}}{{>libraries/retrofit2/headerParams}}{{>libraries/retrofit2/formParams}}{{^-last}}, {{/-last}}{{#-last}});{{/-last}}{{/allParams}}
|
||||||
@Headers({
|
{{/required}}
|
||||||
"Content-Type:{{{mediaType}}}"
|
{{/isBodyParam}}
|
||||||
})
|
{{/allParams}}
|
||||||
{{/-first}}
|
{{/operation}}
|
||||||
{{/prioritizedContentTypes}}
|
|
||||||
{{/formParams}}
|
|
||||||
@{{httpMethod}}("{{{path}}}")
|
|
||||||
{{^doNotUseRx}}{{#useRxJava2}}{{#returnType}}Observable<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{{returnType}}}{{/isResponseFile}}>{{/returnType}}{{^returnType}}Completable{{/returnType}}{{/useRxJava2}}{{#useRxJava3}}{{#returnType}}Observable<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{{returnType}}}{{/isResponseFile}}>{{/returnType}}{{^returnType}}Completable{{/returnType}}{{/useRxJava3}}{{/doNotUseRx}}{{#doNotUseRx}}Call<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{{returnType}}}{{^returnType}}Void{{/returnType}}{{/isResponseFile}}>{{/doNotUseRx}} {{operationId}}({{^allParams}}@HeaderMap Map<String, String> headers);{{/allParams}}
|
|
||||||
{{#allParams}}{{>libraries/retrofit2/queryParams}}{{>libraries/retrofit2/pathParams}}{{>libraries/retrofit2/headerParams}}{{>libraries/retrofit2/bodyParams}}{{>libraries/retrofit2/formParams}}{{^-last}}, {{/-last}}{{#-last}}
|
|
||||||
, @HeaderMap Map<String, String> headers);{{/-last}}{{/allParams}}
|
|
||||||
|
|
||||||
{{/operation}}
|
{{#operation}}
|
||||||
}
|
/**
|
||||||
|
* {{summary}}
|
||||||
|
* {{notes}}
|
||||||
|
{{#allParams}}
|
||||||
|
* @param {{paramName}} {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{#defaultValue}}, default to {{.}}{{/defaultValue}}){{/required}}
|
||||||
|
{{/allParams}}
|
||||||
|
* @return {{^doNotUseRx}}{{#useRxJava2}}{{#returnType}}Observable<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{returnType}}{{/isResponseFile}}>{{/returnType}}{{^returnType}}Completable{{/returnType}}{{/useRxJava2}}{{#useRxJava3}}{{#returnType}}Observable<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{returnType}}{{/isResponseFile}}>{{/returnType}}{{^returnType}}Completable{{/returnType}}{{/useRxJava3}}{{/doNotUseRx}}{{#doNotUseRx}}Call<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{returnType}}{{^returnType}}Void{{/returnType}}{{/isResponseFile}}>{{/doNotUseRx}}
|
||||||
|
{{#isDeprecated}}
|
||||||
|
* @deprecated
|
||||||
|
{{/isDeprecated}}
|
||||||
|
{{#externalDocs}}
|
||||||
|
* {{description}}
|
||||||
|
* @see <a href="{{url}}">{{summary}} Documentation</a>
|
||||||
|
{{/externalDocs}}
|
||||||
|
*/
|
||||||
|
{{#isDeprecated}}
|
||||||
|
@Deprecated
|
||||||
|
{{/isDeprecated}}
|
||||||
|
{{#formParams}}
|
||||||
|
{{#-first}}
|
||||||
|
{{#isMultipart}}@retrofit2.http.Multipart{{/isMultipart}}{{^isMultipart}}@retrofit2.http.FormUrlEncoded{{/isMultipart}}
|
||||||
|
{{/-first}}
|
||||||
|
{{/formParams}}
|
||||||
|
{{^formParams}}
|
||||||
|
{{#prioritizedContentTypes}}
|
||||||
|
{{#-first}}
|
||||||
|
@Headers({
|
||||||
|
"Content-Type:{{{mediaType}}}"
|
||||||
|
})
|
||||||
|
{{/-first}}
|
||||||
|
{{/prioritizedContentTypes}}
|
||||||
|
{{/formParams}}
|
||||||
|
@{{httpMethod}}("{{{path}}}")
|
||||||
|
{{^doNotUseRx}}{{#useRxJava2}}{{#returnType}}Observable<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{{returnType}}}{{/isResponseFile}}>{{/returnType}}{{^returnType}}Completable{{/returnType}}{{/useRxJava2}}{{#useRxJava3}}{{#returnType}}Observable<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{{returnType}}}{{/isResponseFile}}>{{/returnType}}{{^returnType}}Completable{{/returnType}}{{/useRxJava3}}{{/doNotUseRx}}{{#doNotUseRx}}Call<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{{returnType}}}{{^returnType}}Void{{/returnType}}{{/isResponseFile}}>{{/doNotUseRx}} {{operationId}}({{^allParams}}@HeaderMap Map<String, String> headers);{{/allParams}}{{#allParams}}{{>libraries/retrofit2/queryParams}}{{>libraries/retrofit2/pathParams}}{{>libraries/retrofit2/headerParams}}{{#isBodyParam}}@retrofit2.http.Body {{{dataType}}} {{paramName}}{{/isBodyParam}}{{>libraries/retrofit2/formParams}}{{^-last}}, {{/-last}}{{#-last}}{{^first}}, {{/first}}@HeaderMap Map<String, String> headers);{{/-last}}{{/allParams}}
|
||||||
|
|
||||||
|
{{/operation}}
|
||||||
|
|
||||||
|
{{#operation}}
|
||||||
|
{{#allParams}}
|
||||||
|
{{#isBodyParam}}
|
||||||
|
{{^required}}
|
||||||
|
/**
|
||||||
|
* {{summary}}
|
||||||
|
* {{notes}}
|
||||||
|
{{#allParams}}
|
||||||
|
* @param {{paramName}} {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{#defaultValue}}, default to {{.}}{{/defaultValue}}){{/required}}
|
||||||
|
{{/allParams}}
|
||||||
|
* @return {{^doNotUseRx}}{{#useRxJava2}}{{#returnType}}Observable<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{returnType}}{{/isResponseFile}}>{{/returnType}}{{^returnType}}Completable{{/returnType}}{{/useRxJava2}}{{#useRxJava3}}{{#returnType}}Observable<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{returnType}}{{/isResponseFile}}>{{/returnType}}{{^returnType}}Completable{{/returnType}}{{/useRxJava3}}{{/doNotUseRx}}{{#doNotUseRx}}Call<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{returnType}}{{^returnType}}Void{{/returnType}}{{/isResponseFile}}>{{/doNotUseRx}}
|
||||||
|
{{#isDeprecated}}
|
||||||
|
* @deprecated
|
||||||
|
{{/isDeprecated}}
|
||||||
|
{{#externalDocs}}
|
||||||
|
* {{description}}
|
||||||
|
* @see <a href="{{url}}">{{summary}} Documentation</a>
|
||||||
|
{{/externalDocs}}
|
||||||
|
*/
|
||||||
|
{{#isDeprecated}}
|
||||||
|
@Deprecated
|
||||||
|
{{/isDeprecated}}
|
||||||
|
{{#formParams}}
|
||||||
|
{{#-first}}
|
||||||
|
{{#isMultipart}}@retrofit2.http.Multipart{{/isMultipart}}{{^isMultipart}}@retrofit2.http.FormUrlEncoded{{/isMultipart}}
|
||||||
|
{{/-first}}
|
||||||
|
{{/formParams}}
|
||||||
|
{{^formParams}}
|
||||||
|
{{#prioritizedContentTypes}}
|
||||||
|
{{#-first}}
|
||||||
|
@Headers({
|
||||||
|
"Content-Type:{{{mediaType}}}"
|
||||||
|
})
|
||||||
|
{{/-first}}
|
||||||
|
{{/prioritizedContentTypes}}
|
||||||
|
{{/formParams}}
|
||||||
|
@{{httpMethod}}("{{{path}}}")
|
||||||
|
{{^doNotUseRx}}{{#useRxJava2}}{{#returnType}}Observable<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{{returnType}}}{{/isResponseFile}}>{{/returnType}}{{^returnType}}Completable{{/returnType}}{{/useRxJava2}}{{#useRxJava3}}{{#returnType}}Observable<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{{returnType}}}{{/isResponseFile}}>{{/returnType}}{{^returnType}}Completable{{/returnType}}{{/useRxJava3}}{{/doNotUseRx}}{{#doNotUseRx}}Call<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{{returnType}}}{{^returnType}}Void{{/returnType}}{{/isResponseFile}}>{{/doNotUseRx}} {{operationId}}({{^allParams}}@HeaderMap Map<String, String> headers);{{/allParams}}{{#allParams}}{{>libraries/retrofit2/queryParams}}{{>libraries/retrofit2/pathParams}}{{>libraries/retrofit2/headerParams}}{{>libraries/retrofit2/formParams}}{{^-last}}, {{/-last}}{{#-last}}{{^first}}, {{/first}}@HeaderMap Map<String, String> headers);{{/-last}}{{/allParams}}
|
||||||
|
{{/required}}
|
||||||
|
{{/isBodyParam}}
|
||||||
|
{{/allParams}}
|
||||||
|
{{/operation}}
|
||||||
|
}
|
||||||
{{/operations}}
|
{{/operations}}
|
||||||
+4
-21
@@ -42,6 +42,7 @@ import javax.ws.rs.QueryParam;
|
|||||||
import javax.ws.rs.core.Context;
|
import javax.ws.rs.core.Context;
|
||||||
import javax.ws.rs.core.MediaType;
|
import javax.ws.rs.core.MediaType;
|
||||||
import javax.ws.rs.core.UriInfo;
|
import javax.ws.rs.core.UriInfo;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.apache.fineract.commands.domain.CommandWrapper;
|
import org.apache.fineract.commands.domain.CommandWrapper;
|
||||||
import org.apache.fineract.commands.service.CommandWrapperBuilder;
|
import org.apache.fineract.commands.service.CommandWrapperBuilder;
|
||||||
import org.apache.fineract.commands.service.PortfolioCommandSourceWritePlatformService;
|
import org.apache.fineract.commands.service.PortfolioCommandSourceWritePlatformService;
|
||||||
@@ -58,14 +59,12 @@ import org.glassfish.jersey.media.multipart.FormDataContentDisposition;
|
|||||||
import org.glassfish.jersey.media.multipart.FormDataParam;
|
import org.glassfish.jersey.media.multipart.FormDataParam;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.context.annotation.Scope;
|
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
|
||||||
@Path("/creditBureauIntegration")
|
@Path("/creditBureauIntegration")
|
||||||
@Component
|
@Component
|
||||||
@Scope("singleton")
|
@RequiredArgsConstructor
|
||||||
public class CreditBureauIntegrationAPI {
|
public class CreditBureauIntegrationAPI {
|
||||||
|
|
||||||
private static final Set<String> RESPONSE_DATA_PARAMETERS = new HashSet<>(Arrays.asList("id", "creditBureauId", "nrc", "creditReport"));
|
private static final Set<String> RESPONSE_DATA_PARAMETERS = new HashSet<>(Arrays.asList("id", "creditBureauId", "nrc", "creditReport"));
|
||||||
@@ -79,28 +78,12 @@ public class CreditBureauIntegrationAPI {
|
|||||||
private final DefaultToApiJsonSerializer<CreditReportData> toApiJsonSerializer;
|
private final DefaultToApiJsonSerializer<CreditReportData> toApiJsonSerializer;
|
||||||
private static final Logger LOG = LoggerFactory.getLogger(CreditBureauIntegrationAPI.class);
|
private static final Logger LOG = LoggerFactory.getLogger(CreditBureauIntegrationAPI.class);
|
||||||
|
|
||||||
@Autowired
|
|
||||||
public CreditBureauIntegrationAPI(final PlatformSecurityContext context,
|
|
||||||
final DefaultToApiJsonSerializer<CreditReportData> toCreditReportApiJsonSerializer,
|
|
||||||
final PortfolioCommandSourceWritePlatformService commandsSourceWritePlatformService,
|
|
||||||
final ApiRequestParameterHelper apiRequestParameterHelper,
|
|
||||||
final CreditReportWritePlatformService creditReportWritePlatformService,
|
|
||||||
final CreditReportReadPlatformService creditReportReadPlatformService,
|
|
||||||
final DefaultToApiJsonSerializer<CreditReportData> toApiJsonSerializer) {
|
|
||||||
this.context = context;
|
|
||||||
this.toCreditReportApiJsonSerializer = toCreditReportApiJsonSerializer;
|
|
||||||
this.commandsSourceWritePlatformService = commandsSourceWritePlatformService;
|
|
||||||
this.apiRequestParameterHelper = apiRequestParameterHelper;
|
|
||||||
this.creditReportWritePlatformService = creditReportWritePlatformService;
|
|
||||||
this.creditReportReadPlatformService = creditReportReadPlatformService;
|
|
||||||
this.toApiJsonSerializer = toApiJsonSerializer;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@POST
|
@POST
|
||||||
@Path("creditReport")
|
@Path("creditReport")
|
||||||
@Consumes({ MediaType.APPLICATION_JSON })
|
@Consumes({ MediaType.APPLICATION_JSON })
|
||||||
@Produces({ MediaType.APPLICATION_JSON })
|
@Produces({ MediaType.APPLICATION_JSON })
|
||||||
|
@RequestBody(description = "Fetch credit report", content = {
|
||||||
|
@Content(mediaType = MediaType.APPLICATION_JSON, schema = @Schema(implementation = Object.class)) })
|
||||||
public String fetchCreditReport(@Context final UriInfo uriInfo, @RequestParam("params") final Map<String, Object> params) {
|
public String fetchCreditReport(@Context final UriInfo uriInfo, @RequestParam("params") final Map<String, Object> params) {
|
||||||
|
|
||||||
Gson gson = new Gson();
|
Gson gson = new Gson();
|
||||||
|
|||||||
Reference in New Issue
Block a user