Skip to content

Commit c832889

Browse files
committed
added slf4j, updated server gen logic
1 parent 39487d9 commit c832889

File tree

1 file changed

+56
-2
lines changed
  • modules/swagger-generator/src/main/java/com/wordnik/swagger/generator/online

1 file changed

+56
-2
lines changed

modules/swagger-generator/src/main/java/com/wordnik/swagger/generator/online/Generator.java

Lines changed: 56 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,18 @@
1111

1212
import com.fasterxml.jackson.databind.JsonNode;
1313

14+
import org.slf4j.Logger;
15+
import org.slf4j.LoggerFactory;
16+
1417
import java.io.File;
1518
import java.util.List;
1619
import java.util.ArrayList;
1720

1821
public class Generator {
22+
static Logger LOGGER = LoggerFactory.getLogger(Generator.class);
23+
1924
public static String generateClient(String language, GeneratorInput opts) throws ApiException {
25+
LOGGER.debug("generate client for " + language);
2026
if(opts == null) {
2127
throw new BadRequestException(400, "No options were supplied");
2228
}
@@ -67,8 +73,56 @@ public static String generateClient(String language, GeneratorInput opts) throws
6773
return outputFilename;
6874
}
6975

70-
public static String generateServer(String language, GeneratorInput opts) {
71-
return "";
76+
public static String generateServer(String language, GeneratorInput opts) throws ApiException {
77+
LOGGER.debug("generate server for " + language);
78+
if(opts == null) {
79+
throw new BadRequestException(400, "No options were supplied");
80+
}
81+
JsonNode node = opts.getSpec();
82+
if(node == null) {
83+
throw new BadRequestException(400, "No swagger specification was supplied");
84+
}
85+
Swagger swagger = new SwaggerParser().read(node);
86+
if(swagger == null) {
87+
throw new BadRequestException(400, "The swagger specification supplied was not valid");
88+
}
89+
90+
ClientOptInput clientOptInput = new ClientOptInput();
91+
ClientOpts clientOpts = new ClientOpts();
92+
String outputFolder = getTmpFolder().getAbsolutePath() + File.separator + language + "-server";
93+
String outputFilename = outputFolder + "-bundle.zip";
94+
95+
clientOptInput
96+
.opts(clientOpts)
97+
.swagger(swagger);
98+
99+
CodegenConfig codegenConfig = Codegen.getConfig(language);
100+
if(codegenConfig == null) {
101+
throw new BadRequestException(400, "Unsupported target " + language + " supplied");
102+
}
103+
104+
codegenConfig.setOutputDir(outputFolder);
105+
106+
Json.prettyPrint(clientOpts);
107+
108+
clientOptInput.setConfig(codegenConfig);
109+
110+
try{
111+
List<File> files = new Codegen().opts(clientOptInput).generate();
112+
if(files.size() > 0) {
113+
List<File> filesToAdd = new ArrayList<File>();
114+
filesToAdd.add(new File(outputFolder));
115+
ZipUtil zip = new ZipUtil();
116+
zip.compressFiles(filesToAdd, outputFilename);
117+
}
118+
else {
119+
throw new BadRequestException(400, "A target generation was attempted, but no files were created!");
120+
}
121+
}
122+
catch (Exception e) {
123+
throw new BadRequestException(500, "Unable to build target: " + e.getMessage());
124+
}
125+
return outputFilename;
72126
}
73127

74128
public static InputOption clientOptions(String language) {

0 commit comments

Comments
 (0)