package eu.openaire.urls_worker.controllers; import eu.openaire.urls_worker.payloads.responces.WorkerResponse; import eu.openaire.urls_worker.util.AssignmentHandler; import eu.openaire.urls_worker.util.WorkerConstants; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("") public class GeneralController { private static final Logger logger = LoggerFactory.getLogger(GeneralController.class); public GeneralController() { } @GetMapping("isAlive") public ResponseEntity isWorkerAlive() { logger.info("Received an \"isAlive\" request."); return ResponseEntity.ok().build(); } @GetMapping("isAvailableForWork") public ResponseEntity isWorkerAvailableForWork() { logger.info("Received an \"isWorkerAvailableForWork\" request."); if ( AssignmentHandler.isAvailableForWork ) { logger.info("The worker is available for an assignment."); return ResponseEntity.status(200).body(new WorkerResponse(WorkerConstants.WORKER_ID, WorkerConstants.ASSIGNMENTS_LIMIT)); } else { logger.info("The worker is busy with another assignment."); return ResponseEntity.status(HttpStatus.SERVICE_UNAVAILABLE).build(); } } }