Skip to content
This repository has been archived by the owner on Aug 20, 2021. It is now read-only.

Commit

Permalink
feat(multi-env): change HTTP method for environment and organization …
Browse files Browse the repository at this point in the history
…creation

Closes gravitee-io/issues#3330
  • Loading branch information
phiz71 committed Mar 13, 2020
1 parent 9240a5f commit 8c5cc07
Show file tree
Hide file tree
Showing 14 changed files with 225 additions and 392 deletions.
Expand Up @@ -18,14 +18,14 @@
import io.gravitee.common.http.MediaType;
import io.gravitee.rest.api.management.rest.resource.auth.OAuth2AuthenticationResource;
import io.gravitee.rest.api.management.rest.resource.search.SearchResource;
import io.gravitee.rest.api.model.UpdateEnvironmentEntity;
import io.gravitee.rest.api.service.EnvironmentService;
import io.swagger.annotations.*;

import javax.inject.Inject;
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import javax.ws.rs.*;
import javax.ws.rs.container.ResourceContext;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.Response;
Expand All @@ -44,6 +44,28 @@ public class EnvironmentResource extends AbstractResource {
@Inject
private EnvironmentService environmentService;

/**
* Create a new Environment.
* @param environmentEntity
* @return
*/
@POST
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
@ApiOperation(value = "Create an Environment", tags = {"Environment"})
@ApiResponses({
@ApiResponse(code = 201, message = "Environment successfully created"),
@ApiResponse(code = 500, message = "Internal server error")})
public Response createEnvironment(
@ApiParam(name = "environmentId", required = true) @PathParam("envId") String environmentId,
@ApiParam(name = "environmentEntity", required = true) @Valid @NotNull final UpdateEnvironmentEntity environmentEntity) {
environmentEntity.setId(environmentId);
return Response
.status(Status.CREATED)
.entity(environmentService.createOrUpdate(environmentEntity))
.build();
}

/**
* Delete an existing Environment.
* @param environmentId
Expand Down
Expand Up @@ -15,19 +15,11 @@
*/
package io.gravitee.rest.api.management.rest.resource;

import io.gravitee.common.http.MediaType;
import io.gravitee.rest.api.model.NewEnvironmentEntity;
import io.gravitee.rest.api.service.EnvironmentService;
import io.swagger.annotations.*;
import io.swagger.annotations.Api;

import javax.inject.Inject;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import javax.ws.rs.*;
import javax.ws.rs.Path;
import javax.ws.rs.container.ResourceContext;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;

/**
* @author Florent CHAMFROY (florent.chamfroy at graviteesource.com)
Expand All @@ -39,30 +31,6 @@ public class EnvironmentsResource extends AbstractResource {
@Context
private ResourceContext resourceContext;

@Inject
private EnvironmentService environmentService;

/**
* Create a new Environment.
* @param newEnvironmentEntity
* @return
*/
@POST
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
@ApiOperation(value = "Create an Environment", tags = {"Environment"})
@ApiResponses({
@ApiResponse(code = 201, message = "Environment successfully created"),
@ApiResponse(code = 500, message = "Internal server error")})
public Response createEnvironment(
@ApiParam(name = "newEnvironmentEntity", required = true)
@Valid @NotNull final NewEnvironmentEntity newEnvironmentEntity) {
return Response
.status(Status.CREATED)
.entity(environmentService.create(newEnvironmentEntity))
.build();
}

@Path("{envId}")
public EnvironmentResource getEnvironmentResource() {
return resourceContext.getResource(EnvironmentResource.class);
Expand Down
Expand Up @@ -99,7 +99,7 @@ public Model resolve(Type type, ModelConverterContext context, Iterator<ModelCon
}
});
//Main resource
register(OrganizationsResource.class);
register(OrganizationResource.class);

register(MultiPartFeature.class);

Expand Down
Expand Up @@ -16,14 +16,14 @@
package io.gravitee.rest.api.management.rest.resource;

import io.gravitee.common.http.MediaType;
import io.gravitee.rest.api.model.UpdateOrganizationEntity;
import io.gravitee.rest.api.service.OrganizationService;
import io.swagger.annotations.*;

import javax.inject.Inject;
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import javax.ws.rs.*;
import javax.ws.rs.container.ResourceContext;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.Response;
Expand All @@ -33,6 +33,7 @@
* @author Florent CHAMFROY (florent.chamfroy at graviteesource.com)
* @author GraviteeSource Team
*/
@Path("/organizations/{orgId}")
@Api
public class OrganizationResource extends AbstractResource {

Expand All @@ -42,6 +43,27 @@ public class OrganizationResource extends AbstractResource {
@Inject
private OrganizationService organizationService;

/**
* Create or update an Organization for the authenticated user.
*
* @param organizationEntity
* @return
*/
@PUT
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
@ApiOperation(value = "Create an Organization", tags = {"Organization"})
@ApiResponses({ @ApiResponse(code = 201, message = "Organization successfully created"),
@ApiResponse(code = 500, message = "Internal server error") })
public Response createOrganization(
@ApiParam(name = "organizationId", required = true) @PathParam("orgId") String organizationId,
@ApiParam(name = "organizationEntity", required = true) @Valid @NotNull final UpdateOrganizationEntity organizationEntity) {
organizationEntity.setId(organizationId);
return Response
.ok(organizationService.createOrUpdate(organizationEntity))
.build();
}

/**
* Delete an existing Organization.
* @param organizationId
Expand All @@ -53,9 +75,7 @@ public class OrganizationResource extends AbstractResource {
@ApiResponses({
@ApiResponse(code = 204, message = "Organization successfully deleted"),
@ApiResponse(code = 500, message = "Internal server error")})
public Response deleteOrganization(
@ApiParam(name = "organizationId", required = true)
@PathParam("orgId") String organizationId) {
public Response deleteOrganization(@ApiParam(name = "organizationId", required = true) @PathParam("orgId") String organizationId) {
organizationService.delete(organizationId);
//TODO: should delete all items that refers to this organization
return Response
Expand Down

This file was deleted.

This file was deleted.

0 comments on commit 8c5cc07

Please sign in to comment.