/** * ds for schedule related operations * * @author Mathias af Jochnick * @Created: 2021-08-17 */ @Controller public class ScheduleDS extends ScheduleApi { @Autowired private ScheduleService scheduleService; private static final Logger LOG = LoggerFactory.getLogger(ScheduleDS.class); @Secured(REPORTER) public DSResponse fetch(DSRequest request) { Reporter caller = getLoggedInReporter(); Reporter filter = null; if (getLoggedInRole() != RoleEnum.ADMIN) { filter = caller; } return doFetchScheduleItems(request, getLoggedInReporter(), filter); } private DSResponse doFetchScheduleItems(DSRequest request, Reporter caller, Reporter filter) { //various logic related to dates, parameters etc. coming in through criteria ///.... List items = scheduleService.fetch(getLoggedInReporter(), /*various params*/); DSResponse resp = new DSResponse; //various more logic related to offset, limit and params //... resp.setData(items); return resp; } }