package inc.sdt.controlcentermanagement.presentation; import inc.sdt.controlcentermanagement.application.TubeService; import inc.sdt.controlcentermanagement.domain.Slot; import inc.sdt.controlcentermanagement.infrastructure.amqp.ResourceMapping; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.*; /** * @author sunae.jang (sa.jang@sdt.inc) */ @RestController public class TubeController { private final TubeService tubeService; private final Logger log; public TubeController(TubeService tubeService) { this.tubeService = tubeService; this.log = LoggerFactory.getLogger(TubeController.class); } @ResourceMapping(name = "Tube_Control", method = "PATCH", uri = "/chamber/{chamberNumber}/tube/toggle", description = "Tube On/Off 제어") @ResponseStatus(HttpStatus.OK) @PatchMapping("/chamber/{chamberNumber}/tube/toggle") public void toggle(@RequestHeader("Authorization") String authorization, @PathVariable String chamberNumber, @RequestBody Slot slot) { log.info("[toggle] chamberNumber: {}, slot: {}", chamberNumber, slot); slot.setChamberNumber(chamberNumber); if (slot.getTube() != null) { tubeService.controlByTubeCode(authorization, slot); } else { tubeService.controlAll(authorization, slot); } } }