diff --git a/.gitignore b/.gitignore index 63177e3..46826b3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,8 @@ HELP.md .gradle /build/ -!gradle/wrapper/gradle-wrapper.jar +/gradle/ +/gradlew* ### STS ### .apt_generated diff --git a/build.gradle b/build.gradle index 153e94a..a228936 100644 --- a/build.gradle +++ b/build.gradle @@ -27,5 +27,4 @@ dependencies { runtimeOnly 'org.springframework.boot:spring-boot-devtools' runtimeOnly 'org.postgresql:postgresql' annotationProcessor 'org.projectlombok:lombok' - testImplementation 'org.springframework.boot:spring-boot-starter-test' } diff --git a/src/main/java/ru/serega6531/packmate/controller/ServicesController.java b/src/main/java/ru/serega6531/packmate/controller/ServicesController.java new file mode 100644 index 0000000..36a92b3 --- /dev/null +++ b/src/main/java/ru/serega6531/packmate/controller/ServicesController.java @@ -0,0 +1,37 @@ +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/StreamsController.java new file mode 100644 index 0000000..4ae3339 --- /dev/null +++ b/src/main/java/ru/serega6531/packmate/controller/StreamsController.java @@ -0,0 +1,26 @@ +package ru.serega6531.packmate.controller; + +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 java.util.Collections; +import java.util.List; + +@RestController +@RequestMapping("/api/service/") +public class StreamsController { + + @GetMapping("/all") + public List getStreams() { + return Collections.emptyList(); + } + + @GetMapping("/{port}") + public List getStreams(@PathVariable int port) { + return Collections.emptyList(); + } + +} diff --git a/src/main/java/ru/serega6531/packmate/model/Service.java b/src/main/java/ru/serega6531/packmate/model/Service.java new file mode 100644 index 0000000..d76fb67 --- /dev/null +++ b/src/main/java/ru/serega6531/packmate/model/Service.java @@ -0,0 +1,16 @@ +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 new file mode 100644 index 0000000..c36b3f1 --- /dev/null +++ b/src/main/java/ru/serega6531/packmate/model/Stream.java @@ -0,0 +1,25 @@ +package ru.serega6531.packmate.model; + +import org.hibernate.annotations.GenericGenerator; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; + +@Entity +@GenericGenerator( + name = "stream_generator", + strategy = "org.hibernate.id.enhanced.SequenceStyleGenerator", + parameters = { + @org.hibernate.annotations.Parameter(name = "sequence_name", value = "stream_seq"), + @org.hibernate.annotations.Parameter(name = "initial_value", value = "1"), + @org.hibernate.annotations.Parameter(name = "increment_size", value = "1") + } +) +public class Stream { + + @Id + @GeneratedValue(generator = "stream_generator") + private Long id; + +} diff --git a/src/main/java/ru/serega6531/packmate/repository/ServiceRepository.java b/src/main/java/ru/serega6531/packmate/repository/ServiceRepository.java new file mode 100644 index 0000000..0f064ee --- /dev/null +++ b/src/main/java/ru/serega6531/packmate/repository/ServiceRepository.java @@ -0,0 +1,7 @@ +package ru.serega6531.packmate.repository; + +import org.springframework.data.jpa.repository.JpaRepository; +import ru.serega6531.packmate.model.Service; + +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 new file mode 100644 index 0000000..91782d3 --- /dev/null +++ b/src/main/java/ru/serega6531/packmate/repository/StreamRepository.java @@ -0,0 +1,7 @@ +package ru.serega6531.packmate.repository; + +import org.springframework.data.jpa.repository.JpaRepository; +import ru.serega6531.packmate.model.Stream; + +public interface StreamRepository extends JpaRepository { +} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index d9b417d..11ba9c6 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -3,4 +3,7 @@ spring: url: "jdbc:postgresql://localhost/packmate" username: "packmate" password: "123456" - driver-class-name: org.postgresql.Driver \ No newline at end of file + driver-class-name: org.postgresql.Driver + jpa: + hibernate: + ddl-auto: update \ No newline at end of file