diff --git a/debug/docker-compose.without_pg.yaml b/debug/docker-compose.without_pg.yaml deleted file mode 100644 index c95e080..0000000 --- a/debug/docker-compose.without_pg.yaml +++ /dev/null @@ -1,36 +0,0 @@ -services: - - zookeeper: - image: confluentinc/cp-zookeeper:7.6.1 - container_name: zookeeper - environment: - ZOOKEEPER_CLIENT_PORT: 2181 - ZOOKEEPER_TICK_TIME: 2000 - restart: unless-stopped - - kafka: - image: confluentinc/cp-kafka:7.6.1 - container_name: kafka - depends_on: - - zookeeper - ports: - - "29092:29092" - environment: - KAFKA_BROKER_ID: 1 - KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 - KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092,PLAINTEXT_HOST://localhost:29092 - KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT - KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT - KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 - KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1 - KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1 - restart: unless-stopped - -volumes: - postgres_data: - -networks: - lti-net: - driver: bridge - default: - name: lti-net \ No newline at end of file diff --git a/debug/docker-compose.yaml b/debug/docker-compose.yaml index e0d9f4d..2e30010 100644 --- a/debug/docker-compose.yaml +++ b/debug/docker-compose.yaml @@ -18,32 +18,6 @@ services: retries: 5 restart: unless-stopped - zookeeper: - image: confluentinc/cp-zookeeper:7.6.1 - container_name: zookeeper - environment: - ZOOKEEPER_CLIENT_PORT: 2181 - ZOOKEEPER_TICK_TIME: 2000 - restart: unless-stopped - - kafka: - image: confluentinc/cp-kafka:7.6.1 - container_name: kafka - depends_on: - - zookeeper - ports: - - "29092:29092" - environment: - KAFKA_BROKER_ID: 1 - KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 - KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092,PLAINTEXT_HOST://localhost:29092 - KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT - KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT - KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 - KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1 - KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1 - restart: unless-stopped - volumes: postgres_data: diff --git a/src/main/java/ru/oa2/lti/ApplicationService.java b/src/main/java/ru/oa2/lti/ApplicationService.java index 1397d5f..854f52d 100644 --- a/src/main/java/ru/oa2/lti/ApplicationService.java +++ b/src/main/java/ru/oa2/lti/ApplicationService.java @@ -39,4 +39,20 @@ public class ApplicationService { return "Not Page"; } } + + public String saveResult(String body) { + + //TODO + return "{\n" + + " \"success\": true,\n" + + " \"message\": \"Результат успешно получен и обработан\",\n" + + " \"data\": {\n" + + " \"contextId\": \"ctx-12345\",\n" + + " \"participantId\": \"usr-67890\",\n" + + " \"submittedText\": \"console.log('Hello');\",\n" + + " \"timestamp\": \"2025-12-14T17:55:30Z\",\n" + + " \"status\": \"processed\"\n" + + " }\n" + + "}"; + } } diff --git a/src/main/java/ru/oa2/lti/controller/ResultController.java b/src/main/java/ru/oa2/lti/controller/ResultController.java index da3f7cc..52cbdd5 100644 --- a/src/main/java/ru/oa2/lti/controller/ResultController.java +++ b/src/main/java/ru/oa2/lti/controller/ResultController.java @@ -5,28 +5,25 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import ru.oa2.lti.ApplicationService; @Slf4j @RestController @RequestMapping("/tool/result") public class ResultController { + final ApplicationService service; + + public ResultController(ApplicationService applicationService) { + this.service = applicationService; + } + @PostMapping("/docker") public String result(@RequestBody String body) { log.info("RESULT: {}", body); - //TODO - return "{\n" + - " \"success\": true,\n" + - " \"message\": \"Результат успешно получен и обработан\",\n" + - " \"data\": {\n" + - " \"contextId\": \"ctx-12345\",\n" + - " \"participantId\": \"usr-67890\",\n" + - " \"submittedText\": \"console.log('Hello');\",\n" + - " \"timestamp\": \"2025-12-14T17:55:30Z\",\n" + - " \"status\": \"processed\"\n" + - " }\n" + - "}"; + //TODO возвращать json + return service.saveResult(body); } } diff --git a/src/main/java/ru/oa2/lti/model/TaskQueueStatus.java b/src/main/java/ru/oa2/lti/model/TaskQueueStatus.java new file mode 100644 index 0000000..fbb1f24 --- /dev/null +++ b/src/main/java/ru/oa2/lti/model/TaskQueueStatus.java @@ -0,0 +1,8 @@ +package ru.oa2.lti.model; + +public enum TaskQueueStatus { + NEW, + RUNNING, + ERROR, + FINISHED +} diff --git a/src/main/java/ru/oa2/lti/repository/LMSContentRepository.java b/src/main/java/ru/oa2/lti/repository/LMSContentRepository.java index 4331f13..c7c47c2 100644 --- a/src/main/java/ru/oa2/lti/repository/LMSContentRepository.java +++ b/src/main/java/ru/oa2/lti/repository/LMSContentRepository.java @@ -10,7 +10,5 @@ import java.util.UUID; @Repository public interface LMSContentRepository extends JpaRepository { - Optional getLMSContentByContentKey(long id); Optional getLMSContentByContentId(UUID contentId); - Optional findByContentId(UUID contentId); } diff --git a/src/main/java/ru/oa2/lti/repository/TaskQueueRepository.java b/src/main/java/ru/oa2/lti/repository/TaskQueueRepository.java new file mode 100644 index 0000000..f1c4802 --- /dev/null +++ b/src/main/java/ru/oa2/lti/repository/TaskQueueRepository.java @@ -0,0 +1,9 @@ +package ru.oa2.lti.repository; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; +import ru.oa2.lti.repository.entities.TaskQueue; + +@Repository +public interface TaskQueueRepository extends JpaRepository { +} diff --git a/src/main/java/ru/oa2/lti/repository/entities/LMSContent.java b/src/main/java/ru/oa2/lti/repository/entities/LMSContent.java index ce8bd84..678166b 100644 --- a/src/main/java/ru/oa2/lti/repository/entities/LMSContent.java +++ b/src/main/java/ru/oa2/lti/repository/entities/LMSContent.java @@ -2,11 +2,12 @@ package ru.oa2.lti.repository.entities; import jakarta.persistence.*; import lombok.Data; +import lombok.Getter; import java.util.Collection; import java.util.UUID; -@Data +@Getter @Entity @Table(name = "lms_content") public class LMSContent { diff --git a/src/main/java/ru/oa2/lti/repository/entities/Task.java b/src/main/java/ru/oa2/lti/repository/entities/Task.java index ff214c5..47735b8 100644 --- a/src/main/java/ru/oa2/lti/repository/entities/Task.java +++ b/src/main/java/ru/oa2/lti/repository/entities/Task.java @@ -1,10 +1,10 @@ package ru.oa2.lti.repository.entities; import jakarta.persistence.*; -import lombok.Data; +import lombok.Getter; import ru.oa2.lti.model.TaskType; -@Data +@Getter @Entity @Table(name = "task") public class Task { diff --git a/src/main/java/ru/oa2/lti/repository/entities/TaskQueue.java b/src/main/java/ru/oa2/lti/repository/entities/TaskQueue.java new file mode 100644 index 0000000..4123174 --- /dev/null +++ b/src/main/java/ru/oa2/lti/repository/entities/TaskQueue.java @@ -0,0 +1,30 @@ +package ru.oa2.lti.repository.entities; + +import jakarta.persistence.*; +import lombok.Data; +import lombok.Getter; +import ru.oa2.lti.model.TaskQueueStatus; + +@Getter +@Entity +@Table(name = "task_queue") +public class TaskQueue { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + Long id; + + @ManyToOne + @JoinColumn(name = "task_id", nullable = false) + Task taskId; + + @Column(name = "content", columnDefinition = "jsonb") + Object content; + + @Column(name = "status") + @Enumerated(EnumType.STRING) + TaskQueueStatus status; + + @Column(name = "finished") + Boolean finished; +} diff --git a/src/main/resources/db/changelog/1.0.0/2025-12-add_task_queue.xml b/src/main/resources/db/changelog/1.0.0/2025-12-add_task_queue.xml new file mode 100644 index 0000000..a87d55e --- /dev/null +++ b/src/main/resources/db/changelog/1.0.0/2025-12-add_task_queue.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/db/changelog/changelog-master.xml b/src/main/resources/db/changelog/changelog-master.xml index 87a6231..4bc73a2 100644 --- a/src/main/resources/db/changelog/changelog-master.xml +++ b/src/main/resources/db/changelog/changelog-master.xml @@ -10,5 +10,6 @@ + \ No newline at end of file