67 lines
2.2 KiB
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" +
|
|
"}";
|
|
}
|
|
}
|