Добавлены классы для пакетов и паттернов

This commit is contained in:
serega6531
2019-04-28 00:58:23 +03:00
parent e2164c59be
commit 8e2342f181
18 changed files with 303 additions and 61 deletions

View File

@@ -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<Packet> getPackets() {
return Collections.emptyList();
}
@PostMapping("/{stream}")
public List<Packet> getStreams(@PathVariable int stream) {
return Collections.emptyList();
}
}

View File

@@ -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<Pattern> 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);
}
}

View File

@@ -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<CtfService> 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);
}
}

View File

@@ -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<Service> getServices() {
return repository.findAll();
}
@DeleteMapping("/{port}")
public void deleteService(@PathVariable int port) {
repository.deleteById(port);
}
@PostMapping
public List<Service> addService(@RequestBody Service service) {
repository.save(service);
return getServices();
}
}

View File

@@ -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<Stream> getStreams() {
return Collections.emptyList();
return service.findAll();
}
@GetMapping("/{port}")
public List<Stream> getStreams(@PathVariable int port) {
return Collections.emptyList();
return service.findAllByServicePort(port);
}
}

View File

@@ -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<Stream> streams;
}

View File

@@ -26,4 +26,6 @@ public class Packet {
@JoinColumn(name = "stream_id", nullable = false)
private Stream stream;
private long timestamp;
}

View File

@@ -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
}

View File

@@ -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;
}

View File

@@ -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> packet;
private List<Packet> packets;
private long timestamp;
}

View File

@@ -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<Packet, Long> {
}

View File

@@ -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<Pattern, Integer> {
}

View File

@@ -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<Service, Integer> {
public interface ServiceRepository extends JpaRepository<CtfService, Integer> {
}

View File

@@ -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<Stream, Long> {
List<Stream> findAllByService_Port(int port);
}

View File

@@ -0,0 +1,7 @@
package ru.serega6531.packmate.service;
import org.springframework.stereotype.Service;
@Service
public class PacketService {
}

View File

@@ -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<Pattern> findAll() {
return repository.findAll();
}
public void deleteById(int id) {
repository.deleteById(id);
}
public Pattern save(Pattern service) {
return repository.save(service);
}
}

View File

@@ -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<CtfService> findAll() {
return repository.findAll();
}
public void deleteById(int id) {
repository.deleteById(id);
}
public CtfService save(CtfService service) {
return repository.save(service);
}
}

View File

@@ -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<Stream> findAll() {
return repository.findAll();
}
public List<Stream> findAllByServicePort(int port) {
return repository.findAllByService_Port(port);
}
}