[Play Framework] Update Play Framework Generator to latest version (#7860)

* First iteration to support new mechanism that needs to have the handle of the result.

* Most of the samples now build except "async". Also, everything is messed up.. need to understand the mustache way to handle this.

* New version to support play 2.8

* Fix conflict

* Fix error when multiple file in forms
This commit is contained in:
Jean-François Côté
2020-11-02 21:48:29 -05:00
committed by GitHub
parent ebf2f2e30f
commit 998e0fdaa2
127 changed files with 2720 additions and 1276 deletions

View File

@@ -16,6 +16,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.JsonNode;
import com.google.inject.Inject;
import java.io.File;
import play.api.libs.Files.TemporaryFile;
import openapitools.OpenAPIUtils;
import com.fasterxml.jackson.core.type.TypeReference;
@@ -24,7 +25,6 @@ import openapitools.OpenAPIUtils.ApiAction;
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaPlayFrameworkCodegen")
public class PetApiController extends Controller {
private final PetApiControllerImpInterface imp;
private final ObjectMapper mapper;
@@ -34,7 +34,6 @@ public class PetApiController extends Controller {
mapper = new ObjectMapper();
}
@ApiAction
public Result addPet(Http.Request request) throws Exception {
JsonNode nodebody = request.body().asJson();
@@ -44,8 +43,7 @@ public class PetApiController extends Controller {
} else {
throw new IllegalArgumentException("'body' parameter is required");
}
imp.addPet(request, body);
return ok();
return imp.addPetHttp(request, body);
}
@ApiAction
@@ -57,8 +55,7 @@ public class PetApiController extends Controller {
} else {
apiKey = null;
}
imp.deletePet(request, petId, apiKey);
return ok();
return imp.deletePetHttp(request, petId, apiKey);
}
@ApiAction
@@ -75,9 +72,7 @@ public class PetApiController extends Controller {
status.add(curParam);
}
}
List<Pet> obj = imp.findPetsByStatus(request, status);
JsonNode result = mapper.valueToTree(obj);
return ok(result);
return imp.findPetsByStatusHttp(request, status);
}
@ApiAction
@@ -94,16 +89,12 @@ public class PetApiController extends Controller {
tags.add(curParam);
}
}
List<Pet> obj = imp.findPetsByTags(request, tags);
JsonNode result = mapper.valueToTree(obj);
return ok(result);
return imp.findPetsByTagsHttp(request, tags);
}
@ApiAction
public Result getPetById(Http.Request request, Long petId) throws Exception {
Pet obj = imp.getPetById(request, petId);
JsonNode result = mapper.valueToTree(obj);
return ok(result);
return imp.getPetByIdHttp(request, petId);
}
@ApiAction
@@ -115,8 +106,7 @@ public class PetApiController extends Controller {
} else {
throw new IllegalArgumentException("'body' parameter is required");
}
imp.updatePet(request, body);
return ok();
return imp.updatePetHttp(request, body);
}
@ApiAction
@@ -135,8 +125,7 @@ public class PetApiController extends Controller {
} else {
status = null;
}
imp.updatePetWithForm(request, petId, name, status);
return ok();
return imp.updatePetWithFormHttp(request, petId, name, status);
}
@ApiAction
@@ -148,9 +137,9 @@ public class PetApiController extends Controller {
} else {
additionalMetadata = null;
}
Http.MultipartFormData.FilePart file = request.body().asMultipartFormData().getFile("file");
ModelApiResponse obj = imp.uploadFile(request, petId, additionalMetadata, file);
JsonNode result = mapper.valueToTree(obj);
return ok(result);
Http.MultipartFormData<TemporaryFile> bodyfile = request.body().asMultipartFormData();
Http.MultipartFormData.FilePart<TemporaryFile> file = bodyfile.getFile("file");
return imp.uploadFileHttp(request, petId, additionalMetadata, file);
}
}

View File

@@ -10,8 +10,9 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashSet;
import java.io.FileInputStream;
import play.api.libs.Files.TemporaryFile;
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaPlayFrameworkCodegen")
public class PetApiControllerImp implements PetApiControllerImpInterface {
public class PetApiControllerImp extends PetApiControllerImpInterface {
@Override
public void addPet(Http.Request request, Pet body) throws Exception {
//Do your magic!!!
@@ -51,7 +52,7 @@ public class PetApiControllerImp implements PetApiControllerImpInterface {
}
@Override
public ModelApiResponse uploadFile(Http.Request request, Long petId, String additionalMetadata, Http.MultipartFormData.FilePart file) throws Exception {
public ModelApiResponse uploadFile(Http.Request request, Long petId, String additionalMetadata, Http.MultipartFormData.FilePart<TemporaryFile> file) throws Exception {
//Do your magic!!!
return new ModelApiResponse();
}

View File

@@ -4,28 +4,91 @@ import java.io.InputStream;
import apimodels.ModelApiResponse;
import apimodels.Pet;
import com.google.inject.Inject;
import com.typesafe.config.Config;
import play.mvc.Controller;
import play.mvc.Http;
import java.util.List;
import java.util.ArrayList;
import java.util.HashMap;
import play.mvc.Result;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.JsonNode;
import openapitools.OpenAPIUtils;
import static play.mvc.Results.ok;
import play.api.libs.Files.TemporaryFile;
@SuppressWarnings("RedundantThrows")
public interface PetApiControllerImpInterface {
void addPet(Http.Request request, Pet body) throws Exception;
public abstract class PetApiControllerImpInterface {
private ObjectMapper mapper = new ObjectMapper();
void deletePet(Http.Request request, Long petId, String apiKey) throws Exception;
public Result addPetHttp(Http.Request request, Pet body) throws Exception {
addPet(request, body);
return ok();
List<Pet> findPetsByStatus(Http.Request request, List<String> status) throws Exception;
}
List<Pet> findPetsByTags(Http.Request request, List<String> tags) throws Exception;
public abstract void addPet(Http.Request request, Pet body) throws Exception;
Pet getPetById(Http.Request request, Long petId) throws Exception;
public Result deletePetHttp(Http.Request request, Long petId, String apiKey) throws Exception {
deletePet(request, petId, apiKey);
return ok();
void updatePet(Http.Request request, Pet body) throws Exception;
}
void updatePetWithForm(Http.Request request, Long petId, String name, String status) throws Exception;
public abstract void deletePet(Http.Request request, Long petId, String apiKey) throws Exception;
ModelApiResponse uploadFile(Http.Request request, Long petId, String additionalMetadata, Http.MultipartFormData.FilePart file) throws Exception;
public Result findPetsByStatusHttp(Http.Request request, List<String> status) throws Exception {
List<Pet> obj = findPetsByStatus(request, status);
JsonNode result = mapper.valueToTree(obj);
return ok(result);
}
public abstract List<Pet> findPetsByStatus(Http.Request request, List<String> status) throws Exception;
public Result findPetsByTagsHttp(Http.Request request, List<String> tags) throws Exception {
List<Pet> obj = findPetsByTags(request, tags);
JsonNode result = mapper.valueToTree(obj);
return ok(result);
}
public abstract List<Pet> findPetsByTags(Http.Request request, List<String> tags) throws Exception;
public Result getPetByIdHttp(Http.Request request, Long petId) throws Exception {
Pet obj = getPetById(request, petId);
JsonNode result = mapper.valueToTree(obj);
return ok(result);
}
public abstract Pet getPetById(Http.Request request, Long petId) throws Exception;
public Result updatePetHttp(Http.Request request, Pet body) throws Exception {
updatePet(request, body);
return ok();
}
public abstract void updatePet(Http.Request request, Pet body) throws Exception;
public Result updatePetWithFormHttp(Http.Request request, Long petId, String name, String status) throws Exception {
updatePetWithForm(request, petId, name, status);
return ok();
}
public abstract void updatePetWithForm(Http.Request request, Long petId, String name, String status) throws Exception;
public Result uploadFileHttp(Http.Request request, Long petId, String additionalMetadata, Http.MultipartFormData.FilePart<TemporaryFile> file) throws Exception {
ModelApiResponse obj = uploadFile(request, petId, additionalMetadata, file);
JsonNode result = mapper.valueToTree(obj);
return ok(result);
}
public abstract ModelApiResponse uploadFile(Http.Request request, Long petId, String additionalMetadata, Http.MultipartFormData.FilePart<TemporaryFile> file) throws Exception;
}

View File

@@ -15,6 +15,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.JsonNode;
import com.google.inject.Inject;
import java.io.File;
import play.api.libs.Files.TemporaryFile;
import openapitools.OpenAPIUtils;
import com.fasterxml.jackson.core.type.TypeReference;
@@ -23,7 +24,6 @@ import openapitools.OpenAPIUtils.ApiAction;
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaPlayFrameworkCodegen")
public class StoreApiController extends Controller {
private final StoreApiControllerImpInterface imp;
private final ObjectMapper mapper;
@@ -33,25 +33,19 @@ public class StoreApiController extends Controller {
mapper = new ObjectMapper();
}
@ApiAction
public Result deleteOrder(Http.Request request, String orderId) throws Exception {
imp.deleteOrder(request, orderId);
return ok();
return imp.deleteOrderHttp(request, orderId);
}
@ApiAction
public Result getInventory(Http.Request request) throws Exception {
Map<String, Integer> obj = imp.getInventory(request);
JsonNode result = mapper.valueToTree(obj);
return ok(result);
return imp.getInventoryHttp(request);
}
@ApiAction
public Result getOrderById(Http.Request request, Long orderId) throws Exception {
Order obj = imp.getOrderById(request, orderId);
JsonNode result = mapper.valueToTree(obj);
return ok(result);
return imp.getOrderByIdHttp(request, orderId);
}
@ApiAction
@@ -63,8 +57,7 @@ public class StoreApiController extends Controller {
} else {
throw new IllegalArgumentException("'body' parameter is required");
}
Order obj = imp.placeOrder(request, body);
JsonNode result = mapper.valueToTree(obj);
return ok(result);
return imp.placeOrderHttp(request, body);
}
}

View File

@@ -9,8 +9,9 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashSet;
import java.io.FileInputStream;
import play.api.libs.Files.TemporaryFile;
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaPlayFrameworkCodegen")
public class StoreApiControllerImp implements StoreApiControllerImpInterface {
public class StoreApiControllerImp extends StoreApiControllerImpInterface {
@Override
public void deleteOrder(Http.Request request, String orderId) throws Exception {
//Do your magic!!!

View File

@@ -3,20 +3,58 @@ package controllers;
import java.util.Map;
import apimodels.Order;
import com.google.inject.Inject;
import com.typesafe.config.Config;
import play.mvc.Controller;
import play.mvc.Http;
import java.util.List;
import java.util.ArrayList;
import java.util.HashMap;
import play.mvc.Result;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.JsonNode;
import openapitools.OpenAPIUtils;
import static play.mvc.Results.ok;
import play.api.libs.Files.TemporaryFile;
@SuppressWarnings("RedundantThrows")
public interface StoreApiControllerImpInterface {
void deleteOrder(Http.Request request, String orderId) throws Exception;
public abstract class StoreApiControllerImpInterface {
private ObjectMapper mapper = new ObjectMapper();
Map<String, Integer> getInventory(Http.Request request) throws Exception;
public Result deleteOrderHttp(Http.Request request, String orderId) throws Exception {
deleteOrder(request, orderId);
return ok();
Order getOrderById(Http.Request request, Long orderId) throws Exception;
}
Order placeOrder(Http.Request request, Order body) throws Exception;
public abstract void deleteOrder(Http.Request request, String orderId) throws Exception;
public Result getInventoryHttp(Http.Request request) throws Exception {
Map<String, Integer> obj = getInventory(request);
JsonNode result = mapper.valueToTree(obj);
return ok(result);
}
public abstract Map<String, Integer> getInventory(Http.Request request) throws Exception;
public Result getOrderByIdHttp(Http.Request request, Long orderId) throws Exception {
Order obj = getOrderById(request, orderId);
JsonNode result = mapper.valueToTree(obj);
return ok(result);
}
public abstract Order getOrderById(Http.Request request, Long orderId) throws Exception;
public Result placeOrderHttp(Http.Request request, Order body) throws Exception {
Order obj = placeOrder(request, body);
JsonNode result = mapper.valueToTree(obj);
return ok(result);
}
public abstract Order placeOrder(Http.Request request, Order body) throws Exception;
}

View File

@@ -15,6 +15,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.JsonNode;
import com.google.inject.Inject;
import java.io.File;
import play.api.libs.Files.TemporaryFile;
import openapitools.OpenAPIUtils;
import com.fasterxml.jackson.core.type.TypeReference;
@@ -23,7 +24,6 @@ import openapitools.OpenAPIUtils.ApiAction;
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaPlayFrameworkCodegen")
public class UserApiController extends Controller {
private final UserApiControllerImpInterface imp;
private final ObjectMapper mapper;
@@ -33,7 +33,6 @@ public class UserApiController extends Controller {
mapper = new ObjectMapper();
}
@ApiAction
public Result createUser(Http.Request request) throws Exception {
JsonNode nodebody = request.body().asJson();
@@ -43,8 +42,7 @@ public class UserApiController extends Controller {
} else {
throw new IllegalArgumentException("'body' parameter is required");
}
imp.createUser(request, body);
return ok();
return imp.createUserHttp(request, body);
}
@ApiAction
@@ -56,8 +54,7 @@ public class UserApiController extends Controller {
} else {
throw new IllegalArgumentException("'body' parameter is required");
}
imp.createUsersWithArrayInput(request, body);
return ok();
return imp.createUsersWithArrayInputHttp(request, body);
}
@ApiAction
@@ -69,21 +66,17 @@ public class UserApiController extends Controller {
} else {
throw new IllegalArgumentException("'body' parameter is required");
}
imp.createUsersWithListInput(request, body);
return ok();
return imp.createUsersWithListInputHttp(request, body);
}
@ApiAction
public Result deleteUser(Http.Request request, String username) throws Exception {
imp.deleteUser(request, username);
return ok();
return imp.deleteUserHttp(request, username);
}
@ApiAction
public Result getUserByName(Http.Request request, String username) throws Exception {
User obj = imp.getUserByName(request, username);
JsonNode result = mapper.valueToTree(obj);
return ok(result);
return imp.getUserByNameHttp(request, username);
}
@ApiAction
@@ -102,15 +95,12 @@ public class UserApiController extends Controller {
} else {
throw new IllegalArgumentException("'password' parameter is required");
}
String obj = imp.loginUser(request, username, password);
JsonNode result = mapper.valueToTree(obj);
return ok(result);
return imp.loginUserHttp(request, username, password);
}
@ApiAction
public Result logoutUser(Http.Request request) throws Exception {
imp.logoutUser(request);
return ok();
return imp.logoutUserHttp(request);
}
@ApiAction
@@ -122,7 +112,7 @@ public class UserApiController extends Controller {
} else {
throw new IllegalArgumentException("'body' parameter is required");
}
imp.updateUser(request, username, body);
return ok();
return imp.updateUserHttp(request, username, body);
}
}

View File

@@ -9,8 +9,9 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashSet;
import java.io.FileInputStream;
import play.api.libs.Files.TemporaryFile;
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaPlayFrameworkCodegen")
public class UserApiControllerImp implements UserApiControllerImpInterface {
public class UserApiControllerImp extends UserApiControllerImpInterface {
@Override
public void createUser(Http.Request request, User body) throws Exception {
//Do your magic!!!

View File

@@ -3,28 +3,89 @@ package controllers;
import java.util.List;
import apimodels.User;
import com.google.inject.Inject;
import com.typesafe.config.Config;
import play.mvc.Controller;
import play.mvc.Http;
import java.util.List;
import java.util.ArrayList;
import java.util.HashMap;
import play.mvc.Result;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.JsonNode;
import openapitools.OpenAPIUtils;
import static play.mvc.Results.ok;
import play.api.libs.Files.TemporaryFile;
@SuppressWarnings("RedundantThrows")
public interface UserApiControllerImpInterface {
void createUser(Http.Request request, User body) throws Exception;
public abstract class UserApiControllerImpInterface {
private ObjectMapper mapper = new ObjectMapper();
void createUsersWithArrayInput(Http.Request request, List<User> body) throws Exception;
public Result createUserHttp(Http.Request request, User body) throws Exception {
createUser(request, body);
return ok();
void createUsersWithListInput(Http.Request request, List<User> body) throws Exception;
}
void deleteUser(Http.Request request, String username) throws Exception;
public abstract void createUser(Http.Request request, User body) throws Exception;
User getUserByName(Http.Request request, String username) throws Exception;
public Result createUsersWithArrayInputHttp(Http.Request request, List<User> body) throws Exception {
createUsersWithArrayInput(request, body);
return ok();
String loginUser(Http.Request request, String username, String password) throws Exception;
}
void logoutUser(Http.Request request) throws Exception;
public abstract void createUsersWithArrayInput(Http.Request request, List<User> body) throws Exception;
void updateUser(Http.Request request, String username, User body) throws Exception;
public Result createUsersWithListInputHttp(Http.Request request, List<User> body) throws Exception {
createUsersWithListInput(request, body);
return ok();
}
public abstract void createUsersWithListInput(Http.Request request, List<User> body) throws Exception;
public Result deleteUserHttp(Http.Request request, String username) throws Exception {
deleteUser(request, username);
return ok();
}
public abstract void deleteUser(Http.Request request, String username) throws Exception;
public Result getUserByNameHttp(Http.Request request, String username) throws Exception {
User obj = getUserByName(request, username);
JsonNode result = mapper.valueToTree(obj);
return ok(result);
}
public abstract User getUserByName(Http.Request request, String username) throws Exception;
public Result loginUserHttp(Http.Request request, String username, String password) throws Exception {
String obj = loginUser(request, username, password);
JsonNode result = mapper.valueToTree(obj);
return ok(result);
}
public abstract String loginUser(Http.Request request, String username, String password) throws Exception;
public Result logoutUserHttp(Http.Request request) throws Exception {
logoutUser(request);
return ok();
}
public abstract void logoutUser(Http.Request request) throws Exception;
public Result updateUserHttp(Http.Request request, String username, User body) throws Exception {
updateUser(request, username, body);
return ok();
}
public abstract void updateUser(Http.Request request, String username, User body) throws Exception;
}

View File

@@ -13,10 +13,10 @@ public class ApiCall extends Action<OpenAPIUtils.ApiAction> {
@Inject
private ApiCall() {}
public CompletionStage<Result> call(Http.Context ctx) {
public CompletionStage<Result> call(Http.Request request) {
try {
//TODO: Do stuff you want to handle with each API call (metrics, logging, etc..)
return delegate.call(ctx);
return delegate.call(request);
} catch (Throwable t) {
//TODO: log the error in your metric