init
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
package ru.oa2.lti;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
|
||||
@SpringBootApplication
|
||||
public class LTIProviderApplication {
|
||||
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(LTIProviderApplication.class, args);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
package ru.oa2.lti.controller;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import ru.oa2.lti.model.LtiLogin;
|
||||
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/tool/lti")
|
||||
public class LoginController {
|
||||
|
||||
@PostMapping("/login")
|
||||
public String login(
|
||||
@RequestParam("client_id") String clientId,
|
||||
@RequestParam("iss") String iss,
|
||||
@RequestParam("login_hint") String loginHint,
|
||||
@RequestParam("lti_deployment_id") String ltiDeploymentId,
|
||||
@RequestParam("lti_message_hint") String ltiMessageHint,
|
||||
@RequestParam("target_link_uri") String targetLinkUri
|
||||
) {
|
||||
var ltiLogin = LtiLogin.builder()
|
||||
.clientId(clientId)
|
||||
.iss(iss)
|
||||
.loginHint(loginHint)
|
||||
.ltiDeploymentId(ltiDeploymentId)
|
||||
.ltiMessageHint(ltiMessageHint)
|
||||
.targetLinkUri(targetLinkUri)
|
||||
.build();
|
||||
|
||||
log.info("BODY: {}", ltiLogin);
|
||||
|
||||
//TODO service get context (by student/teatcher)
|
||||
return "redirect:" + "/page1";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
|
||||
```shell
|
||||
curl -XPOST http://localhost:8080/tool/lti/login \
|
||||
-d 'client_id=27e2d42d-d218-4ab9-b063-85e3ec87ec8f&iss=https%3A%2F%2Flocalhost&login_hint=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6ImU5ODA3YTg2LTVhNWQtNDI0MC1hYjI1LWNhYTUyZDliZjUxOSJ9.eyJkZXBsb3ltZW50S2V5IjoxLCJkZXBsb3ltZW50SWQiOiIyNzE1ZDA0NS03N2M1LTRkODgtYTFlNC05MmQ3MjFmY2M1NGIiLCJjb250ZXh0S2V5IjoxLCJjb250ZXh0SWQiOiJlMmE4ZGQxMy04MWJhLTQwMTEtODgwNi0wMjA5NGZkZjg5ZjMiLCJjb3Vyc2VhZG1pbiI6ZmFsc2UsImNvYWNoIjpmYWxzZSwicGFydGljaXBhbnQiOnRydWV9.vgPLHQA9scdED3_OwOy46h6VmzpN4arIHY3-YDBdhH4kuEqeCOjjtFbGdDqauKoQBTSVo4UvoK4JQLMhak6qsFchCj54mPob8jbaKLd0GnO_jY0sR609Nrk7Muq7cki_4PjVMX8TTHp-VYlSHjVxQH_z_D5Wld27J95z4qJjRU59GmvLGDqdLyerVVBO-zaavYsUbEEiAxoX3hmytxrarmJ7OHpxufNOeXzZ0DSGUmU5ycuTAqxODaHO1Y4rQM6XlvSfDh_TmXP8QEkatlp2cdjRpNWyOdUW_hZfbtkqukwt1ZP7KEgWzNI3vivpBjm2xfUG2YLwXPJqHa47NQgvsQ<i_deployment_id=2715d045-77c5-4d88-a1e4-92d721fcc54b<i_message_hint=1802240&target_link_uri=https%3A%2F%2Fopenolat.local%2Ftool'
|
||||
```
|
||||
@@ -0,0 +1,15 @@
|
||||
package ru.oa2.lti.model;
|
||||
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
public class LtiLogin {
|
||||
String clientId;
|
||||
String iss;
|
||||
String loginHint;
|
||||
String ltiDeploymentId;
|
||||
String ltiMessageHint;
|
||||
String targetLinkUri;
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
package ru.oa2.lti.model;
|
||||
|
||||
public record ResultRequest(
|
||||
String taskId,
|
||||
String userId,
|
||||
String answer
|
||||
) {
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
package ru.oa2.lti.model;
|
||||
|
||||
public record TaskResult(
|
||||
//TODO результат работы(лог), true/false, error:<msg>, оценка
|
||||
) {
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
package ru.oa2.lti.model;
|
||||
|
||||
public enum TaskType {
|
||||
DOCKER,
|
||||
KUBERNETES
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package ru.oa2.lti.model;
|
||||
|
||||
public record User(
|
||||
String clientId,
|
||||
String role
|
||||
) {
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
package ru.oa2.lti.repository;
|
||||
|
||||
public interface TaskRepository {
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package ru.oa2.lti.repository.entities;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
import ru.oa2.lti.model.TaskType;
|
||||
|
||||
@Entity
|
||||
public class Task {
|
||||
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
long taskId;
|
||||
|
||||
@Column(length = 20)
|
||||
@Enumerated(EnumType.STRING)
|
||||
TaskType taskType;
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package ru.oa2.lti.service;
|
||||
|
||||
import ru.oa2.lti.model.ResultRequest;
|
||||
import ru.oa2.lti.model.TaskResult;
|
||||
import ru.oa2.lti.model.User;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
public interface TaskService {
|
||||
|
||||
/*
|
||||
Получение задачи (контекста лабораторной работы)
|
||||
*/
|
||||
//TODO возвращаем объект -> в String отдельный тех.класс сериализации через шаблонизатор
|
||||
String getTask(String id, User user);
|
||||
|
||||
/*
|
||||
Отправить ответ по задаче
|
||||
UUID - id - kеу kafka message?
|
||||
*/
|
||||
UUID submit(ResultRequest resultRequest);
|
||||
|
||||
/*
|
||||
Проверить результат по UUID отправленного результата
|
||||
*/
|
||||
TaskResult getResult(UUID requestId);
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package ru.oa2.lti.service;
|
||||
|
||||
import ru.oa2.lti.model.ResultRequest;
|
||||
import ru.oa2.lti.model.TaskResult;
|
||||
import ru.oa2.lti.model.User;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
//TODO реализовать методы
|
||||
public class TaskServiceImpl implements TaskService {
|
||||
|
||||
@Override
|
||||
public String getTask(String id, User user) {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public UUID submit(ResultRequest resultRequest) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TaskResult getResult(UUID requestId) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
spring.application.name=lti-provider
|
||||
server.port=9999
|
||||
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<databaseChangeLog
|
||||
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext
|
||||
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd
|
||||
http://www.liquibase.org/xml/ns/dbchangelog
|
||||
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.3.xsd">
|
||||
|
||||
|
||||
|
||||
</databaseChangeLog>
|
||||
@@ -0,0 +1,13 @@
|
||||
package ru.oa2.lti;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
|
||||
@SpringBootTest
|
||||
class LTIProviderApplicationTests {
|
||||
|
||||
@Test
|
||||
void contextLoads() {
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user