use of io.gravitee.rest.api.model.MediaEntity in project gravitee-management-rest-api by gravitee-io.
the class PortalPageMediaResource method getPortalPageMedia.
@GET
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(value = "Retrieve all media for a Portal page", notes = "User must have the ENVIRONMENT_DOCUMENTATION[READ] permission to use this service")
@Permissions({ @Permission(value = RolePermission.ENVIRONMENT_DOCUMENTATION, acls = RolePermissionAction.READ) })
public Response getPortalPageMedia() {
final PageEntity currentPage = pageService.findById(page);
List<MediaEntity> pageMedia = mediaService.findAllWithoutContent(currentPage.getAttachedMedia());
if (pageMedia != null && !pageMedia.isEmpty()) {
return Response.ok(pageMedia).build();
}
return Response.noContent().build();
}
use of io.gravitee.rest.api.model.MediaEntity in project gravitee-management-rest-api by gravitee-io.
the class PortalPageMediaResource method attachPortalPageMedia.
@POST
@ApiOperation(value = "Attach a media to a portal page ", notes = "User must have the ENVIRONMENT_DOCUMENTATION[UPDATE] permission to use this service")
@ApiResponses({ @ApiResponse(code = 201, message = "Media successfully added", response = PageEntity.class), @ApiResponse(code = 500, message = "Internal server error") })
@Permissions({ @Permission(value = RolePermission.ENVIRONMENT_DOCUMENTATION, acls = RolePermissionAction.UPDATE) })
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces(MediaType.APPLICATION_JSON)
public Response attachPortalPageMedia(@Context final HttpServletRequest request, @FormDataParam("file") InputStream uploadedInputStream, @FormDataParam("file") FormDataContentDisposition fileDetail, @FormDataParam("file") final FormDataBodyPart body, @FormDataParam("fileName") String fileName) throws IOException {
final String mediaId;
if (request.getContentLength() > this.mediaService.getMediaMaxSize()) {
throw new UploadUnauthorized("Max size is " + this.mediaService.getMediaMaxSize() + "bytes. Actual size is " + request.getContentLength() + "bytes.");
}
final String originalFileName = fileDetail.getFileName();
MediaEntity mediaEntity = new MediaEntity();
mediaEntity.setSize(fileDetail.getSize());
mediaEntity.setType(body.getMediaType().getType());
mediaEntity.setSubType(body.getMediaType().getSubtype());
mediaEntity.setData(IOUtils.toByteArray(uploadedInputStream));
mediaEntity.setFileName(originalFileName);
mediaId = mediaService.savePortalMedia(mediaEntity);
pageService.attachMedia(page, mediaId, fileName == null ? originalFileName : fileName);
// remove data before sending entity
mediaEntity.setData(null);
return Response.ok(mediaEntity).build();
}
use of io.gravitee.rest.api.model.MediaEntity in project gravitee-management-rest-api by gravitee-io.
the class ApiMediaResource method uploadApiMediaImage.
@POST
@ApiOperation(value = "Create a media for an API", notes = "User must have the API_DOCUMENTATION[CREATE] permission to use this service")
@ApiResponses({ @ApiResponse(code = 201, message = "Media successfully created", response = PageEntity.class), @ApiResponse(code = 500, message = "Internal server error") })
@Permissions({ @Permission(value = RolePermission.API_DOCUMENTATION, acls = RolePermissionAction.CREATE) })
@Path("/upload")
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces("text/plain")
public Response uploadApiMediaImage(@FormDataParam("file") InputStream uploadedInputStream, @FormDataParam("file") FormDataContentDisposition fileDetail, @FormDataParam("file") final FormDataBodyPart body) throws IOException {
final String mediaId;
if (fileDetail.getSize() > this.mediaService.getMediaMaxSize()) {
throw new UploadUnauthorized("Max size achieved " + fileDetail.getSize());
} else {
MediaEntity mediaEntity = new MediaEntity();
mediaEntity.setSize(fileDetail.getSize());
mediaEntity.setType(body.getMediaType().getType());
mediaEntity.setSubType(body.getMediaType().getSubtype());
mediaEntity.setData(IOUtils.toByteArray(uploadedInputStream));
mediaEntity.setFileName(fileDetail.getFileName());
try {
ImageUtils.verify(body.getMediaType().getType(), body.getMediaType().getSubtype(), mediaEntity.getData());
} catch (InvalidImageException e) {
return Response.status(Response.Status.BAD_REQUEST).entity("Invalid image format").build();
}
mediaId = mediaService.saveApiMedia(api, mediaEntity);
}
return Response.status(200).entity(mediaId).build();
}
use of io.gravitee.rest.api.model.MediaEntity in project gravitee-management-rest-api by gravitee-io.
the class ApiPageMediaResource method getApiPageMedia.
@GET
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(value = "Retrieve all media for an API page", notes = "User must have the API_DOCUMENTATION[READ] permission to use this service")
@Permissions({ @Permission(value = RolePermission.API_DOCUMENTATION, acls = RolePermissionAction.READ) })
public Response getApiPageMedia() {
final PageEntity currentPage = pageService.findById(page);
List<MediaEntity> pageMedia = mediaService.findAllWithoutContent(currentPage.getAttachedMedia(), api);
if (pageMedia != null && !pageMedia.isEmpty()) {
return Response.ok(pageMedia).build();
}
return Response.noContent().build();
}
use of io.gravitee.rest.api.model.MediaEntity in project gravitee-management-rest-api by gravitee-io.
the class PortalMediaResource method uploadPortalMedia.
@POST
@Permissions({ @Permission(value = RolePermission.ENVIRONMENT_DOCUMENTATION, acls = RolePermissionAction.CREATE) })
@Path("/upload")
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces("text/plain")
@ApiOperation(value = "Create a media for the portal", notes = "User must have the PORTAL_DOCUMENTATION[CREATE] permission to use this service")
@ApiResponses({ @ApiResponse(code = 200, message = "Media successfully created"), @ApiResponse(code = 500, message = "Internal server error") })
public Response uploadPortalMedia(@FormDataParam("file") InputStream uploadedInputStream, @FormDataParam("file") FormDataContentDisposition fileDetail, @FormDataParam("file") final FormDataBodyPart body) throws IOException {
String mediaId;
if (fileDetail.getSize() > this.mediaService.getMediaMaxSize()) {
throw new UploadUnauthorized("Max size achieved " + fileDetail.getSize());
} else {
MediaEntity mediaEntity = new MediaEntity();
mediaEntity.setSize(fileDetail.getSize());
mediaEntity.setType(body.getMediaType().getType());
mediaEntity.setSubType(body.getMediaType().getSubtype());
mediaEntity.setData(IOUtils.toByteArray(uploadedInputStream));
mediaEntity.setFileName(fileDetail.getFileName());
try {
ImageUtils.verify(body.getMediaType().getType(), body.getMediaType().getSubtype(), mediaEntity.getData());
} catch (InvalidImageException e) {
return Response.status(Response.Status.BAD_REQUEST).entity("Invalid image format").build();
}
mediaId = mediaService.savePortalMedia(mediaEntity);
}
return Response.status(200).entity(mediaId).build();
}
Aggregations