use of io.gravitee.rest.api.model.application.ApplicationSettings 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();
}
use of io.gravitee.rest.api.model.application.ApplicationSettings in project gravitee-management-rest-api by gravitee-io.
the class ApplicationsResource method createApplication.
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@Permissions({ @Permission(value = RolePermission.ENVIRONMENT_APPLICATION, acls = RolePermissionAction.CREATE) })
public Response createApplication(@Valid @NotNull(message = "Input must not be null.") ApplicationInput applicationInput) {
NewApplicationEntity newApplicationEntity = new NewApplicationEntity();
newApplicationEntity.setDescription(applicationInput.getDescription());
newApplicationEntity.setGroups(applicationInput.getGroups() != null ? new HashSet<>(applicationInput.getGroups()) : new HashSet<>());
newApplicationEntity.setName(applicationInput.getName());
newApplicationEntity.setPicture(applicationInput.getPicture());
final io.gravitee.rest.api.portal.rest.model.ApplicationSettings settings = applicationInput.getSettings();
ApplicationSettings newApplicationEntitySettings = new ApplicationSettings();
if (settings == null || (settings.getApp() == null && settings.getOauth() == null)) {
newApplicationEntity.setSettings(newApplicationEntitySettings);
} else {
final io.gravitee.rest.api.portal.rest.model.SimpleApplicationSettings simpleAppInput = settings.getApp();
if (simpleAppInput != null) {
SimpleApplicationSettings sas = new SimpleApplicationSettings();
sas.setClientId(simpleAppInput.getClientId());
sas.setType(simpleAppInput.getType());
newApplicationEntitySettings.setApp(sas);
}
final io.gravitee.rest.api.portal.rest.model.OAuthClientSettings oauthAppInput = settings.getOauth();
if (oauthAppInput != null) {
OAuthClientSettings ocs = new OAuthClientSettings();
ocs.setApplicationType(oauthAppInput.getApplicationType());
ocs.setGrantTypes(oauthAppInput.getGrantTypes());
ocs.setRedirectUris(oauthAppInput.getRedirectUris());
newApplicationEntitySettings.setoAuthClient(ocs);
}
}
newApplicationEntity.setSettings(newApplicationEntitySettings);
ApplicationEntity createdApplicationEntity = applicationService.create(newApplicationEntity, getAuthenticatedUser());
return Response.created(this.getLocationHeader(createdApplicationEntity.getId())).entity(applicationMapper.convert(createdApplicationEntity, uriInfo)).build();
}
use of io.gravitee.rest.api.model.application.ApplicationSettings in project gravitee-management-rest-api by gravitee-io.
the class ApplicationsResourceTest method shouldCreateApplicationWithEmptySettings.
@Test
public void shouldCreateApplicationWithEmptySettings() {
ApplicationInput input = new ApplicationInput().description(APPLICATION).groups(Arrays.asList(APPLICATION)).name(APPLICATION).settings(new io.gravitee.rest.api.portal.rest.model.ApplicationSettings());
final Response response = target().request().post(Entity.json(input));
assertEquals(HttpStatusCode.CREATED_201, response.getStatus());
ArgumentCaptor<NewApplicationEntity> captor = ArgumentCaptor.forClass(NewApplicationEntity.class);
Mockito.verify(applicationService).create(captor.capture(), any());
final NewApplicationEntity value = captor.getValue();
assertNotNull(value);
assertEquals(APPLICATION, value.getDescription());
assertEquals(APPLICATION, value.getName());
final Set<String> groups = value.getGroups();
assertNotNull(groups);
assertFalse(groups.isEmpty());
assertTrue(groups.contains(APPLICATION));
assertNull(value.getType());
assertNull(value.getClientId());
final ApplicationSettings settings = value.getSettings();
assertNotNull(settings);
assertNull(settings.getApp());
assertNull(settings.getoAuthClient());
Application createdApp = response.readEntity(Application.class);
assertNotNull(createdApp);
assertEquals("NEW", createdApp.getId());
}
use of io.gravitee.rest.api.model.application.ApplicationSettings in project gravitee-management-rest-api by gravitee-io.
the class ApplicationsResourceTest method shouldCreateApplicationWithoutSettings.
@Test
public void shouldCreateApplicationWithoutSettings() {
ApplicationInput input = new ApplicationInput().description(APPLICATION).groups(Arrays.asList(APPLICATION)).name(APPLICATION);
final Response response = target().request().post(Entity.json(input));
assertEquals(HttpStatusCode.CREATED_201, response.getStatus());
assertEquals(target().path("NEW").getUri().toString(), response.getHeaders().getFirst(HttpHeaders.LOCATION));
ArgumentCaptor<NewApplicationEntity> captor = ArgumentCaptor.forClass(NewApplicationEntity.class);
Mockito.verify(applicationService).create(captor.capture(), any());
final NewApplicationEntity value = captor.getValue();
assertNotNull(value);
assertEquals(APPLICATION, value.getDescription());
assertEquals(APPLICATION, value.getName());
final Set<String> groups = value.getGroups();
assertNotNull(groups);
assertFalse(groups.isEmpty());
assertTrue(groups.contains(APPLICATION));
assertNull(value.getType());
assertNull(value.getClientId());
final ApplicationSettings settings = value.getSettings();
assertNotNull(settings);
assertNull(settings.getApp());
assertNull(settings.getoAuthClient());
Application createdApp = response.readEntity(Application.class);
assertNotNull(createdApp);
assertEquals("NEW", createdApp.getId());
}
use of io.gravitee.rest.api.model.application.ApplicationSettings in project gravitee-management-rest-api by gravitee-io.
the class ApplicationsResourceTest method shouldCreateApplicationWithOauthSettings.
@Test
public void shouldCreateApplicationWithOauthSettings() {
ApplicationInput input = new ApplicationInput().description(APPLICATION).groups(Arrays.asList(APPLICATION)).name(APPLICATION);
OAuthClientSettings oacs = new OAuthClientSettings().applicationType(APPLICATION).clientId(APPLICATION).clientSecret(APPLICATION).clientUri(APPLICATION).logoUri(APPLICATION).grantTypes(Arrays.asList(APPLICATION)).redirectUris(Arrays.asList(APPLICATION)).responseTypes(Arrays.asList(APPLICATION)).renewClientSecretSupported(Boolean.TRUE);
input.setSettings(new io.gravitee.rest.api.portal.rest.model.ApplicationSettings().oauth(oacs));
final Response response = target().request().post(Entity.json(input));
assertEquals(HttpStatusCode.CREATED_201, response.getStatus());
ArgumentCaptor<NewApplicationEntity> captor = ArgumentCaptor.forClass(NewApplicationEntity.class);
Mockito.verify(applicationService).create(captor.capture(), any());
final NewApplicationEntity value = captor.getValue();
assertNotNull(value);
assertEquals(APPLICATION, value.getDescription());
assertEquals(APPLICATION, value.getName());
final Set<String> groups = value.getGroups();
assertNotNull(groups);
assertFalse(groups.isEmpty());
assertTrue(groups.contains(APPLICATION));
assertNull(value.getType());
assertNull(value.getClientId());
final ApplicationSettings settings = value.getSettings();
assertNotNull(settings);
assertNull(settings.getApp());
final io.gravitee.rest.api.model.application.OAuthClientSettings oauthClientSettings = settings.getoAuthClient();
assertNotNull(oauthClientSettings);
assertEquals(APPLICATION, oauthClientSettings.getApplicationType());
final List<String> grantTypes = oauthClientSettings.getGrantTypes();
assertNotNull(grantTypes);
assertFalse(grantTypes.isEmpty());
assertEquals(APPLICATION, grantTypes.get(0));
final List<String> redirectUris = oauthClientSettings.getRedirectUris();
assertNotNull(redirectUris);
assertFalse(redirectUris.isEmpty());
assertEquals(APPLICATION, redirectUris.get(0));
Application createdApp = response.readEntity(Application.class);
assertNotNull(createdApp);
assertEquals("NEW", createdApp.getId());
}
Aggregations