use of io.gravitee.rest.api.model.DashboardEntity in project gravitee-management-rest-api by gravitee-io.
the class DashboardServiceTest method shouldCreate.
@Test
public void shouldCreate() throws TechnicalException {
final NewDashboardEntity newDashboardEntity = new NewDashboardEntity();
newDashboardEntity.setName("NAME");
newDashboardEntity.setDefinition("DEFINITION");
newDashboardEntity.setReferenceId("REF_ID");
newDashboardEntity.setReferenceType(PLATFORM);
newDashboardEntity.setQueryFilter("QUERY FILTER");
final Dashboard createdDashboard = new Dashboard();
createdDashboard.setId(DASHBOARD_ID);
createdDashboard.setName("NAME");
createdDashboard.setDefinition("DEFINITION");
createdDashboard.setOrder(1);
createdDashboard.setReferenceId("REF_ID");
createdDashboard.setReferenceType(PLATFORM.name());
createdDashboard.setQueryFilter("QUERY FILTER");
createdDashboard.setCreatedAt(new Date());
createdDashboard.setUpdatedAt(new Date());
when(dashboardRepository.create(any())).thenReturn(createdDashboard);
final Dashboard d = new Dashboard();
d.setOrder(0);
when(dashboardRepository.findByReferenceType(PLATFORM.name())).thenReturn(singletonList(d));
final DashboardEntity dashboardEntity = dashboardService.create(newDashboardEntity);
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)).create(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()) && !argument.getId().isEmpty() && argument.getCreatedAt() != null && argument.getUpdatedAt() != null));
verify(auditService, times(1)).createEnvironmentAuditLog(eq(ImmutableMap.of(DASHBOARD, DASHBOARD_ID)), eq(Dashboard.AuditEvent.DASHBOARD_CREATED), any(Date.class), isNull(), any());
}
use of io.gravitee.rest.api.model.DashboardEntity 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.DashboardEntity in project gravitee-management-rest-api by gravitee-io.
the class DashboardServiceImpl method reorderAndSaveDashboards.
private DashboardEntity reorderAndSaveDashboards(final Dashboard dashboardToReorder, final boolean deleted) throws TechnicalException {
final Collection<Dashboard> dashboards = dashboardRepository.findByReferenceType(dashboardToReorder.getReferenceType());
final Dashboard[] dashboardsToReorder = dashboards.stream().filter(d -> !Objects.equals(d.getId(), dashboardToReorder.getId())).toArray(Dashboard[]::new);
if (dashboardToReorder.getOrder() < 1) {
dashboardToReorder.setOrder(1);
} else if (dashboardToReorder.getOrder() > dashboardsToReorder.length + 1) {
dashboardToReorder.setOrder(dashboardsToReorder.length + 1);
}
try {
for (int i = 0; i < dashboardsToReorder.length; i++) {
if (deleted) {
if (dashboardsToReorder[i].getOrder() > dashboardToReorder.getOrder()) {
dashboardsToReorder[i].setOrder(dashboardsToReorder[i].getOrder() - 1);
dashboardRepository.update(dashboardsToReorder[i]);
}
} else {
int newOrder = (i + 1) < dashboardToReorder.getOrder() ? (i + 1) : (i + 2);
if (dashboardsToReorder[i].getOrder() != newOrder) {
dashboardsToReorder[i].setOrder(newOrder);
dashboardRepository.update(dashboardsToReorder[i]);
}
}
}
if (deleted) {
return null;
}
return convert(dashboardRepository.update(dashboardToReorder));
} catch (final TechnicalException ex) {
final String error = "An error occurs while trying to update dashboard " + dashboardToReorder.getId();
LOGGER.error(error, ex);
throw new TechnicalManagementException(error, ex);
}
}
use of io.gravitee.rest.api.model.DashboardEntity 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.DashboardEntity in project gravitee-management-rest-api by gravitee-io.
the class DashboardServiceImpl method convert.
private DashboardEntity convert(final Dashboard dashboard) {
final DashboardEntity dashboardEntity = new DashboardEntity();
dashboardEntity.setId(dashboard.getId());
dashboardEntity.setReferenceId(dashboard.getReferenceId());
dashboardEntity.setReferenceType(dashboard.getReferenceType());
dashboardEntity.setName(dashboard.getName());
dashboardEntity.setQueryFilter(dashboard.getQueryFilter());
dashboardEntity.setOrder(dashboard.getOrder());
dashboardEntity.setEnabled(dashboard.isEnabled());
dashboardEntity.setDefinition(dashboard.getDefinition());
dashboardEntity.setCreatedAt(dashboard.getCreatedAt());
dashboardEntity.setUpdatedAt(dashboard.getUpdatedAt());
return dashboardEntity;
}
Aggregations