Search in sources :

Example 1 with DashboardUpdatedEvent

use of com.epam.ta.reportportal.core.events.activity.DashboardUpdatedEvent in project service-api by reportportal.

the class UpdateDashboardHandlerImpl method updateDashboard.

@Override
public OperationCompletionRS updateDashboard(ReportPortalUser.ProjectDetails projectDetails, UpdateDashboardRQ rq, Long dashboardId, ReportPortalUser user) {
    Dashboard dashboard = getShareableDashboardHandler.getAdministrated(dashboardId, projectDetails);
    DashboardActivityResource before = TO_ACTIVITY_RESOURCE.apply(dashboard);
    if (!dashboard.getName().equals(rq.getName())) {
        BusinessRule.expect(dashboardRepository.existsByNameAndOwnerAndProjectId(rq.getName(), user.getUsername(), projectDetails.getProjectId()), BooleanUtils::isFalse).verify(ErrorType.RESOURCE_ALREADY_EXISTS, rq.getName());
    }
    dashboard = new DashboardBuilder(dashboard).addUpdateRq(rq).get();
    dashboardRepository.save(dashboard);
    if (before.isShared() != dashboard.isShared()) {
        aclHandler.updateAcl(dashboard, projectDetails.getProjectId(), dashboard.isShared());
        updateWidgetHandler.updateSharing(dashboard.getDashboardWidgets().stream().map(DashboardWidget::getWidget).collect(Collectors.toList()), projectDetails.getProjectId(), dashboard.isShared());
    }
    messageBus.publishActivity(new DashboardUpdatedEvent(before, TO_ACTIVITY_RESOURCE.apply(dashboard), user.getUserId(), user.getUsername()));
    return new OperationCompletionRS("Dashboard with ID = '" + dashboard.getId() + "' successfully updated");
}
Also used : DashboardWidget(com.epam.ta.reportportal.entity.dashboard.DashboardWidget) DashboardActivityResource(com.epam.ta.reportportal.ws.model.activity.DashboardActivityResource) DashboardUpdatedEvent(com.epam.ta.reportportal.core.events.activity.DashboardUpdatedEvent) Dashboard(com.epam.ta.reportportal.entity.dashboard.Dashboard) DashboardBuilder(com.epam.ta.reportportal.ws.converter.builders.DashboardBuilder) OperationCompletionRS(com.epam.ta.reportportal.ws.model.OperationCompletionRS)

Aggregations

DashboardUpdatedEvent (com.epam.ta.reportportal.core.events.activity.DashboardUpdatedEvent)1 Dashboard (com.epam.ta.reportportal.entity.dashboard.Dashboard)1 DashboardWidget (com.epam.ta.reportportal.entity.dashboard.DashboardWidget)1 DashboardBuilder (com.epam.ta.reportportal.ws.converter.builders.DashboardBuilder)1 OperationCompletionRS (com.epam.ta.reportportal.ws.model.OperationCompletionRS)1 DashboardActivityResource (com.epam.ta.reportportal.ws.model.activity.DashboardActivityResource)1