Изменен формат сообщений в ws, рефакторинг

This commit is contained in:
serega6531
2019-11-25 00:52:08 +03:00
parent 9b5a61f023
commit 43d6973948
19 changed files with 87 additions and 39 deletions

View File

@@ -4,6 +4,8 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import ru.serega6531.packmate.model.CtfService;
import ru.serega6531.packmate.model.enums.SubscriptionMessageType;
import ru.serega6531.packmate.model.pojo.SubscriptionMessage;
import ru.serega6531.packmate.repository.ServiceRepository;
import java.util.Collection;
@@ -16,11 +18,15 @@ import java.util.Optional;
public class ServicesService {
private final ServiceRepository repository;
private final StreamSubscriptionService subscriptionService;
private final Map<Integer, CtfService> services = new HashMap<>();
@Autowired
public ServicesService(ServiceRepository repository) {
public ServicesService(ServiceRepository repository, StreamSubscriptionService subscriptionService) {
this.repository = repository;
this.subscriptionService = subscriptionService;
repository.findAll().forEach(s -> services.put(s.getPort(), s));
log.info("Loaded {} services", services.size());
}
@@ -47,12 +53,14 @@ public class ServicesService {
log.info("Удален сервис на порту {}", port);
services.remove(port);
repository.deleteById(port);
subscriptionService.broadcast(new SubscriptionMessage(SubscriptionMessageType.DELETE_SERVICE, port));
}
public CtfService save(CtfService service) {
log.info("Добавлен или изменен сервис {} на порту {}", service.getName(), service.getPort());
final CtfService saved = repository.save(service);
services.put(saved.getPort(), service);
subscriptionService.broadcast(new SubscriptionMessage(SubscriptionMessageType.SAVE_SERVICE, saved));
return saved;
}