Skip to content
Snippets Groups Projects

Draft: Resolve "Average waiting and processing time aggregated over all labs"

Files

@@ -33,6 +33,7 @@ import org.springframework.web.bind.annotation.RestController;
import nl.tudelft.queue.dto.view.statistics.LabStatisticsViewDto;
import nl.tudelft.queue.dto.view.statistics.RequestFrequencyViewDto;
import nl.tudelft.queue.dto.view.statistics.RequestStatusViewDto;
import nl.tudelft.queue.dto.view.statistics.EditionWaitTimeFrequencyDto;
import nl.tudelft.queue.model.LabRequest;
import nl.tudelft.queue.model.enums.RequestStatus;
import nl.tudelft.queue.model.enums.RequestType;
@@ -186,4 +187,29 @@ public class EditionStatusController {
return ess.countRequestsPerRoom(rooms, requests);
}
/**
* Used to construct a bar chart where average processing and waiting time is displayed on a lab-by-lab
* basis.
*
* @param editionId The edition id to consider
* @param labs The labs to consider
* @param assignments The assignments to consider
* @param rooms The rooms to consider
* @param type The request types to consider
* @return A list of dtos that correspond to the aforementioned information on a lab-by-lab
* basis.
*/
@GetMapping("/edition/{editionId}/status/freq/time")
@PreAuthorize("@permissionService.canViewEditionStatus(#editionId)")
public List<EditionWaitTimeFrequencyDto> getSessionStatTimes(@PathVariable Long editionId,
@RequestParam(required = false, defaultValue = "") List<Lab> labs,
@RequestParam(required = false, defaultValue = "") List<Long> assignments,
@RequestParam(required = false, defaultValue = "") List<Long> rooms,
@RequestParam(required = false, defaultValue = "") List<RequestType> type) {
List<LabRequest> requests = ess.getFilteredRequests(labs, assignments, rooms, type);
return ess.getSessionStatTimes(requests);
}
}
Loading