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 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" + "}"; } }