Skip to content

Commit

Permalink
Improve online gen resolution of host for the download link (OpenAPIT…
Browse files Browse the repository at this point in the history
  • Loading branch information
cbornet authored and wing328 committed Nov 30, 2018
1 parent 3a8b99b commit a5fae1a
Showing 1 changed file with 18 additions and 36 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,11 @@

import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils;
import org.openapitools.codegen.online.api.GenApiDelegate;
import org.openapitools.codegen.CliOption;
import org.openapitools.codegen.CodegenConfig;
import org.openapitools.codegen.CodegenConfigLoader;
import org.openapitools.codegen.CodegenType;
import org.openapitools.codegen.online.api.GenApiDelegate;
import org.openapitools.codegen.online.model.Generated;
import org.openapitools.codegen.online.model.GeneratorInput;
import org.openapitools.codegen.online.model.ResponseCode;
Expand All @@ -36,8 +36,9 @@
import org.springframework.stereotype.Service;
import org.springframework.web.context.request.NativeWebRequest;
import org.springframework.web.server.ResponseStatusException;
import org.springframework.web.servlet.support.ServletUriComponentsBuilder;
import org.springframework.web.util.UriComponentsBuilder;

import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
Expand Down Expand Up @@ -114,33 +115,7 @@ public ResponseEntity<Resource> downloadFile(String fileId) {
@Override
public ResponseEntity<ResponseCode> generateClient(String language, GeneratorInput generatorInput) {
String filename = Generator.generateClient(language, generatorInput);
String host = System.getenv("GENERATOR_HOST");
HttpServletRequest servletRequest = request.getNativeRequest(HttpServletRequest.class);

if (StringUtils.isBlank(host)) {
String scheme = servletRequest.getHeader("X-SSL");
String port = "";
if ("1".equals(scheme)) {
scheme = "https";
} else {
scheme = servletRequest.getScheme();
port = ":" + servletRequest.getServerPort();
}
host = scheme + "://" + servletRequest.getServerName() + port;
}

if (filename != null) {
String code = String.valueOf(UUID.randomUUID().toString());
Generated g = new Generated();
g.setFilename(filename);
g.setFriendlyName(language + "-client");
fileMap.put(code, g);
System.out.println(code + ", " + filename);
String link = host + "/api/gen/download/" + code;
return ResponseEntity.ok().body(new ResponseCode(code, link));
} else {
return ResponseEntity.status(500).build();
}
return getResponse(filename, language + "-client");
}

@Override
Expand Down Expand Up @@ -183,20 +158,27 @@ public ResponseEntity<ResponseCode> generateServerForLanguage(String framework,
String filename = Generator.generateServer(framework, generatorInput);
System.out.println("generated name: " + filename);

HttpServletRequest servletRequest = request.getNativeRequest(HttpServletRequest.class);
return getResponse(filename, framework + "-server");
}

String host =
servletRequest.getScheme() + "://" + servletRequest.getServerName() + ":"
+ servletRequest.getServerPort();
private ResponseEntity<ResponseCode> getResponse(String filename, String friendlyName) {
String host = System.getenv("GENERATOR_HOST");

UriComponentsBuilder uriBuilder;
if (!StringUtils.isBlank(host)) {
uriBuilder = UriComponentsBuilder.fromUriString(host);
} else {
uriBuilder = ServletUriComponentsBuilder.fromCurrentContextPath();
}

if (filename != null) {
String code = String.valueOf(UUID.randomUUID().toString());
String code = UUID.randomUUID().toString();
Generated g = new Generated();
g.setFilename(filename);
g.setFriendlyName(framework + "-server");
g.setFriendlyName(friendlyName);
fileMap.put(code, g);
System.out.println(code + ", " + filename);
String link = host + "/api/gen/download/" + code;
String link = uriBuilder.path("/api/gen/download/").path(code).toUriString();
return ResponseEntity.ok().body(new ResponseCode(code, link));
} else {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build();
Expand Down

0 comments on commit a5fae1a

Please sign in to comment.