use of io.gravitee.rest.api.model.UpdateDashboardEntity in project gravitee-management-rest-api by gravitee-io.
the class DashboardServiceImpl method update.
@Override
public DashboardEntity update(UpdateDashboardEntity dashboardEntity) {
try {
final Optional<Dashboard> dashboardOptional = dashboardRepository.findById(dashboardEntity.getId());
if (dashboardOptional.isPresent()) {
final Dashboard dashboard = convert(dashboardEntity);
final DashboardEntity savedDashboard;
if (dashboard.getOrder() != dashboardOptional.get().getOrder()) {
savedDashboard = reorderAndSaveDashboards(dashboard, false);
} else {
savedDashboard = convert(dashboardRepository.update(dashboard));
}
auditService.createEnvironmentAuditLog(Collections.singletonMap(DASHBOARD, dashboard.getId()), DASHBOARD_UPDATED, new Date(), dashboardOptional.get(), dashboard);
return savedDashboard;
} else {
throw new DashboardNotFoundException(dashboardEntity.getId());
}
} catch (TechnicalException ex) {
final String error = "An error occurred while trying to update dashboard " + dashboardEntity;
LOGGER.error(error, ex);
throw new TechnicalManagementException(error, ex);
}
}
use of io.gravitee.rest.api.model.UpdateDashboardEntity in project gravitee-management-rest-api by gravitee-io.
the class DashboardServiceTest method shouldUpdate.
@Test
public void shouldUpdate() throws TechnicalException {
final UpdateDashboardEntity updateDashboardEntity = new UpdateDashboardEntity();
updateDashboardEntity.setId(DASHBOARD_ID);
updateDashboardEntity.setName("NAME");
updateDashboardEntity.setDefinition("DEFINITION");
updateDashboardEntity.setOrder(1);
updateDashboardEntity.setReferenceId("REF_ID");
updateDashboardEntity.setReferenceType(PLATFORM);
updateDashboardEntity.setQueryFilter("QUERY FILTER");
final Dashboard updatedDashboard = new Dashboard();
updatedDashboard.setId(DASHBOARD_ID);
updatedDashboard.setName("NAME");
updatedDashboard.setDefinition("DEFINITION");
updatedDashboard.setOrder(1);
updatedDashboard.setReferenceId("REF_ID");
updatedDashboard.setReferenceType(PLATFORM.name());
updatedDashboard.setQueryFilter("QUERY FILTER");
updatedDashboard.setCreatedAt(new Date());
updatedDashboard.setUpdatedAt(new Date());
when(dashboardRepository.update(any())).thenReturn(updatedDashboard);
when(dashboardRepository.findById(DASHBOARD_ID)).thenReturn(of(updatedDashboard));
final DashboardEntity dashboardEntity = dashboardService.update(updateDashboardEntity);
assertNotNull(dashboardEntity.getId());
assertEquals("NAME", dashboardEntity.getName());
assertEquals("DEFINITION", dashboardEntity.getDefinition());
assertEquals(1, dashboardEntity.getOrder());
assertEquals("REF_ID", dashboardEntity.getReferenceId());
assertEquals(PLATFORM.name(), dashboardEntity.getReferenceType());
assertEquals("QUERY FILTER", dashboardEntity.getQueryFilter());
assertNotNull(dashboardEntity.getCreatedAt());
assertNotNull(dashboardEntity.getUpdatedAt());
final Dashboard dashboard = new Dashboard();
dashboard.setName("NAME");
dashboard.setDefinition("DEFINITION");
dashboard.setOrder(1);
dashboard.setReferenceId("REF_ID");
dashboard.setReferenceType(PLATFORM.name());
dashboard.setQueryFilter("QUERY FILTER");
verify(dashboardRepository, times(1)).update(argThat(argument -> "NAME".equals(argument.getName()) && "DEFINITION".equals(argument.getDefinition()) && "REF_ID".equals(argument.getReferenceId()) && PLATFORM.name().equals(argument.getReferenceType()) && "QUERY FILTER".equals(argument.getQueryFilter()) && Integer.valueOf(1).equals(argument.getOrder()) && DASHBOARD_ID.equals(argument.getId()) && argument.getCreatedAt() == null && argument.getUpdatedAt() != null));
verify(auditService, times(1)).createEnvironmentAuditLog(eq(ImmutableMap.of(DASHBOARD, DASHBOARD_ID)), eq(Dashboard.AuditEvent.DASHBOARD_UPDATED), any(Date.class), any(), any());
}
use of io.gravitee.rest.api.model.UpdateDashboardEntity in project gravitee-management-rest-api by gravitee-io.
the class DashboardServiceTest method shouldNotUpdate.
@Test(expected = DashboardNotFoundException.class)
public void shouldNotUpdate() throws TechnicalException {
final UpdateDashboardEntity updateDashboardEntity = new UpdateDashboardEntity();
updateDashboardEntity.setId(DASHBOARD_ID);
when(dashboardRepository.findById(DASHBOARD_ID)).thenReturn(empty());
dashboardService.update(updateDashboardEntity);
}
Aggregations