lti-provider/src/main/java/ru/oa2/lti/ApplicationService.java

67 lines
2.2 KiB
Java

package ru.oa2.lti;
import jakarta.transaction.Transactional;
import org.springframework.stereotype.Service;
import ru.oa2.lti.model.LtiLogin;
import ru.oa2.lti.model.TaskData;
import ru.oa2.lti.repository.LMSContentRepository;
import ru.oa2.lti.repository.entities.LMSContent;
import ru.oa2.lti.repository.entities.Task;
import ru.oa2.lti.service.jwt.JwtService;
import ru.oa2.lti.service.jwt.Payload;
import java.util.Collection;
import java.util.UUID;
@Service
@Transactional
public class ApplicationService {
private final JwtService jwtService;
private final LMSContentRepository lmsContentRepository;
public ApplicationService(JwtService jwtService,
LMSContentRepository lmsContentRepository) {
this.jwtService = jwtService;
this.lmsContentRepository = lmsContentRepository;
}
public Payload getPayload(LtiLogin ltiLogin) {
return jwtService.getPayload(ltiLogin.getLoginHint());
}
public String getTask(UUID contextId) {
var content = lmsContentRepository.getLMSContentByContentId(contextId);
if(content.isPresent()) {
LMSContent lmsContent = content.get();
Collection<Task> tasks = lmsContent.getTasks();
//TODO добавить версию в Task и выбирать самую старшую и опубликованную
TaskData data = tasks.stream().findFirst().get().getData();
//TODO запуск initScript
return data.getDescription();
} else {
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" +
"}";
}
}