From 8e2342f181050e3a2c8ebe5aadca54078788e56a Mon Sep 17 00:00:00 2001 From: serega6531 Date: Sun, 28 Apr 2019 00:58:23 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D1=8B=20=D0=BA=D0=BB=D0=B0=D1=81=D1=81=D1=8B=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20=D0=BF=D0=B0=D0=BA=D0=B5=D1=82=D0=BE=D0=B2=20?= =?UTF-8?q?=D0=B8=20=D0=BF=D0=B0=D1=82=D1=82=D0=B5=D1=80=D0=BD=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../packmate/controller/PacketController.java | 32 ++++++++++++++++ .../controller/PatternController.java | 36 ++++++++++++++++++ .../controller/ServiceController.java | 36 ++++++++++++++++++ .../controller/ServicesController.java | 37 ------------------- ...sController.java => StreamController.java} | 18 ++++++--- .../serega6531/packmate/model/CtfService.java | 23 ++++++++++++ .../ru/serega6531/packmate/model/Packet.java | 2 + .../ru/serega6531/packmate/model/Pattern.java | 33 +++++++++++++++++ .../ru/serega6531/packmate/model/Service.java | 16 -------- .../ru/serega6531/packmate/model/Stream.java | 8 +++- .../packmate/repository/PacketRepository.java | 7 ++++ .../repository/PatternRepository.java | 7 ++++ .../repository/ServiceRepository.java | 4 +- .../packmate/repository/StreamRepository.java | 5 +++ .../packmate/service/PacketService.java | 7 ++++ .../packmate/service/PatternService.java | 33 +++++++++++++++++ .../packmate/service/ServicesService.java | 32 ++++++++++++++++ .../packmate/service/StreamService.java | 28 ++++++++++++++ 18 files changed, 303 insertions(+), 61 deletions(-) create mode 100644 src/main/java/ru/serega6531/packmate/controller/PacketController.java create mode 100644 src/main/java/ru/serega6531/packmate/controller/PatternController.java create mode 100644 src/main/java/ru/serega6531/packmate/controller/ServiceController.java delete mode 100644 src/main/java/ru/serega6531/packmate/controller/ServicesController.java rename src/main/java/ru/serega6531/packmate/controller/{StreamsController.java => StreamController.java} (56%) create mode 100644 src/main/java/ru/serega6531/packmate/model/CtfService.java create mode 100644 src/main/java/ru/serega6531/packmate/model/Pattern.java delete mode 100644 src/main/java/ru/serega6531/packmate/model/Service.java create mode 100644 src/main/java/ru/serega6531/packmate/repository/PacketRepository.java create mode 100644 src/main/java/ru/serega6531/packmate/repository/PatternRepository.java create mode 100644 src/main/java/ru/serega6531/packmate/service/PacketService.java create mode 100644 src/main/java/ru/serega6531/packmate/service/PatternService.java create mode 100644 src/main/java/ru/serega6531/packmate/service/ServicesService.java create mode 100644 src/main/java/ru/serega6531/packmate/service/StreamService.java diff --git a/src/main/java/ru/serega6531/packmate/controller/PacketController.java b/src/main/java/ru/serega6531/packmate/controller/PacketController.java new file mode 100644 index 0000000..7c684a3 --- /dev/null +++ b/src/main/java/ru/serega6531/packmate/controller/PacketController.java @@ -0,0 +1,32 @@ +package ru.serega6531.packmate.controller; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import ru.serega6531.packmate.model.Packet; +import ru.serega6531.packmate.service.PacketService; + +import java.util.Collections; +import java.util.List; + +@RestController +@RequestMapping("/api/packet/") +public class PacketController { + + private final PacketService service; + + @Autowired + public PacketController(PacketService service) { + this.service = service; + } + + @PostMapping("/all") + public List getPackets() { + return Collections.emptyList(); + } + + @PostMapping("/{stream}") + public List getStreams(@PathVariable int stream) { + return Collections.emptyList(); + } + +} diff --git a/src/main/java/ru/serega6531/packmate/controller/PatternController.java b/src/main/java/ru/serega6531/packmate/controller/PatternController.java new file mode 100644 index 0000000..b9c6be3 --- /dev/null +++ b/src/main/java/ru/serega6531/packmate/controller/PatternController.java @@ -0,0 +1,36 @@ +package ru.serega6531.packmate.controller; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import ru.serega6531.packmate.model.Pattern; +import ru.serega6531.packmate.service.PatternService; + +import java.util.List; + +@RestController +@RequestMapping("/api/pattern/") +public class PatternController { + + private final PatternService service; + + @Autowired + public PatternController(PatternService service) { + this.service = service; + } + + @GetMapping + public List getPatterns() { + return service.findAll(); + } + + @DeleteMapping("/{id}") + public void deletePattern(@PathVariable int id) { + service.deleteById(id); + } + + @PostMapping + public Pattern addPattern(@RequestBody Pattern pattern) { + return service.save(pattern); + } + +} diff --git a/src/main/java/ru/serega6531/packmate/controller/ServiceController.java b/src/main/java/ru/serega6531/packmate/controller/ServiceController.java new file mode 100644 index 0000000..9416aef --- /dev/null +++ b/src/main/java/ru/serega6531/packmate/controller/ServiceController.java @@ -0,0 +1,36 @@ +package ru.serega6531.packmate.controller; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import ru.serega6531.packmate.model.CtfService; +import ru.serega6531.packmate.service.ServicesService; + +import java.util.List; + +@RestController +@RequestMapping("/api/service/") +public class ServiceController { + + private final ServicesService service; + + @Autowired + public ServiceController(ServicesService service) { + this.service = service; + } + + @GetMapping + public List getServices() { + return service.findAll(); + } + + @DeleteMapping("/{port}") + public void deleteService(@PathVariable int port) { + service.deleteById(port); + } + + @PostMapping + public CtfService addService(@RequestBody CtfService ctfService) { + return service.save(ctfService); + } + +} diff --git a/src/main/java/ru/serega6531/packmate/controller/ServicesController.java b/src/main/java/ru/serega6531/packmate/controller/ServicesController.java deleted file mode 100644 index 36a92b3..0000000 --- a/src/main/java/ru/serega6531/packmate/controller/ServicesController.java +++ /dev/null @@ -1,37 +0,0 @@ -package ru.serega6531.packmate.controller; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; -import ru.serega6531.packmate.model.Service; -import ru.serega6531.packmate.repository.ServiceRepository; - -import java.util.List; - -@RestController -@RequestMapping("/api/service/manage") -public class ServicesController { - - private final ServiceRepository repository; - - @Autowired - public ServicesController(ServiceRepository repository) { - this.repository = repository; - } - - @GetMapping - public List getServices() { - return repository.findAll(); - } - - @DeleteMapping("/{port}") - public void deleteService(@PathVariable int port) { - repository.deleteById(port); - } - - @PostMapping - public List addService(@RequestBody Service service) { - repository.save(service); - return getServices(); - } - -} diff --git a/src/main/java/ru/serega6531/packmate/controller/StreamsController.java b/src/main/java/ru/serega6531/packmate/controller/StreamController.java similarity index 56% rename from src/main/java/ru/serega6531/packmate/controller/StreamsController.java rename to src/main/java/ru/serega6531/packmate/controller/StreamController.java index 4ae3339..5aa92cf 100644 --- a/src/main/java/ru/serega6531/packmate/controller/StreamsController.java +++ b/src/main/java/ru/serega6531/packmate/controller/StreamController.java @@ -1,26 +1,34 @@ package ru.serega6531.packmate.controller; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import ru.serega6531.packmate.model.Stream; +import ru.serega6531.packmate.service.StreamService; -import java.util.Collections; import java.util.List; @RestController -@RequestMapping("/api/service/") -public class StreamsController { +@RequestMapping("/api/stream/") +public class StreamController { + + private final StreamService service; + + @Autowired + public StreamController(StreamService service) { + this.service = service; + } @GetMapping("/all") public List getStreams() { - return Collections.emptyList(); + return service.findAll(); } @GetMapping("/{port}") public List getStreams(@PathVariable int port) { - return Collections.emptyList(); + return service.findAllByServicePort(port); } } diff --git a/src/main/java/ru/serega6531/packmate/model/CtfService.java b/src/main/java/ru/serega6531/packmate/model/CtfService.java new file mode 100644 index 0000000..a912765 --- /dev/null +++ b/src/main/java/ru/serega6531/packmate/model/CtfService.java @@ -0,0 +1,23 @@ +package ru.serega6531.packmate.model; + +import lombok.Data; + +import javax.persistence.CascadeType; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.OneToMany; +import java.util.List; + +@Data +@Entity +public class CtfService { + + @Id + private int port; + + private String name; + + @OneToMany(mappedBy = "service", cascade = CascadeType.ALL, orphanRemoval = true) + private List streams; + +} \ No newline at end of file diff --git a/src/main/java/ru/serega6531/packmate/model/Packet.java b/src/main/java/ru/serega6531/packmate/model/Packet.java index 098b8c6..093385d 100644 --- a/src/main/java/ru/serega6531/packmate/model/Packet.java +++ b/src/main/java/ru/serega6531/packmate/model/Packet.java @@ -26,4 +26,6 @@ public class Packet { @JoinColumn(name = "stream_id", nullable = false) private Stream stream; + private long timestamp; + } diff --git a/src/main/java/ru/serega6531/packmate/model/Pattern.java b/src/main/java/ru/serega6531/packmate/model/Pattern.java new file mode 100644 index 0000000..2692f6b --- /dev/null +++ b/src/main/java/ru/serega6531/packmate/model/Pattern.java @@ -0,0 +1,33 @@ +package ru.serega6531.packmate.model; + +import lombok.Data; +import org.hibernate.annotations.GenericGenerator; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; + +@Data +@Entity +@GenericGenerator( + name = "pattern_generator", + strategy = "org.hibernate.id.enhanced.SequenceStyleGenerator", + parameters = { + @org.hibernate.annotations.Parameter(name = "sequence_name", value = "pattern_seq"), + @org.hibernate.annotations.Parameter(name = "initial_value", value = "1"), + @org.hibernate.annotations.Parameter(name = "increment_size", value = "1") + } +) +public class Pattern { + + @Id + @GeneratedValue(generator = "pattern_generator") + private int id; + + private String name; + + private String value; + + private String color; // для вставки в css + +} diff --git a/src/main/java/ru/serega6531/packmate/model/Service.java b/src/main/java/ru/serega6531/packmate/model/Service.java deleted file mode 100644 index d76fb67..0000000 --- a/src/main/java/ru/serega6531/packmate/model/Service.java +++ /dev/null @@ -1,16 +0,0 @@ -package ru.serega6531.packmate.model; - -import lombok.Data; - -import javax.persistence.Entity; -import javax.persistence.Id; - -@Data -@Entity -public class Service { - - @Id - private int port; - private String name; - -} diff --git a/src/main/java/ru/serega6531/packmate/model/Stream.java b/src/main/java/ru/serega6531/packmate/model/Stream.java index fef843e..25c94e2 100644 --- a/src/main/java/ru/serega6531/packmate/model/Stream.java +++ b/src/main/java/ru/serega6531/packmate/model/Stream.java @@ -23,7 +23,13 @@ public class Stream { @GeneratedValue(generator = "stream_generator") private Long id; + @ManyToOne + @JoinColumn(name = "service_id", nullable = false) + private CtfService service; + @OneToMany(mappedBy = "stream", cascade = CascadeType.ALL, orphanRemoval = true) - private List packet; + private List packets; + + private long timestamp; } diff --git a/src/main/java/ru/serega6531/packmate/repository/PacketRepository.java b/src/main/java/ru/serega6531/packmate/repository/PacketRepository.java new file mode 100644 index 0000000..bdd361c --- /dev/null +++ b/src/main/java/ru/serega6531/packmate/repository/PacketRepository.java @@ -0,0 +1,7 @@ +package ru.serega6531.packmate.repository; + +import org.springframework.data.jpa.repository.JpaRepository; +import ru.serega6531.packmate.model.Packet; + +public interface PacketRepository extends JpaRepository { +} diff --git a/src/main/java/ru/serega6531/packmate/repository/PatternRepository.java b/src/main/java/ru/serega6531/packmate/repository/PatternRepository.java new file mode 100644 index 0000000..2fa9035 --- /dev/null +++ b/src/main/java/ru/serega6531/packmate/repository/PatternRepository.java @@ -0,0 +1,7 @@ +package ru.serega6531.packmate.repository; + +import org.springframework.data.jpa.repository.JpaRepository; +import ru.serega6531.packmate.model.Pattern; + +public interface PatternRepository extends JpaRepository { +} diff --git a/src/main/java/ru/serega6531/packmate/repository/ServiceRepository.java b/src/main/java/ru/serega6531/packmate/repository/ServiceRepository.java index 0f064ee..7540534 100644 --- a/src/main/java/ru/serega6531/packmate/repository/ServiceRepository.java +++ b/src/main/java/ru/serega6531/packmate/repository/ServiceRepository.java @@ -1,7 +1,7 @@ package ru.serega6531.packmate.repository; import org.springframework.data.jpa.repository.JpaRepository; -import ru.serega6531.packmate.model.Service; +import ru.serega6531.packmate.model.CtfService; -public interface ServiceRepository extends JpaRepository { +public interface ServiceRepository extends JpaRepository { } diff --git a/src/main/java/ru/serega6531/packmate/repository/StreamRepository.java b/src/main/java/ru/serega6531/packmate/repository/StreamRepository.java index 91782d3..c85f528 100644 --- a/src/main/java/ru/serega6531/packmate/repository/StreamRepository.java +++ b/src/main/java/ru/serega6531/packmate/repository/StreamRepository.java @@ -3,5 +3,10 @@ package ru.serega6531.packmate.repository; import org.springframework.data.jpa.repository.JpaRepository; import ru.serega6531.packmate.model.Stream; +import java.util.List; + public interface StreamRepository extends JpaRepository { + + List findAllByService_Port(int port); + } diff --git a/src/main/java/ru/serega6531/packmate/service/PacketService.java b/src/main/java/ru/serega6531/packmate/service/PacketService.java new file mode 100644 index 0000000..423db96 --- /dev/null +++ b/src/main/java/ru/serega6531/packmate/service/PacketService.java @@ -0,0 +1,7 @@ +package ru.serega6531.packmate.service; + +import org.springframework.stereotype.Service; + +@Service +public class PacketService { +} diff --git a/src/main/java/ru/serega6531/packmate/service/PatternService.java b/src/main/java/ru/serega6531/packmate/service/PatternService.java new file mode 100644 index 0000000..63c3685 --- /dev/null +++ b/src/main/java/ru/serega6531/packmate/service/PatternService.java @@ -0,0 +1,33 @@ +package ru.serega6531.packmate.service; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.web.bind.annotation.*; +import ru.serega6531.packmate.model.Pattern; +import ru.serega6531.packmate.repository.PatternRepository; + +import java.util.List; + +@Service +public class PatternService { + + private final PatternRepository repository; + + @Autowired + public PatternService(PatternRepository repository) { + this.repository = repository; + } + + public List findAll() { + return repository.findAll(); + } + + public void deleteById(int id) { + repository.deleteById(id); + } + + public Pattern save(Pattern service) { + return repository.save(service); + } + +} diff --git a/src/main/java/ru/serega6531/packmate/service/ServicesService.java b/src/main/java/ru/serega6531/packmate/service/ServicesService.java new file mode 100644 index 0000000..d5616d8 --- /dev/null +++ b/src/main/java/ru/serega6531/packmate/service/ServicesService.java @@ -0,0 +1,32 @@ +package ru.serega6531.packmate.service; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import ru.serega6531.packmate.model.CtfService; +import ru.serega6531.packmate.repository.ServiceRepository; + +import java.util.List; + +@Service +public class ServicesService { + + private final ServiceRepository repository; + + @Autowired + public ServicesService(ServiceRepository repository) { + this.repository = repository; + } + + public List findAll() { + return repository.findAll(); + } + + public void deleteById(int id) { + repository.deleteById(id); + } + + public CtfService save(CtfService service) { + return repository.save(service); + } + +} diff --git a/src/main/java/ru/serega6531/packmate/service/StreamService.java b/src/main/java/ru/serega6531/packmate/service/StreamService.java new file mode 100644 index 0000000..a94e8a8 --- /dev/null +++ b/src/main/java/ru/serega6531/packmate/service/StreamService.java @@ -0,0 +1,28 @@ +package ru.serega6531.packmate.service; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import ru.serega6531.packmate.model.Stream; +import ru.serega6531.packmate.repository.StreamRepository; + +import java.util.List; + +@Service +public class StreamService { + + private final StreamRepository repository; + + @Autowired + public StreamService(StreamRepository repository) { + this.repository = repository; + } + + public List findAll() { + return repository.findAll(); + } + + public List findAllByServicePort(int port) { + return repository.findAllByService_Port(port); + } + +}