diff --git a/src/main/java/ru/serega6531/packmate/controller/PacketController.java b/src/main/java/ru/serega6531/packmate/controller/PacketController.java index 7c684a3..207e785 100644 --- a/src/main/java/ru/serega6531/packmate/controller/PacketController.java +++ b/src/main/java/ru/serega6531/packmate/controller/PacketController.java @@ -3,30 +3,36 @@ 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.model.Pagination; +import ru.serega6531.packmate.model.Stream; import ru.serega6531.packmate.service.PacketService; +import ru.serega6531.packmate.service.StreamService; import java.util.Collections; import java.util.List; +import java.util.Optional; @RestController @RequestMapping("/api/packet/") public class PacketController { - private final PacketService service; + private final StreamService streamService; + private final PacketService packetService; @Autowired - public PacketController(PacketService service) { - this.service = service; + public PacketController(StreamService streamService, PacketService packetService) { + this.streamService = streamService; + this.packetService = packetService; } - @PostMapping("/all") - public List getPackets() { - return Collections.emptyList(); - } - - @PostMapping("/{stream}") - public List getStreams(@PathVariable int stream) { - return Collections.emptyList(); + @PostMapping("/{streamId}") + public List getPacketsForStream(@PathVariable int streamId, @RequestBody Pagination pagination) { + final Optional stream = streamService.find(streamId); + if(stream.isPresent()) { + return packetService.getPacketsForStream(pagination, stream.get()); + } else { + return Collections.emptyList(); + } } } diff --git a/src/main/java/ru/serega6531/packmate/model/CtfService.java b/src/main/java/ru/serega6531/packmate/model/CtfService.java index 0f9f861..c34ec8b 100644 --- a/src/main/java/ru/serega6531/packmate/model/CtfService.java +++ b/src/main/java/ru/serega6531/packmate/model/CtfService.java @@ -1,5 +1,6 @@ package ru.serega6531.packmate.model; +import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import lombok.ToString; @@ -18,6 +19,7 @@ public class CtfService { private String name; @OneToMany(mappedBy = "service", cascade = CascadeType.ALL, orphanRemoval = true) + @JsonIgnore 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 7a83b5e..af360c2 100644 --- a/src/main/java/ru/serega6531/packmate/model/Packet.java +++ b/src/main/java/ru/serega6531/packmate/model/Packet.java @@ -1,7 +1,10 @@ package ru.serega6531.packmate.model; +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; import org.hibernate.annotations.GenericGenerator; import javax.persistence.*; @@ -17,6 +20,8 @@ import javax.persistence.*; @org.hibernate.annotations.Parameter(name = "increment_size", value = "1") } ) +@NoArgsConstructor +@AllArgsConstructor @Builder public class Packet { @@ -25,10 +30,12 @@ public class Packet { private Long id; @Transient + @JsonIgnore private Long tempId; @ManyToOne @JoinColumn(name = "stream_id", nullable = false) + @JsonIgnore private Stream stream; private long timestamp; diff --git a/src/main/java/ru/serega6531/packmate/model/Pagination.java b/src/main/java/ru/serega6531/packmate/model/Pagination.java new file mode 100644 index 0000000..393eead --- /dev/null +++ b/src/main/java/ru/serega6531/packmate/model/Pagination.java @@ -0,0 +1,4 @@ +package ru.serega6531.packmate.model; + +public class Pagination { +} diff --git a/src/main/java/ru/serega6531/packmate/model/Stream.java b/src/main/java/ru/serega6531/packmate/model/Stream.java index 37a4c31..52ff19b 100644 --- a/src/main/java/ru/serega6531/packmate/model/Stream.java +++ b/src/main/java/ru/serega6531/packmate/model/Stream.java @@ -1,5 +1,6 @@ package ru.serega6531.packmate.model; +import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import org.hibernate.annotations.GenericGenerator; import ru.serega6531.packmate.Protocol; @@ -31,6 +32,7 @@ public class Stream { private Protocol protocol; @OneToMany(mappedBy = "stream", cascade = CascadeType.ALL, orphanRemoval = true) + @JsonIgnore private List packets; private long startTimestamp; diff --git a/src/main/java/ru/serega6531/packmate/service/PacketService.java b/src/main/java/ru/serega6531/packmate/service/PacketService.java index aec4e2b..c627c4c 100644 --- a/src/main/java/ru/serega6531/packmate/service/PacketService.java +++ b/src/main/java/ru/serega6531/packmate/service/PacketService.java @@ -3,8 +3,12 @@ package ru.serega6531.packmate.service; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import ru.serega6531.packmate.model.Packet; +import ru.serega6531.packmate.model.Pagination; +import ru.serega6531.packmate.model.Stream; import ru.serega6531.packmate.repository.PacketRepository; +import java.util.List; + @Service public class PacketService { @@ -15,6 +19,10 @@ public class PacketService { this.repository = repository; } + public List getPacketsForStream(Pagination pagination, Stream stream) { + return repository.findAll(); + } + public Packet save(Packet packet) { return repository.save(packet); } diff --git a/src/main/java/ru/serega6531/packmate/service/StreamService.java b/src/main/java/ru/serega6531/packmate/service/StreamService.java index 28a9c07..aff65a9 100644 --- a/src/main/java/ru/serega6531/packmate/service/StreamService.java +++ b/src/main/java/ru/serega6531/packmate/service/StreamService.java @@ -7,6 +7,7 @@ import ru.serega6531.packmate.model.Stream; import ru.serega6531.packmate.repository.StreamRepository; import java.util.List; +import java.util.Optional; @Service @Slf4j @@ -25,6 +26,10 @@ public class StreamService { return saved; } + public Optional find(long id) { + return repository.findById(id); + } + public List findAll() { return repository.findAll(); } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 0ea2b86..1562cc2 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -7,5 +7,9 @@ spring: jpa: hibernate: ddl-auto: update + properties: + hibernate: + temp: + use_jdbc_metadata_defaults: false interface-name: enp0s31f6 local-ip: "192.168.0.125" \ No newline at end of file