use of io.gravitee.rest.api.model.UpdateApplicationEntity in project gravitee-management-rest-api by gravitee-io.
the class ApplicationResource method updateApplicationByApplicationId.
@PUT
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@Permissions({ @Permission(value = RolePermission.APPLICATION_DEFINITION, acls = RolePermissionAction.UPDATE) })
public Response updateApplicationByApplicationId(@PathParam("applicationId") String applicationId, @Valid @NotNull(message = "Input must not be null.") Application application) {
if (!applicationId.equalsIgnoreCase(application.getId())) {
throw new BadRequestException("'applicationId' is not the same that the application in payload");
}
ApplicationEntity appEntity = applicationService.findById(applicationId);
UpdateApplicationEntity updateApplicationEntity = new UpdateApplicationEntity();
updateApplicationEntity.setDescription(application.getDescription());
updateApplicationEntity.setName(application.getName());
updateApplicationEntity.setPicture(checkAndScaleImage(application.getPicture()));
checkImageFormat(application.getBackground());
updateApplicationEntity.setBackground(application.getBackground());
updateApplicationEntity.setGroups(appEntity.getGroups());
if (application.getSettings() != null) {
ApplicationSettings settings = new ApplicationSettings();
if (application.getSettings().getApp() != null) {
SimpleApplicationSettings sas = appEntity.getSettings().getApp();
sas.setClientId(application.getSettings().getApp().getClientId());
sas.setType(application.getSettings().getApp().getType());
settings.setApp(sas);
} else if (application.getSettings().getOauth() != null) {
OAuthClientSettings oacs = appEntity.getSettings().getoAuthClient();
oacs.setGrantTypes(application.getSettings().getOauth().getGrantTypes());
oacs.setRedirectUris(application.getSettings().getOauth().getRedirectUris());
settings.setoAuthClient(oacs);
}
updateApplicationEntity.setSettings(settings);
}
Application updatedApp = applicationMapper.convert(applicationService.update(applicationId, updateApplicationEntity), uriInfo);
return Response.ok(addApplicationLinks(updatedApp)).tag(Long.toString(updatedApp.getUpdatedAt().toInstant().toEpochMilli())).lastModified(Date.from(updatedApp.getUpdatedAt().toInstant())).build();
}
Aggregations