From 6d7c720e982b3d1dc2f897365361802d0c195aab Mon Sep 17 00:00:00 2001 From: vityaman Date: Thu, 25 Apr 2024 07:54:54 +0300 Subject: [PATCH 1/6] #86 Renamed package domain to core --- .../botalka/api/http/endpoint/HomeworkHttpApi.kt | 8 ++++---- .../botalka/api/http/endpoint/PromotionHttpApi.kt | 4 ++-- .../lms/botalka/api/http/endpoint/UserHttpApi.kt | 4 ++-- .../botalka/api/http/error/DomainExceptionCodes.kt | 14 +++++++------- .../api/http/error/DomainExceptionMapping.kt | 2 +- .../botalka/api/http/message/HomeworkMapping.kt | 2 +- .../botalka/api/http/message/PromotionMapping.kt | 2 +- .../lms/botalka/api/http/message/UserMapping.kt | 2 +- .../api/http/message/WorkspaceMappingToMessage.kt | 2 +- .../api/http/message/WorkspaceMappingToModel.kt | 8 ++++---- .../lms/botalka/{domain => core}/Require.kt | 4 ++-- .../exception/AlreadyAskedPromotionException.kt | 4 ++-- .../exception/DeadlinePassedException.kt | 2 +- .../{domain => core}/exception/DomainException.kt | 2 +- .../exception/InvalidValueException.kt | 2 +- .../exception/NotFoundException.kt | 2 +- .../exception/NotFoundExtension.kt | 2 +- .../exception/PromotionRequestResolvedException.kt | 4 ++-- .../exception/UniqueViolationException.kt | 2 +- .../lms/botalka/{domain => core}/model/Homework.kt | 6 +++--- .../{domain => core}/model/PromotionRequest.kt | 4 ++-- .../ru/vityaman/lms/botalka/core/model/Student.kt | 3 +++ .../ru/vityaman/lms/botalka/core/model/Teacher.kt | 3 +++ .../lms/botalka/{domain => core}/model/User.kt | 6 +++--- .../botalka/{domain => core}/model/Workspace.kt | 4 ++-- .../vityaman/lms/botalka/domain/model/Student.kt | 3 --- .../vityaman/lms/botalka/domain/model/Teacher.kt | 3 --- .../vityaman/lms/botalka/logic/HomeworkService.kt | 2 +- .../vityaman/lms/botalka/logic/PromotionService.kt | 2 +- .../ru/vityaman/lms/botalka/logic/RatingService.kt | 4 ++-- .../ru/vityaman/lms/botalka/logic/UserService.kt | 2 +- .../vityaman/lms/botalka/logic/WorkspaceService.kt | 4 ++-- .../botalka/logic/basic/BasicHomeworkService.kt | 2 +- .../botalka/logic/basic/BasicPromotionService.kt | 6 +++--- .../lms/botalka/logic/basic/BasicRatingService.kt | 4 ++-- .../lms/botalka/logic/basic/BasicUserService.kt | 6 +++--- .../botalka/logic/basic/BasicWorkspaceService.kt | 8 ++++---- .../lms/botalka/logic/facade/WorkspaceChat.kt | 2 +- .../lms/botalka/storage/HomeworkStorage.kt | 2 +- .../lms/botalka/storage/PromotionStorage.kt | 2 +- .../ru/vityaman/lms/botalka/storage/UserStorage.kt | 6 +++--- .../lms/botalka/storage/WorkspaceStorage.kt | 2 +- .../botalka/storage/jooq/JooqHomeworkStorage.kt | 2 +- .../botalka/storage/jooq/JooqPromotionStorage.kt | 6 +++--- .../lms/botalka/storage/jooq/JooqUserStorage.kt | 10 +++++----- .../botalka/storage/jooq/JooqWorkspaceStorage.kt | 8 ++++---- .../botalka/storage/jooq/entity/HomeworkMapping.kt | 2 +- .../storage/jooq/entity/PromotionMapping.kt | 4 ++-- .../lms/botalka/storage/jooq/entity/UserMapping.kt | 2 +- .../storage/jooq/entity/WorkspaceMapping.kt | 8 ++++---- .../lms/botalka/{domain => core}/model/UserTest.kt | 2 +- 51 files changed, 101 insertions(+), 101 deletions(-) rename botalka/src/main/kotlin/ru/vityaman/lms/botalka/{domain => core}/Require.kt (71%) rename botalka/src/main/kotlin/ru/vityaman/lms/botalka/{domain => core}/exception/AlreadyAskedPromotionException.kt (57%) rename botalka/src/main/kotlin/ru/vityaman/lms/botalka/{domain => core}/exception/DeadlinePassedException.kt (61%) rename botalka/src/main/kotlin/ru/vityaman/lms/botalka/{domain => core}/exception/DomainException.kt (57%) rename botalka/src/main/kotlin/ru/vityaman/lms/botalka/{domain => core}/exception/InvalidValueException.kt (60%) rename botalka/src/main/kotlin/ru/vityaman/lms/botalka/{domain => core}/exception/NotFoundException.kt (59%) rename botalka/src/main/kotlin/ru/vityaman/lms/botalka/{domain => core}/exception/NotFoundExtension.kt (64%) rename botalka/src/main/kotlin/ru/vityaman/lms/botalka/{domain => core}/exception/PromotionRequestResolvedException.kt (56%) rename botalka/src/main/kotlin/ru/vityaman/lms/botalka/{domain => core}/exception/UniqueViolationException.kt (67%) rename botalka/src/main/kotlin/ru/vityaman/lms/botalka/{domain => core}/model/Homework.kt (93%) rename botalka/src/main/kotlin/ru/vityaman/lms/botalka/{domain => core}/model/PromotionRequest.kt (83%) create mode 100644 botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/model/Student.kt create mode 100644 botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/model/Teacher.kt rename botalka/src/main/kotlin/ru/vityaman/lms/botalka/{domain => core}/model/User.kt (84%) rename botalka/src/main/kotlin/ru/vityaman/lms/botalka/{domain => core}/model/Workspace.kt (94%) delete mode 100644 botalka/src/main/kotlin/ru/vityaman/lms/botalka/domain/model/Student.kt delete mode 100644 botalka/src/main/kotlin/ru/vityaman/lms/botalka/domain/model/Teacher.kt rename botalka/src/test/kotlin/ru/vityaman/lms/botalka/{domain => core}/model/UserTest.kt (92%) diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/HomeworkHttpApi.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/HomeworkHttpApi.kt index 8bb7b04..b80eca1 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/HomeworkHttpApi.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/HomeworkHttpApi.kt @@ -12,10 +12,10 @@ import ru.vityaman.lms.botalka.api.http.server.HomeworkMessage import ru.vityaman.lms.botalka.api.http.server.WorkspaceEventDraftMessage import ru.vityaman.lms.botalka.api.http.server.WorkspaceEventMessage import ru.vityaman.lms.botalka.api.http.server.apis.HomeworkApi -import ru.vityaman.lms.botalka.domain.model.Homework -import ru.vityaman.lms.botalka.domain.model.Student -import ru.vityaman.lms.botalka.domain.model.User -import ru.vityaman.lms.botalka.domain.model.Workspace +import ru.vityaman.lms.botalka.core.model.Homework +import ru.vityaman.lms.botalka.core.model.Student +import ru.vityaman.lms.botalka.core.model.User +import ru.vityaman.lms.botalka.core.model.Workspace import ru.vityaman.lms.botalka.logic.HomeworkService import ru.vityaman.lms.botalka.logic.WorkspaceService diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/PromotionHttpApi.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/PromotionHttpApi.kt index 1c2ee36..2e8b6e1 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/PromotionHttpApi.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/PromotionHttpApi.kt @@ -11,8 +11,8 @@ import ru.vityaman.lms.botalka.api.http.server.PromotionRequestDraftMessage import ru.vityaman.lms.botalka.api.http.server.PromotionRequestMessage import ru.vityaman.lms.botalka.api.http.server.PromotionRequestPatchMessage import ru.vityaman.lms.botalka.api.http.server.apis.PromotionApi -import ru.vityaman.lms.botalka.domain.model.PromotionRequest -import ru.vityaman.lms.botalka.domain.model.User +import ru.vityaman.lms.botalka.core.model.PromotionRequest +import ru.vityaman.lms.botalka.core.model.User import ru.vityaman.lms.botalka.logic.PromotionService @RestController diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/UserHttpApi.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/UserHttpApi.kt index eec6870..135a2a1 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/UserHttpApi.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/UserHttpApi.kt @@ -8,8 +8,8 @@ import ru.vityaman.lms.botalka.api.http.message.toModel import ru.vityaman.lms.botalka.api.http.server.UserDraftMessage import ru.vityaman.lms.botalka.api.http.server.UserMessage import ru.vityaman.lms.botalka.api.http.server.apis.UserApi -import ru.vityaman.lms.botalka.domain.exception.orNotFound -import ru.vityaman.lms.botalka.domain.model.User +import ru.vityaman.lms.botalka.core.exception.orNotFound +import ru.vityaman.lms.botalka.core.model.User import ru.vityaman.lms.botalka.logic.UserService @RestController diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/error/DomainExceptionCodes.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/error/DomainExceptionCodes.kt index 6b5697d..061895d 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/error/DomainExceptionCodes.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/error/DomainExceptionCodes.kt @@ -3,13 +3,13 @@ package ru.vityaman.lms.botalka.api.http.error import org.springframework.http.HttpStatus import org.springframework.http.ResponseEntity import ru.vityaman.lms.botalka.api.http.server.GeneralErrorMessage -import ru.vityaman.lms.botalka.domain.exception.AlreadyAskedPromotionException -import ru.vityaman.lms.botalka.domain.exception.DeadlinePassedException -import ru.vityaman.lms.botalka.domain.exception.DomainException -import ru.vityaman.lms.botalka.domain.exception.InvalidValueException -import ru.vityaman.lms.botalka.domain.exception.NotFoundException -import ru.vityaman.lms.botalka.domain.exception.PromotionRequestResolvedException -import ru.vityaman.lms.botalka.domain.exception.UniqueViolationException +import ru.vityaman.lms.botalka.core.exception.AlreadyAskedPromotionException +import ru.vityaman.lms.botalka.core.exception.DeadlinePassedException +import ru.vityaman.lms.botalka.core.exception.DomainException +import ru.vityaman.lms.botalka.core.exception.InvalidValueException +import ru.vityaman.lms.botalka.core.exception.NotFoundException +import ru.vityaman.lms.botalka.core.exception.PromotionRequestResolvedException +import ru.vityaman.lms.botalka.core.exception.UniqueViolationException val DomainException.httpCode: HttpStatus get() = when (this) { diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/error/DomainExceptionMapping.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/error/DomainExceptionMapping.kt index 40f864f..20f0b4f 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/error/DomainExceptionMapping.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/error/DomainExceptionMapping.kt @@ -2,7 +2,7 @@ package ru.vityaman.lms.botalka.api.http.error import org.springframework.web.bind.annotation.ExceptionHandler import org.springframework.web.bind.annotation.RestControllerAdvice -import ru.vityaman.lms.botalka.domain.exception.DomainException +import ru.vityaman.lms.botalka.core.exception.DomainException @RestControllerAdvice class DomainExceptionMapping { diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/message/HomeworkMapping.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/message/HomeworkMapping.kt index 4423a5f..44621c9 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/message/HomeworkMapping.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/message/HomeworkMapping.kt @@ -2,7 +2,7 @@ package ru.vityaman.lms.botalka.api.http.message import ru.vityaman.lms.botalka.api.http.server.HomeworkDraftMessage import ru.vityaman.lms.botalka.api.http.server.HomeworkMessage -import ru.vityaman.lms.botalka.domain.model.Homework +import ru.vityaman.lms.botalka.core.model.Homework fun Homework.toMessage(): HomeworkMessage = HomeworkMessage( diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/message/PromotionMapping.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/message/PromotionMapping.kt index 4fa6d30..17f1221 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/message/PromotionMapping.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/message/PromotionMapping.kt @@ -4,7 +4,7 @@ import ru.vityaman.lms.botalka.api.http.server.PromotionRequestMessage import ru.vityaman.lms.botalka.api.http.server.PromotionRequestStatusMessage import ru.vityaman.lms.botalka.commons.BiMap import ru.vityaman.lms.botalka.commons.BiMap.Companion.invoke -import ru.vityaman.lms.botalka.domain.model.PromotionRequest +import ru.vityaman.lms.botalka.core.model.PromotionRequest fun PromotionRequest.toMessage(): PromotionRequestMessage = PromotionRequestMessage( diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/message/UserMapping.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/message/UserMapping.kt index 82caaac..13c3d40 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/message/UserMapping.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/message/UserMapping.kt @@ -5,7 +5,7 @@ import ru.vityaman.lms.botalka.api.http.server.UserMessage import ru.vityaman.lms.botalka.api.http.server.UserRoleMessage import ru.vityaman.lms.botalka.commons.BiMap import ru.vityaman.lms.botalka.commons.BiMap.Companion.invoke -import ru.vityaman.lms.botalka.domain.model.User +import ru.vityaman.lms.botalka.core.model.User fun User.toMessage(): UserMessage = UserMessage( diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/message/WorkspaceMappingToMessage.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/message/WorkspaceMappingToMessage.kt index 604e5d8..8fae397 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/message/WorkspaceMappingToMessage.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/message/WorkspaceMappingToMessage.kt @@ -5,7 +5,7 @@ import ru.vityaman.lms.botalka.api.http.server.WorkspaceEventKindMessage import ru.vityaman.lms.botalka.api.http.server.WorkspaceEventMessage import ru.vityaman.lms.botalka.api.http.server.WorkspaceFeedbackMessage import ru.vityaman.lms.botalka.api.http.server.WorkspaceSubmissionMessage -import ru.vityaman.lms.botalka.domain.model.Workspace +import ru.vityaman.lms.botalka.core.model.Workspace private val Workspace.Event.kind get() = diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/message/WorkspaceMappingToModel.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/message/WorkspaceMappingToModel.kt index 3623c81..c7c31c5 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/message/WorkspaceMappingToModel.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/message/WorkspaceMappingToModel.kt @@ -4,10 +4,10 @@ import ru.vityaman.lms.botalka.api.http.server.WorkspaceCommentDraftMessage import ru.vityaman.lms.botalka.api.http.server.WorkspaceEventDraftMessage import ru.vityaman.lms.botalka.api.http.server.WorkspaceFeedbackDraftMessage import ru.vityaman.lms.botalka.api.http.server.WorkspaceSubmissionDraftMessage -import ru.vityaman.lms.botalka.domain.model.Homework -import ru.vityaman.lms.botalka.domain.model.Teacher -import ru.vityaman.lms.botalka.domain.model.User -import ru.vityaman.lms.botalka.domain.model.Workspace +import ru.vityaman.lms.botalka.core.model.Homework +import ru.vityaman.lms.botalka.core.model.Teacher +import ru.vityaman.lms.botalka.core.model.User +import ru.vityaman.lms.botalka.core.model.Workspace fun WorkspaceEventDraftMessage.toModel(producer: User.Id) = when (this) { diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/domain/Require.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/Require.kt similarity index 71% rename from botalka/src/main/kotlin/ru/vityaman/lms/botalka/domain/Require.kt rename to botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/Require.kt index b7480b8..25076d4 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/domain/Require.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/Require.kt @@ -1,6 +1,6 @@ -package ru.vityaman.lms.botalka.domain +package ru.vityaman.lms.botalka.core -import ru.vityaman.lms.botalka.domain.exception.InvalidValueException +import ru.vityaman.lms.botalka.core.exception.InvalidValueException fun expect(isValid: Boolean, message: StringBuilder.() -> Unit) { if (!isValid) { diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/domain/exception/AlreadyAskedPromotionException.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/exception/AlreadyAskedPromotionException.kt similarity index 57% rename from botalka/src/main/kotlin/ru/vityaman/lms/botalka/domain/exception/AlreadyAskedPromotionException.kt rename to botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/exception/AlreadyAskedPromotionException.kt index 888b41d..01d6c87 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/domain/exception/AlreadyAskedPromotionException.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/exception/AlreadyAskedPromotionException.kt @@ -1,6 +1,6 @@ -package ru.vityaman.lms.botalka.domain.exception +package ru.vityaman.lms.botalka.core.exception -import ru.vityaman.lms.botalka.domain.model.User +import ru.vityaman.lms.botalka.core.model.User class AlreadyAskedPromotionException(id: User.Id) : DomainException("user with id ${id.number} is already asked promotion") diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/domain/exception/DeadlinePassedException.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/exception/DeadlinePassedException.kt similarity index 61% rename from botalka/src/main/kotlin/ru/vityaman/lms/botalka/domain/exception/DeadlinePassedException.kt rename to botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/exception/DeadlinePassedException.kt index e184aa4..12c9f1f 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/domain/exception/DeadlinePassedException.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/exception/DeadlinePassedException.kt @@ -1,4 +1,4 @@ -package ru.vityaman.lms.botalka.domain.exception +package ru.vityaman.lms.botalka.core.exception class DeadlinePassedException(message: String) : DomainException(message) diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/domain/exception/DomainException.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/exception/DomainException.kt similarity index 57% rename from botalka/src/main/kotlin/ru/vityaman/lms/botalka/domain/exception/DomainException.kt rename to botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/exception/DomainException.kt index 2950769..8256932 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/domain/exception/DomainException.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/exception/DomainException.kt @@ -1,3 +1,3 @@ -package ru.vityaman.lms.botalka.domain.exception +package ru.vityaman.lms.botalka.core.exception open class DomainException(message: String) : Exception(message) diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/domain/exception/InvalidValueException.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/exception/InvalidValueException.kt similarity index 60% rename from botalka/src/main/kotlin/ru/vityaman/lms/botalka/domain/exception/InvalidValueException.kt rename to botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/exception/InvalidValueException.kt index 8d379f8..f04cbb0 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/domain/exception/InvalidValueException.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/exception/InvalidValueException.kt @@ -1,4 +1,4 @@ -package ru.vityaman.lms.botalka.domain.exception +package ru.vityaman.lms.botalka.core.exception class InvalidValueException(string: String) : DomainException(string) diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/domain/exception/NotFoundException.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/exception/NotFoundException.kt similarity index 59% rename from botalka/src/main/kotlin/ru/vityaman/lms/botalka/domain/exception/NotFoundException.kt rename to botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/exception/NotFoundException.kt index b6ce2fb..e0dea15 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/domain/exception/NotFoundException.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/exception/NotFoundException.kt @@ -1,4 +1,4 @@ -package ru.vityaman.lms.botalka.domain.exception +package ru.vityaman.lms.botalka.core.exception class NotFoundException(message: String) : DomainException(message) diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/domain/exception/NotFoundExtension.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/exception/NotFoundExtension.kt similarity index 64% rename from botalka/src/main/kotlin/ru/vityaman/lms/botalka/domain/exception/NotFoundExtension.kt rename to botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/exception/NotFoundExtension.kt index 1a10b9a..c772578 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/domain/exception/NotFoundExtension.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/exception/NotFoundExtension.kt @@ -1,4 +1,4 @@ -package ru.vityaman.lms.botalka.domain.exception +package ru.vityaman.lms.botalka.core.exception fun T?.orNotFound(message: String): T = this ?: throw NotFoundException(message) diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/domain/exception/PromotionRequestResolvedException.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/exception/PromotionRequestResolvedException.kt similarity index 56% rename from botalka/src/main/kotlin/ru/vityaman/lms/botalka/domain/exception/PromotionRequestResolvedException.kt rename to botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/exception/PromotionRequestResolvedException.kt index ddf8dcd..a47992a 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/domain/exception/PromotionRequestResolvedException.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/exception/PromotionRequestResolvedException.kt @@ -1,6 +1,6 @@ -package ru.vityaman.lms.botalka.domain.exception +package ru.vityaman.lms.botalka.core.exception -import ru.vityaman.lms.botalka.domain.model.PromotionRequest +import ru.vityaman.lms.botalka.core.model.PromotionRequest class PromotionRequestResolvedException(id: PromotionRequest.Id) : DomainException("Promotion request with id $id was already resolved") diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/domain/exception/UniqueViolationException.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/exception/UniqueViolationException.kt similarity index 67% rename from botalka/src/main/kotlin/ru/vityaman/lms/botalka/domain/exception/UniqueViolationException.kt rename to botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/exception/UniqueViolationException.kt index 1dfda2a..891a9e6 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/domain/exception/UniqueViolationException.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/exception/UniqueViolationException.kt @@ -1,4 +1,4 @@ -package ru.vityaman.lms.botalka.domain.exception +package ru.vityaman.lms.botalka.core.exception class UniqueViolationException(message: String) : DomainException("Unique violation: $message") diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/domain/model/Homework.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/model/Homework.kt similarity index 93% rename from botalka/src/main/kotlin/ru/vityaman/lms/botalka/domain/model/Homework.kt rename to botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/model/Homework.kt index 5312d3e..979d267 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/domain/model/Homework.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/model/Homework.kt @@ -1,8 +1,8 @@ -package ru.vityaman.lms.botalka.domain.model +package ru.vityaman.lms.botalka.core.model import ru.vityaman.lms.botalka.commons.abbreviated -import ru.vityaman.lms.botalka.domain.expect -import ru.vityaman.lms.botalka.domain.expectId +import ru.vityaman.lms.botalka.core.expect +import ru.vityaman.lms.botalka.core.expectId import java.time.OffsetDateTime data class Homework( diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/domain/model/PromotionRequest.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/model/PromotionRequest.kt similarity index 83% rename from botalka/src/main/kotlin/ru/vityaman/lms/botalka/domain/model/PromotionRequest.kt rename to botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/model/PromotionRequest.kt index 95ef00e..64087df 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/domain/model/PromotionRequest.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/model/PromotionRequest.kt @@ -1,6 +1,6 @@ -package ru.vityaman.lms.botalka.domain.model +package ru.vityaman.lms.botalka.core.model -import ru.vityaman.lms.botalka.domain.expectId +import ru.vityaman.lms.botalka.core.expectId data class PromotionRequest( val id: Id, diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/model/Student.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/model/Student.kt new file mode 100644 index 0000000..5d740cc --- /dev/null +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/model/Student.kt @@ -0,0 +1,3 @@ +package ru.vityaman.lms.botalka.core.model + +data class Student(val id: User.Id) diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/model/Teacher.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/model/Teacher.kt new file mode 100644 index 0000000..8358c93 --- /dev/null +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/model/Teacher.kt @@ -0,0 +1,3 @@ +package ru.vityaman.lms.botalka.core.model + +data class Teacher(val id: User.Id) diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/domain/model/User.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/model/User.kt similarity index 84% rename from botalka/src/main/kotlin/ru/vityaman/lms/botalka/domain/model/User.kt rename to botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/model/User.kt index 54851f9..3869bf3 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/domain/model/User.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/model/User.kt @@ -1,8 +1,8 @@ -package ru.vityaman.lms.botalka.domain.model +package ru.vityaman.lms.botalka.core.model import ru.vityaman.lms.botalka.commons.abbreviated -import ru.vityaman.lms.botalka.domain.expect -import ru.vityaman.lms.botalka.domain.expectId +import ru.vityaman.lms.botalka.core.expect +import ru.vityaman.lms.botalka.core.expectId data class User( val id: Id, diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/domain/model/Workspace.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/model/Workspace.kt similarity index 94% rename from botalka/src/main/kotlin/ru/vityaman/lms/botalka/domain/model/Workspace.kt rename to botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/model/Workspace.kt index 1970ace..8276ec2 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/domain/model/Workspace.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/model/Workspace.kt @@ -1,6 +1,6 @@ -package ru.vityaman.lms.botalka.domain.model +package ru.vityaman.lms.botalka.core.model -import ru.vityaman.lms.botalka.domain.expectId +import ru.vityaman.lms.botalka.core.expectId import java.time.OffsetDateTime data class Workspace( diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/domain/model/Student.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/domain/model/Student.kt deleted file mode 100644 index 56c6a94..0000000 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/domain/model/Student.kt +++ /dev/null @@ -1,3 +0,0 @@ -package ru.vityaman.lms.botalka.domain.model - -data class Student(val id: User.Id) diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/domain/model/Teacher.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/domain/model/Teacher.kt deleted file mode 100644 index b833a13..0000000 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/domain/model/Teacher.kt +++ /dev/null @@ -1,3 +0,0 @@ -package ru.vityaman.lms.botalka.domain.model - -data class Teacher(val id: User.Id) diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/HomeworkService.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/HomeworkService.kt index fc32067..2491f69 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/HomeworkService.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/HomeworkService.kt @@ -1,6 +1,6 @@ package ru.vityaman.lms.botalka.logic -import ru.vityaman.lms.botalka.domain.model.Homework +import ru.vityaman.lms.botalka.core.model.Homework interface HomeworkService { suspend fun create(homework: Homework.Draft): Homework diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/PromotionService.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/PromotionService.kt index d84fcfe..79144ab 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/PromotionService.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/PromotionService.kt @@ -1,6 +1,6 @@ package ru.vityaman.lms.botalka.logic -import ru.vityaman.lms.botalka.domain.model.PromotionRequest +import ru.vityaman.lms.botalka.core.model.PromotionRequest interface PromotionService { suspend fun request(promotion: PromotionRequest.Draft): PromotionRequest diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/RatingService.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/RatingService.kt index 69b8d88..990b367 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/RatingService.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/RatingService.kt @@ -1,7 +1,7 @@ package ru.vityaman.lms.botalka.logic -import ru.vityaman.lms.botalka.domain.model.Homework -import ru.vityaman.lms.botalka.domain.model.Student +import ru.vityaman.lms.botalka.core.model.Homework +import ru.vityaman.lms.botalka.core.model.Student typealias Grades = Map> diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/UserService.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/UserService.kt index 3c97f21..20e88f6 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/UserService.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/UserService.kt @@ -1,6 +1,6 @@ package ru.vityaman.lms.botalka.logic -import ru.vityaman.lms.botalka.domain.model.User +import ru.vityaman.lms.botalka.core.model.User interface UserService { suspend fun getById(id: User.Id): User? diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/WorkspaceService.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/WorkspaceService.kt index eb9ad70..a0ab2e9 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/WorkspaceService.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/WorkspaceService.kt @@ -1,8 +1,8 @@ package ru.vityaman.lms.botalka.logic import kotlinx.coroutines.flow.Flow -import ru.vityaman.lms.botalka.domain.model.Homework -import ru.vityaman.lms.botalka.domain.model.Workspace +import ru.vityaman.lms.botalka.core.model.Homework +import ru.vityaman.lms.botalka.core.model.Workspace interface WorkspaceService { fun events(id: Workspace.Id): Flow diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/basic/BasicHomeworkService.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/basic/BasicHomeworkService.kt index e6c1279..94856e8 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/basic/BasicHomeworkService.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/basic/BasicHomeworkService.kt @@ -2,7 +2,7 @@ package ru.vityaman.lms.botalka.logic.basic import org.springframework.beans.factory.annotation.Autowired import org.springframework.stereotype.Service -import ru.vityaman.lms.botalka.domain.model.Homework +import ru.vityaman.lms.botalka.core.model.Homework import ru.vityaman.lms.botalka.logic.HomeworkService import ru.vityaman.lms.botalka.storage.HomeworkStorage diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/basic/BasicPromotionService.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/basic/BasicPromotionService.kt index eace3cc..ae306c8 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/basic/BasicPromotionService.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/basic/BasicPromotionService.kt @@ -3,9 +3,9 @@ package ru.vityaman.lms.botalka.logic.basic import org.springframework.beans.factory.annotation.Autowired import org.springframework.stereotype.Service import org.springframework.transaction.annotation.Transactional -import ru.vityaman.lms.botalka.domain.exception.PromotionRequestResolvedException -import ru.vityaman.lms.botalka.domain.exception.orNotFound -import ru.vityaman.lms.botalka.domain.model.PromotionRequest +import ru.vityaman.lms.botalka.core.exception.PromotionRequestResolvedException +import ru.vityaman.lms.botalka.core.exception.orNotFound +import ru.vityaman.lms.botalka.core.model.PromotionRequest import ru.vityaman.lms.botalka.logic.PromotionService import ru.vityaman.lms.botalka.logic.UserService import ru.vityaman.lms.botalka.storage.PromotionStorage diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/basic/BasicRatingService.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/basic/BasicRatingService.kt index bd80b11..8b64c74 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/basic/BasicRatingService.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/basic/BasicRatingService.kt @@ -4,8 +4,8 @@ import kotlinx.coroutines.coroutineScope import kotlinx.coroutines.flow.toList import org.springframework.beans.factory.annotation.Autowired import org.springframework.stereotype.Service -import ru.vityaman.lms.botalka.domain.model.Homework -import ru.vityaman.lms.botalka.domain.model.Student +import ru.vityaman.lms.botalka.core.model.Homework +import ru.vityaman.lms.botalka.core.model.Student import ru.vityaman.lms.botalka.logic.Grades import ru.vityaman.lms.botalka.logic.RatingService import ru.vityaman.lms.botalka.logic.WorkspaceService diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/basic/BasicUserService.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/basic/BasicUserService.kt index e4fc70c..35a8421 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/basic/BasicUserService.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/basic/BasicUserService.kt @@ -2,9 +2,9 @@ package ru.vityaman.lms.botalka.logic.basic import org.springframework.beans.factory.annotation.Autowired import org.springframework.stereotype.Service -import ru.vityaman.lms.botalka.domain.model.Student -import ru.vityaman.lms.botalka.domain.model.Teacher -import ru.vityaman.lms.botalka.domain.model.User +import ru.vityaman.lms.botalka.core.model.Student +import ru.vityaman.lms.botalka.core.model.Teacher +import ru.vityaman.lms.botalka.core.model.User import ru.vityaman.lms.botalka.logic.UserService import ru.vityaman.lms.botalka.storage.UserStorage diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/basic/BasicWorkspaceService.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/basic/BasicWorkspaceService.kt index 31d3b18..c1713ce 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/basic/BasicWorkspaceService.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/basic/BasicWorkspaceService.kt @@ -6,10 +6,10 @@ import kotlinx.coroutines.flow.lastOrNull import kotlinx.coroutines.flow.map import org.springframework.beans.factory.annotation.Autowired import org.springframework.stereotype.Service -import ru.vityaman.lms.botalka.domain.exception.DeadlinePassedException -import ru.vityaman.lms.botalka.domain.exception.orNotFound -import ru.vityaman.lms.botalka.domain.model.Homework -import ru.vityaman.lms.botalka.domain.model.Workspace +import ru.vityaman.lms.botalka.core.exception.DeadlinePassedException +import ru.vityaman.lms.botalka.core.exception.orNotFound +import ru.vityaman.lms.botalka.core.model.Homework +import ru.vityaman.lms.botalka.core.model.Workspace import ru.vityaman.lms.botalka.logic.HomeworkService import ru.vityaman.lms.botalka.logic.WorkspaceService import ru.vityaman.lms.botalka.storage.WorkspaceStorage diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/facade/WorkspaceChat.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/facade/WorkspaceChat.kt index 328e806..6cd7052 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/facade/WorkspaceChat.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/facade/WorkspaceChat.kt @@ -1,7 +1,7 @@ package ru.vityaman.lms.botalka.logic.facade import kotlinx.coroutines.flow.Flow -import ru.vityaman.lms.botalka.domain.model.Workspace +import ru.vityaman.lms.botalka.core.model.Workspace import ru.vityaman.lms.botalka.logic.WorkspaceService class WorkspaceChat( diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/HomeworkStorage.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/HomeworkStorage.kt index 22ad77c..a657305 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/HomeworkStorage.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/HomeworkStorage.kt @@ -1,6 +1,6 @@ package ru.vityaman.lms.botalka.storage -import ru.vityaman.lms.botalka.domain.model.Homework +import ru.vityaman.lms.botalka.core.model.Homework interface HomeworkStorage { suspend fun create(homework: Homework.Draft): Homework diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/PromotionStorage.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/PromotionStorage.kt index 24a005e..8b6c4b1 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/PromotionStorage.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/PromotionStorage.kt @@ -1,6 +1,6 @@ package ru.vityaman.lms.botalka.storage -import ru.vityaman.lms.botalka.domain.model.PromotionRequest +import ru.vityaman.lms.botalka.core.model.PromotionRequest interface PromotionStorage { suspend fun create(request: PromotionRequest.Draft): PromotionRequest diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/UserStorage.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/UserStorage.kt index 90e95a4..5c20b97 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/UserStorage.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/UserStorage.kt @@ -1,8 +1,8 @@ package ru.vityaman.lms.botalka.storage -import ru.vityaman.lms.botalka.domain.model.Student -import ru.vityaman.lms.botalka.domain.model.Teacher -import ru.vityaman.lms.botalka.domain.model.User +import ru.vityaman.lms.botalka.core.model.Student +import ru.vityaman.lms.botalka.core.model.Teacher +import ru.vityaman.lms.botalka.core.model.User interface UserStorage { suspend fun getById(id: User.Id): User? diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/WorkspaceStorage.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/WorkspaceStorage.kt index 43d2ce6..6ae6c88 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/WorkspaceStorage.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/WorkspaceStorage.kt @@ -1,7 +1,7 @@ package ru.vityaman.lms.botalka.storage import kotlinx.coroutines.flow.Flow -import ru.vityaman.lms.botalka.domain.model.Workspace +import ru.vityaman.lms.botalka.core.model.Workspace interface WorkspaceStorage { fun events(id: Workspace.Id): Flow diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/JooqHomeworkStorage.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/JooqHomeworkStorage.kt index a9e8a14..0d71c96 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/JooqHomeworkStorage.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/JooqHomeworkStorage.kt @@ -4,7 +4,7 @@ import kotlinx.coroutines.reactor.awaitSingle import kotlinx.coroutines.reactor.awaitSingleOrNull import org.springframework.beans.factory.annotation.Autowired import org.springframework.stereotype.Repository -import ru.vityaman.lms.botalka.domain.model.Homework +import ru.vityaman.lms.botalka.core.model.Homework import ru.vityaman.lms.botalka.storage.HomeworkStorage import ru.vityaman.lms.botalka.storage.jooq.entity.toModel import ru.vityaman.lms.botalka.storage.jooq.tables.references.HOMEWORK diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/JooqPromotionStorage.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/JooqPromotionStorage.kt index 7809665..ba8efd8 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/JooqPromotionStorage.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/JooqPromotionStorage.kt @@ -5,9 +5,9 @@ import kotlinx.coroutines.reactor.awaitSingle import org.springframework.beans.factory.annotation.Autowired import org.springframework.stereotype.Repository import reactor.kotlin.core.publisher.toMono -import ru.vityaman.lms.botalka.domain.exception.AlreadyAskedPromotionException -import ru.vityaman.lms.botalka.domain.exception.NotFoundException -import ru.vityaman.lms.botalka.domain.model.PromotionRequest +import ru.vityaman.lms.botalka.core.exception.AlreadyAskedPromotionException +import ru.vityaman.lms.botalka.core.exception.NotFoundException +import ru.vityaman.lms.botalka.core.model.PromotionRequest import ru.vityaman.lms.botalka.storage.PromotionStorage import ru.vityaman.lms.botalka.storage.jooq.entity.toModel import ru.vityaman.lms.botalka.storage.jooq.entity.toRecord diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/JooqUserStorage.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/JooqUserStorage.kt index 1d70d00..20b2b3d 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/JooqUserStorage.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/JooqUserStorage.kt @@ -4,11 +4,11 @@ import kotlinx.coroutines.reactor.awaitSingle import kotlinx.coroutines.reactor.awaitSingleOrNull import org.springframework.beans.factory.annotation.Autowired import org.springframework.stereotype.Repository -import ru.vityaman.lms.botalka.domain.exception.AlreadyAskedPromotionException -import ru.vityaman.lms.botalka.domain.exception.UniqueViolationException -import ru.vityaman.lms.botalka.domain.model.Student -import ru.vityaman.lms.botalka.domain.model.Teacher -import ru.vityaman.lms.botalka.domain.model.User +import ru.vityaman.lms.botalka.core.exception.AlreadyAskedPromotionException +import ru.vityaman.lms.botalka.core.exception.UniqueViolationException +import ru.vityaman.lms.botalka.core.model.Student +import ru.vityaman.lms.botalka.core.model.Teacher +import ru.vityaman.lms.botalka.core.model.User import ru.vityaman.lms.botalka.storage.UserStorage import ru.vityaman.lms.botalka.storage.jooq.entity.toModel import ru.vityaman.lms.botalka.storage.jooq.tables.references.STUDENT diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/JooqWorkspaceStorage.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/JooqWorkspaceStorage.kt index b95e951..9a18208 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/JooqWorkspaceStorage.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/JooqWorkspaceStorage.kt @@ -8,10 +8,10 @@ import org.springframework.beans.factory.annotation.Autowired import org.springframework.stereotype.Repository import reactor.kotlin.core.publisher.toMono import ru.vityaman.lms.botalka.commons.mergeOrdered -import ru.vityaman.lms.botalka.domain.model.Homework -import ru.vityaman.lms.botalka.domain.model.Student -import ru.vityaman.lms.botalka.domain.model.User -import ru.vityaman.lms.botalka.domain.model.Workspace +import ru.vityaman.lms.botalka.core.model.Homework +import ru.vityaman.lms.botalka.core.model.Student +import ru.vityaman.lms.botalka.core.model.User +import ru.vityaman.lms.botalka.core.model.Workspace import ru.vityaman.lms.botalka.storage.WorkspaceStorage import ru.vityaman.lms.botalka.storage.jooq.entity.toModel import ru.vityaman.lms.botalka.storage.jooq.tables.references.HOMEWORK_FEEDBACK diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/entity/HomeworkMapping.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/entity/HomeworkMapping.kt index ce20825..fd97f97 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/entity/HomeworkMapping.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/entity/HomeworkMapping.kt @@ -1,6 +1,6 @@ package ru.vityaman.lms.botalka.storage.jooq.entity -import ru.vityaman.lms.botalka.domain.model.Homework +import ru.vityaman.lms.botalka.core.model.Homework import ru.vityaman.lms.botalka.storage.jooq.tables.records.HomeworkRecord fun HomeworkRecord.toModel(): Homework = diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/entity/PromotionMapping.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/entity/PromotionMapping.kt index 6142e11..1fac936 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/entity/PromotionMapping.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/entity/PromotionMapping.kt @@ -2,8 +2,8 @@ package ru.vityaman.lms.botalka.storage.jooq.entity import ru.vityaman.lms.botalka.commons.BiMap import ru.vityaman.lms.botalka.commons.BiMap.Companion.invoke -import ru.vityaman.lms.botalka.domain.model.PromotionRequest -import ru.vityaman.lms.botalka.domain.model.User +import ru.vityaman.lms.botalka.core.model.PromotionRequest +import ru.vityaman.lms.botalka.core.model.User import ru.vityaman.lms.botalka.storage.jooq.enums.PromotionRequestStatus import ru.vityaman.lms.botalka.storage.jooq.tables.records.PromotionRequestRecord diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/entity/UserMapping.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/entity/UserMapping.kt index 73ad934..f9da9f6 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/entity/UserMapping.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/entity/UserMapping.kt @@ -2,7 +2,7 @@ package ru.vityaman.lms.botalka.storage.jooq.entity import ru.vityaman.lms.botalka.commons.BiMap import ru.vityaman.lms.botalka.commons.BiMap.Companion.invoke -import ru.vityaman.lms.botalka.domain.model.User +import ru.vityaman.lms.botalka.core.model.User import ru.vityaman.lms.botalka.storage.jooq.enums.Role import ru.vityaman.lms.botalka.storage.jooq.tables.records.UserRecord diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/entity/WorkspaceMapping.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/entity/WorkspaceMapping.kt index a729587..26f3af8 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/entity/WorkspaceMapping.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/entity/WorkspaceMapping.kt @@ -1,9 +1,9 @@ package ru.vityaman.lms.botalka.storage.jooq.entity -import ru.vityaman.lms.botalka.domain.model.Homework -import ru.vityaman.lms.botalka.domain.model.Teacher -import ru.vityaman.lms.botalka.domain.model.User -import ru.vityaman.lms.botalka.domain.model.Workspace +import ru.vityaman.lms.botalka.core.model.Homework +import ru.vityaman.lms.botalka.core.model.Teacher +import ru.vityaman.lms.botalka.core.model.User +import ru.vityaman.lms.botalka.core.model.Workspace import ru.vityaman.lms.botalka.storage.jooq.tables.records.HomeworkFeedbackRecord import ru.vityaman.lms.botalka.storage.jooq.tables.records.HomeworkSubmissionRecord diff --git a/botalka/src/test/kotlin/ru/vityaman/lms/botalka/domain/model/UserTest.kt b/botalka/src/test/kotlin/ru/vityaman/lms/botalka/core/model/UserTest.kt similarity index 92% rename from botalka/src/test/kotlin/ru/vityaman/lms/botalka/domain/model/UserTest.kt rename to botalka/src/test/kotlin/ru/vityaman/lms/botalka/core/model/UserTest.kt index 3ca6306..7adea01 100644 --- a/botalka/src/test/kotlin/ru/vityaman/lms/botalka/domain/model/UserTest.kt +++ b/botalka/src/test/kotlin/ru/vityaman/lms/botalka/core/model/UserTest.kt @@ -1,4 +1,4 @@ -package ru.vityaman.lms.botalka.domain.model +package ru.vityaman.lms.botalka.core.model import io.kotest.common.runBlocking import kotlinx.coroutines.coroutineScope From 0e23b197a4dd37f75a5f329334c92e8a64f98312 Mon Sep 17 00:00:00 2001 From: vityaman Date: Thu, 25 Apr 2024 07:57:02 +0300 Subject: [PATCH 2/6] #86 Moved package logic to core --- .../lms/botalka/api/http/endpoint/HomeworkHttpApi.kt | 4 ++-- .../lms/botalka/api/http/endpoint/PromotionHttpApi.kt | 2 +- .../lms/botalka/api/http/endpoint/RatingHttpApi.kt | 2 +- .../vityaman/lms/botalka/api/http/endpoint/UserHttpApi.kt | 2 +- .../lms/botalka/{ => core}/logic/HomeworkService.kt | 2 +- .../lms/botalka/{ => core}/logic/PromotionService.kt | 2 +- .../lms/botalka/{ => core}/logic/RatingService.kt | 2 +- .../vityaman/lms/botalka/{ => core}/logic/UserService.kt | 2 +- .../lms/botalka/{ => core}/logic/WorkspaceService.kt | 2 +- .../{ => core}/logic/basic/BasicHomeworkService.kt | 4 ++-- .../{ => core}/logic/basic/BasicPromotionService.kt | 6 +++--- .../botalka/{ => core}/logic/basic/BasicRatingService.kt | 8 ++++---- .../botalka/{ => core}/logic/basic/BasicUserService.kt | 4 ++-- .../{ => core}/logic/basic/BasicWorkspaceService.kt | 6 +++--- .../lms/botalka/{ => core}/logic/facade/WorkspaceChat.kt | 4 ++-- 15 files changed, 26 insertions(+), 26 deletions(-) rename botalka/src/main/kotlin/ru/vityaman/lms/botalka/{ => core}/logic/HomeworkService.kt (81%) rename botalka/src/main/kotlin/ru/vityaman/lms/botalka/{ => core}/logic/PromotionService.kt (86%) rename botalka/src/main/kotlin/ru/vityaman/lms/botalka/{ => core}/logic/RatingService.kt (84%) rename botalka/src/main/kotlin/ru/vityaman/lms/botalka/{ => core}/logic/UserService.kt (83%) rename botalka/src/main/kotlin/ru/vityaman/lms/botalka/{ => core}/logic/WorkspaceService.kt (90%) rename botalka/src/main/kotlin/ru/vityaman/lms/botalka/{ => core}/logic/basic/BasicHomeworkService.kt (83%) rename botalka/src/main/kotlin/ru/vityaman/lms/botalka/{ => core}/logic/basic/BasicPromotionService.kt (90%) rename botalka/src/main/kotlin/ru/vityaman/lms/botalka/{ => core}/logic/basic/BasicRatingService.kt (80%) rename botalka/src/main/kotlin/ru/vityaman/lms/botalka/{ => core}/logic/basic/BasicUserService.kt (88%) rename botalka/src/main/kotlin/ru/vityaman/lms/botalka/{ => core}/logic/basic/BasicWorkspaceService.kt (93%) rename botalka/src/main/kotlin/ru/vityaman/lms/botalka/{ => core}/logic/facade/WorkspaceChat.kt (87%) diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/HomeworkHttpApi.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/HomeworkHttpApi.kt index b80eca1..1ef4642 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/HomeworkHttpApi.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/HomeworkHttpApi.kt @@ -16,8 +16,8 @@ import ru.vityaman.lms.botalka.core.model.Homework import ru.vityaman.lms.botalka.core.model.Student import ru.vityaman.lms.botalka.core.model.User import ru.vityaman.lms.botalka.core.model.Workspace -import ru.vityaman.lms.botalka.logic.HomeworkService -import ru.vityaman.lms.botalka.logic.WorkspaceService +import ru.vityaman.lms.botalka.core.logic.HomeworkService +import ru.vityaman.lms.botalka.core.logic.WorkspaceService @RestController class HomeworkHttpApi( diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/PromotionHttpApi.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/PromotionHttpApi.kt index 2e8b6e1..65a955d 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/PromotionHttpApi.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/PromotionHttpApi.kt @@ -13,7 +13,7 @@ import ru.vityaman.lms.botalka.api.http.server.PromotionRequestPatchMessage import ru.vityaman.lms.botalka.api.http.server.apis.PromotionApi import ru.vityaman.lms.botalka.core.model.PromotionRequest import ru.vityaman.lms.botalka.core.model.User -import ru.vityaman.lms.botalka.logic.PromotionService +import ru.vityaman.lms.botalka.core.logic.PromotionService @RestController class PromotionHttpApi( diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/RatingHttpApi.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/RatingHttpApi.kt index bb7bc0b..a4559b9 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/RatingHttpApi.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/RatingHttpApi.kt @@ -7,7 +7,7 @@ import ru.vityaman.lms.botalka.api.http.server.GetRatingGrades200ResponseMessage import ru.vityaman.lms.botalka.api.http.server.HomeworkGradeMessage import ru.vityaman.lms.botalka.api.http.server.StudentGradesMessage import ru.vityaman.lms.botalka.api.http.server.apis.RatingApi -import ru.vityaman.lms.botalka.logic.RatingService +import ru.vityaman.lms.botalka.core.logic.RatingService typealias RatingGrades = GetRatingGrades200ResponseMessage diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/UserHttpApi.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/UserHttpApi.kt index 135a2a1..f2ec7e7 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/UserHttpApi.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/UserHttpApi.kt @@ -10,7 +10,7 @@ import ru.vityaman.lms.botalka.api.http.server.UserMessage import ru.vityaman.lms.botalka.api.http.server.apis.UserApi import ru.vityaman.lms.botalka.core.exception.orNotFound import ru.vityaman.lms.botalka.core.model.User -import ru.vityaman.lms.botalka.logic.UserService +import ru.vityaman.lms.botalka.core.logic.UserService @RestController class UserHttpApi( diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/HomeworkService.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/HomeworkService.kt similarity index 81% rename from botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/HomeworkService.kt rename to botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/HomeworkService.kt index 2491f69..d57fdcc 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/HomeworkService.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/HomeworkService.kt @@ -1,4 +1,4 @@ -package ru.vityaman.lms.botalka.logic +package ru.vityaman.lms.botalka.core.logic import ru.vityaman.lms.botalka.core.model.Homework diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/PromotionService.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/PromotionService.kt similarity index 86% rename from botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/PromotionService.kt rename to botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/PromotionService.kt index 79144ab..0c1b8c1 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/PromotionService.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/PromotionService.kt @@ -1,4 +1,4 @@ -package ru.vityaman.lms.botalka.logic +package ru.vityaman.lms.botalka.core.logic import ru.vityaman.lms.botalka.core.model.PromotionRequest diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/RatingService.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/RatingService.kt similarity index 84% rename from botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/RatingService.kt rename to botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/RatingService.kt index 990b367..0fea987 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/RatingService.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/RatingService.kt @@ -1,4 +1,4 @@ -package ru.vityaman.lms.botalka.logic +package ru.vityaman.lms.botalka.core.logic import ru.vityaman.lms.botalka.core.model.Homework import ru.vityaman.lms.botalka.core.model.Student diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/UserService.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/UserService.kt similarity index 83% rename from botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/UserService.kt rename to botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/UserService.kt index 20e88f6..4090c75 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/UserService.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/UserService.kt @@ -1,4 +1,4 @@ -package ru.vityaman.lms.botalka.logic +package ru.vityaman.lms.botalka.core.logic import ru.vityaman.lms.botalka.core.model.User diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/WorkspaceService.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/WorkspaceService.kt similarity index 90% rename from botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/WorkspaceService.kt rename to botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/WorkspaceService.kt index a0ab2e9..5dc49c2 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/WorkspaceService.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/WorkspaceService.kt @@ -1,4 +1,4 @@ -package ru.vityaman.lms.botalka.logic +package ru.vityaman.lms.botalka.core.logic import kotlinx.coroutines.flow.Flow import ru.vityaman.lms.botalka.core.model.Homework diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/basic/BasicHomeworkService.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicHomeworkService.kt similarity index 83% rename from botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/basic/BasicHomeworkService.kt rename to botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicHomeworkService.kt index 94856e8..2b9910d 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/basic/BasicHomeworkService.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicHomeworkService.kt @@ -1,9 +1,9 @@ -package ru.vityaman.lms.botalka.logic.basic +package ru.vityaman.lms.botalka.core.logic.basic import org.springframework.beans.factory.annotation.Autowired import org.springframework.stereotype.Service import ru.vityaman.lms.botalka.core.model.Homework -import ru.vityaman.lms.botalka.logic.HomeworkService +import ru.vityaman.lms.botalka.core.logic.HomeworkService import ru.vityaman.lms.botalka.storage.HomeworkStorage @Service diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/basic/BasicPromotionService.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicPromotionService.kt similarity index 90% rename from botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/basic/BasicPromotionService.kt rename to botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicPromotionService.kt index ae306c8..cd5d676 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/basic/BasicPromotionService.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicPromotionService.kt @@ -1,4 +1,4 @@ -package ru.vityaman.lms.botalka.logic.basic +package ru.vityaman.lms.botalka.core.logic.basic import org.springframework.beans.factory.annotation.Autowired import org.springframework.stereotype.Service @@ -6,8 +6,8 @@ import org.springframework.transaction.annotation.Transactional import ru.vityaman.lms.botalka.core.exception.PromotionRequestResolvedException import ru.vityaman.lms.botalka.core.exception.orNotFound import ru.vityaman.lms.botalka.core.model.PromotionRequest -import ru.vityaman.lms.botalka.logic.PromotionService -import ru.vityaman.lms.botalka.logic.UserService +import ru.vityaman.lms.botalka.core.logic.PromotionService +import ru.vityaman.lms.botalka.core.logic.UserService import ru.vityaman.lms.botalka.storage.PromotionStorage @Service diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/basic/BasicRatingService.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicRatingService.kt similarity index 80% rename from botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/basic/BasicRatingService.kt rename to botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicRatingService.kt index 8b64c74..6c31445 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/basic/BasicRatingService.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicRatingService.kt @@ -1,4 +1,4 @@ -package ru.vityaman.lms.botalka.logic.basic +package ru.vityaman.lms.botalka.core.logic.basic import kotlinx.coroutines.coroutineScope import kotlinx.coroutines.flow.toList @@ -6,9 +6,9 @@ import org.springframework.beans.factory.annotation.Autowired import org.springframework.stereotype.Service import ru.vityaman.lms.botalka.core.model.Homework import ru.vityaman.lms.botalka.core.model.Student -import ru.vityaman.lms.botalka.logic.Grades -import ru.vityaman.lms.botalka.logic.RatingService -import ru.vityaman.lms.botalka.logic.WorkspaceService +import ru.vityaman.lms.botalka.core.logic.Grades +import ru.vityaman.lms.botalka.core.logic.RatingService +import ru.vityaman.lms.botalka.core.logic.WorkspaceService @Service class BasicRatingService( diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/basic/BasicUserService.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicUserService.kt similarity index 88% rename from botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/basic/BasicUserService.kt rename to botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicUserService.kt index 35a8421..7451d9e 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/basic/BasicUserService.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicUserService.kt @@ -1,11 +1,11 @@ -package ru.vityaman.lms.botalka.logic.basic +package ru.vityaman.lms.botalka.core.logic.basic import org.springframework.beans.factory.annotation.Autowired import org.springframework.stereotype.Service import ru.vityaman.lms.botalka.core.model.Student import ru.vityaman.lms.botalka.core.model.Teacher import ru.vityaman.lms.botalka.core.model.User -import ru.vityaman.lms.botalka.logic.UserService +import ru.vityaman.lms.botalka.core.logic.UserService import ru.vityaman.lms.botalka.storage.UserStorage @Service diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/basic/BasicWorkspaceService.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicWorkspaceService.kt similarity index 93% rename from botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/basic/BasicWorkspaceService.kt rename to botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicWorkspaceService.kt index c1713ce..2aac735 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/basic/BasicWorkspaceService.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicWorkspaceService.kt @@ -1,4 +1,4 @@ -package ru.vityaman.lms.botalka.logic.basic +package ru.vityaman.lms.botalka.core.logic.basic import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.filterNotNull @@ -10,8 +10,8 @@ import ru.vityaman.lms.botalka.core.exception.DeadlinePassedException import ru.vityaman.lms.botalka.core.exception.orNotFound import ru.vityaman.lms.botalka.core.model.Homework import ru.vityaman.lms.botalka.core.model.Workspace -import ru.vityaman.lms.botalka.logic.HomeworkService -import ru.vityaman.lms.botalka.logic.WorkspaceService +import ru.vityaman.lms.botalka.core.logic.HomeworkService +import ru.vityaman.lms.botalka.core.logic.WorkspaceService import ru.vityaman.lms.botalka.storage.WorkspaceStorage import java.time.Clock import java.time.OffsetDateTime diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/facade/WorkspaceChat.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/facade/WorkspaceChat.kt similarity index 87% rename from botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/facade/WorkspaceChat.kt rename to botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/facade/WorkspaceChat.kt index 6cd7052..d869d79 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/logic/facade/WorkspaceChat.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/facade/WorkspaceChat.kt @@ -1,8 +1,8 @@ -package ru.vityaman.lms.botalka.logic.facade +package ru.vityaman.lms.botalka.core.logic.facade import kotlinx.coroutines.flow.Flow import ru.vityaman.lms.botalka.core.model.Workspace -import ru.vityaman.lms.botalka.logic.WorkspaceService +import ru.vityaman.lms.botalka.core.logic.WorkspaceService class WorkspaceChat( private val id: Workspace.Id, From ac13ba9f491dd2370e9d74cac27cdbeb9afaaa2a Mon Sep 17 00:00:00 2001 From: vityaman Date: Thu, 25 Apr 2024 08:00:40 +0300 Subject: [PATCH 3/6] #86 Moved storage interfaces to core --- .../lms/botalka/core/logic/basic/BasicHomeworkService.kt | 2 +- .../lms/botalka/core/logic/basic/BasicPromotionService.kt | 2 +- .../vityaman/lms/botalka/core/logic/basic/BasicUserService.kt | 2 +- .../lms/botalka/core/logic/basic/BasicWorkspaceService.kt | 2 +- .../vityaman/lms/botalka/{ => core}/storage/HomeworkStorage.kt | 2 +- .../vityaman/lms/botalka/{ => core}/storage/PromotionStorage.kt | 2 +- .../ru/vityaman/lms/botalka/{ => core}/storage/UserStorage.kt | 2 +- .../vityaman/lms/botalka/{ => core}/storage/WorkspaceStorage.kt | 2 +- .../ru/vityaman/lms/botalka/storage/jooq/JooqHomeworkStorage.kt | 2 +- .../vityaman/lms/botalka/storage/jooq/JooqPromotionStorage.kt | 2 +- .../ru/vityaman/lms/botalka/storage/jooq/JooqUserStorage.kt | 2 +- .../vityaman/lms/botalka/storage/jooq/JooqWorkspaceStorage.kt | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) rename botalka/src/main/kotlin/ru/vityaman/lms/botalka/{ => core}/storage/HomeworkStorage.kt (81%) rename botalka/src/main/kotlin/ru/vityaman/lms/botalka/{ => core}/storage/PromotionStorage.kt (88%) rename botalka/src/main/kotlin/ru/vityaman/lms/botalka/{ => core}/storage/UserStorage.kt (88%) rename botalka/src/main/kotlin/ru/vityaman/lms/botalka/{ => core}/storage/WorkspaceStorage.kt (92%) diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicHomeworkService.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicHomeworkService.kt index 2b9910d..b029467 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicHomeworkService.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicHomeworkService.kt @@ -4,7 +4,7 @@ import org.springframework.beans.factory.annotation.Autowired import org.springframework.stereotype.Service import ru.vityaman.lms.botalka.core.model.Homework import ru.vityaman.lms.botalka.core.logic.HomeworkService -import ru.vityaman.lms.botalka.storage.HomeworkStorage +import ru.vityaman.lms.botalka.core.storage.HomeworkStorage @Service class BasicHomeworkService( diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicPromotionService.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicPromotionService.kt index cd5d676..b6e4080 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicPromotionService.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicPromotionService.kt @@ -8,7 +8,7 @@ import ru.vityaman.lms.botalka.core.exception.orNotFound import ru.vityaman.lms.botalka.core.model.PromotionRequest import ru.vityaman.lms.botalka.core.logic.PromotionService import ru.vityaman.lms.botalka.core.logic.UserService -import ru.vityaman.lms.botalka.storage.PromotionStorage +import ru.vityaman.lms.botalka.core.storage.PromotionStorage @Service class BasicPromotionService( diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicUserService.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicUserService.kt index 7451d9e..0a28223 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicUserService.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicUserService.kt @@ -6,7 +6,7 @@ import ru.vityaman.lms.botalka.core.model.Student import ru.vityaman.lms.botalka.core.model.Teacher import ru.vityaman.lms.botalka.core.model.User import ru.vityaman.lms.botalka.core.logic.UserService -import ru.vityaman.lms.botalka.storage.UserStorage +import ru.vityaman.lms.botalka.core.storage.UserStorage @Service class BasicUserService( diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicWorkspaceService.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicWorkspaceService.kt index 2aac735..636fb8e 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicWorkspaceService.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicWorkspaceService.kt @@ -12,7 +12,7 @@ import ru.vityaman.lms.botalka.core.model.Homework import ru.vityaman.lms.botalka.core.model.Workspace import ru.vityaman.lms.botalka.core.logic.HomeworkService import ru.vityaman.lms.botalka.core.logic.WorkspaceService -import ru.vityaman.lms.botalka.storage.WorkspaceStorage +import ru.vityaman.lms.botalka.core.storage.WorkspaceStorage import java.time.Clock import java.time.OffsetDateTime diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/HomeworkStorage.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/storage/HomeworkStorage.kt similarity index 81% rename from botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/HomeworkStorage.kt rename to botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/storage/HomeworkStorage.kt index a657305..e770dcb 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/HomeworkStorage.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/storage/HomeworkStorage.kt @@ -1,4 +1,4 @@ -package ru.vityaman.lms.botalka.storage +package ru.vityaman.lms.botalka.core.storage import ru.vityaman.lms.botalka.core.model.Homework diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/PromotionStorage.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/storage/PromotionStorage.kt similarity index 88% rename from botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/PromotionStorage.kt rename to botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/storage/PromotionStorage.kt index 8b6c4b1..9055dd3 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/PromotionStorage.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/storage/PromotionStorage.kt @@ -1,4 +1,4 @@ -package ru.vityaman.lms.botalka.storage +package ru.vityaman.lms.botalka.core.storage import ru.vityaman.lms.botalka.core.model.PromotionRequest diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/UserStorage.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/storage/UserStorage.kt similarity index 88% rename from botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/UserStorage.kt rename to botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/storage/UserStorage.kt index 5c20b97..314748b 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/UserStorage.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/storage/UserStorage.kt @@ -1,4 +1,4 @@ -package ru.vityaman.lms.botalka.storage +package ru.vityaman.lms.botalka.core.storage import ru.vityaman.lms.botalka.core.model.Student import ru.vityaman.lms.botalka.core.model.Teacher diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/WorkspaceStorage.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/storage/WorkspaceStorage.kt similarity index 92% rename from botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/WorkspaceStorage.kt rename to botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/storage/WorkspaceStorage.kt index 6ae6c88..3fb347c 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/WorkspaceStorage.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/storage/WorkspaceStorage.kt @@ -1,4 +1,4 @@ -package ru.vityaman.lms.botalka.storage +package ru.vityaman.lms.botalka.core.storage import kotlinx.coroutines.flow.Flow import ru.vityaman.lms.botalka.core.model.Workspace diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/JooqHomeworkStorage.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/JooqHomeworkStorage.kt index 0d71c96..1b9d802 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/JooqHomeworkStorage.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/JooqHomeworkStorage.kt @@ -5,7 +5,7 @@ import kotlinx.coroutines.reactor.awaitSingleOrNull import org.springframework.beans.factory.annotation.Autowired import org.springframework.stereotype.Repository import ru.vityaman.lms.botalka.core.model.Homework -import ru.vityaman.lms.botalka.storage.HomeworkStorage +import ru.vityaman.lms.botalka.core.storage.HomeworkStorage import ru.vityaman.lms.botalka.storage.jooq.entity.toModel import ru.vityaman.lms.botalka.storage.jooq.tables.references.HOMEWORK import ru.vityaman.lms.botalka.storage.jooq.util.JooqDatabase diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/JooqPromotionStorage.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/JooqPromotionStorage.kt index ba8efd8..95e371d 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/JooqPromotionStorage.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/JooqPromotionStorage.kt @@ -8,7 +8,7 @@ import reactor.kotlin.core.publisher.toMono import ru.vityaman.lms.botalka.core.exception.AlreadyAskedPromotionException import ru.vityaman.lms.botalka.core.exception.NotFoundException import ru.vityaman.lms.botalka.core.model.PromotionRequest -import ru.vityaman.lms.botalka.storage.PromotionStorage +import ru.vityaman.lms.botalka.core.storage.PromotionStorage import ru.vityaman.lms.botalka.storage.jooq.entity.toModel import ru.vityaman.lms.botalka.storage.jooq.entity.toRecord import ru.vityaman.lms.botalka.storage.jooq.tables.references.PROMOTION_REQUEST diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/JooqUserStorage.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/JooqUserStorage.kt index 20b2b3d..0ac65f6 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/JooqUserStorage.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/JooqUserStorage.kt @@ -9,7 +9,7 @@ import ru.vityaman.lms.botalka.core.exception.UniqueViolationException import ru.vityaman.lms.botalka.core.model.Student import ru.vityaman.lms.botalka.core.model.Teacher import ru.vityaman.lms.botalka.core.model.User -import ru.vityaman.lms.botalka.storage.UserStorage +import ru.vityaman.lms.botalka.core.storage.UserStorage import ru.vityaman.lms.botalka.storage.jooq.entity.toModel import ru.vityaman.lms.botalka.storage.jooq.tables.references.STUDENT import ru.vityaman.lms.botalka.storage.jooq.tables.references.TEACHER diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/JooqWorkspaceStorage.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/JooqWorkspaceStorage.kt index 9a18208..c03b38c 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/JooqWorkspaceStorage.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/JooqWorkspaceStorage.kt @@ -12,7 +12,7 @@ import ru.vityaman.lms.botalka.core.model.Homework import ru.vityaman.lms.botalka.core.model.Student import ru.vityaman.lms.botalka.core.model.User import ru.vityaman.lms.botalka.core.model.Workspace -import ru.vityaman.lms.botalka.storage.WorkspaceStorage +import ru.vityaman.lms.botalka.core.storage.WorkspaceStorage import ru.vityaman.lms.botalka.storage.jooq.entity.toModel import ru.vityaman.lms.botalka.storage.jooq.tables.references.HOMEWORK_FEEDBACK import ru.vityaman.lms.botalka.storage.jooq.tables.references.HOMEWORK_SUBMISSION From 1bcff6732310636d9b7b0b7cdf0b5c467ffdb913 Mon Sep 17 00:00:00 2001 From: vityaman Date: Thu, 25 Apr 2024 08:02:56 +0300 Subject: [PATCH 4/6] #86 Fixed codestyle --- .../vityaman/lms/botalka/api/http/endpoint/HomeworkHttpApi.kt | 4 ++-- .../lms/botalka/api/http/endpoint/PromotionHttpApi.kt | 2 +- .../ru/vityaman/lms/botalka/api/http/endpoint/UserHttpApi.kt | 2 +- .../lms/botalka/core/logic/basic/BasicHomeworkService.kt | 2 +- .../lms/botalka/core/logic/basic/BasicPromotionService.kt | 2 +- .../lms/botalka/core/logic/basic/BasicRatingService.kt | 4 ++-- .../vityaman/lms/botalka/core/logic/basic/BasicUserService.kt | 2 +- .../lms/botalka/core/logic/basic/BasicWorkspaceService.kt | 4 ++-- .../vityaman/lms/botalka/core/logic/facade/WorkspaceChat.kt | 2 +- 9 files changed, 12 insertions(+), 12 deletions(-) diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/HomeworkHttpApi.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/HomeworkHttpApi.kt index 1ef4642..c99042a 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/HomeworkHttpApi.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/HomeworkHttpApi.kt @@ -12,12 +12,12 @@ import ru.vityaman.lms.botalka.api.http.server.HomeworkMessage import ru.vityaman.lms.botalka.api.http.server.WorkspaceEventDraftMessage import ru.vityaman.lms.botalka.api.http.server.WorkspaceEventMessage import ru.vityaman.lms.botalka.api.http.server.apis.HomeworkApi +import ru.vityaman.lms.botalka.core.logic.HomeworkService +import ru.vityaman.lms.botalka.core.logic.WorkspaceService import ru.vityaman.lms.botalka.core.model.Homework import ru.vityaman.lms.botalka.core.model.Student import ru.vityaman.lms.botalka.core.model.User import ru.vityaman.lms.botalka.core.model.Workspace -import ru.vityaman.lms.botalka.core.logic.HomeworkService -import ru.vityaman.lms.botalka.core.logic.WorkspaceService @RestController class HomeworkHttpApi( diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/PromotionHttpApi.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/PromotionHttpApi.kt index 65a955d..98801e9 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/PromotionHttpApi.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/PromotionHttpApi.kt @@ -11,9 +11,9 @@ import ru.vityaman.lms.botalka.api.http.server.PromotionRequestDraftMessage import ru.vityaman.lms.botalka.api.http.server.PromotionRequestMessage import ru.vityaman.lms.botalka.api.http.server.PromotionRequestPatchMessage import ru.vityaman.lms.botalka.api.http.server.apis.PromotionApi +import ru.vityaman.lms.botalka.core.logic.PromotionService import ru.vityaman.lms.botalka.core.model.PromotionRequest import ru.vityaman.lms.botalka.core.model.User -import ru.vityaman.lms.botalka.core.logic.PromotionService @RestController class PromotionHttpApi( diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/UserHttpApi.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/UserHttpApi.kt index f2ec7e7..765fb21 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/UserHttpApi.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/UserHttpApi.kt @@ -9,8 +9,8 @@ import ru.vityaman.lms.botalka.api.http.server.UserDraftMessage import ru.vityaman.lms.botalka.api.http.server.UserMessage import ru.vityaman.lms.botalka.api.http.server.apis.UserApi import ru.vityaman.lms.botalka.core.exception.orNotFound -import ru.vityaman.lms.botalka.core.model.User import ru.vityaman.lms.botalka.core.logic.UserService +import ru.vityaman.lms.botalka.core.model.User @RestController class UserHttpApi( diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicHomeworkService.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicHomeworkService.kt index b029467..95e39a3 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicHomeworkService.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicHomeworkService.kt @@ -2,8 +2,8 @@ package ru.vityaman.lms.botalka.core.logic.basic import org.springframework.beans.factory.annotation.Autowired import org.springframework.stereotype.Service -import ru.vityaman.lms.botalka.core.model.Homework import ru.vityaman.lms.botalka.core.logic.HomeworkService +import ru.vityaman.lms.botalka.core.model.Homework import ru.vityaman.lms.botalka.core.storage.HomeworkStorage @Service diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicPromotionService.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicPromotionService.kt index b6e4080..56f7f14 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicPromotionService.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicPromotionService.kt @@ -5,9 +5,9 @@ import org.springframework.stereotype.Service import org.springframework.transaction.annotation.Transactional import ru.vityaman.lms.botalka.core.exception.PromotionRequestResolvedException import ru.vityaman.lms.botalka.core.exception.orNotFound -import ru.vityaman.lms.botalka.core.model.PromotionRequest import ru.vityaman.lms.botalka.core.logic.PromotionService import ru.vityaman.lms.botalka.core.logic.UserService +import ru.vityaman.lms.botalka.core.model.PromotionRequest import ru.vityaman.lms.botalka.core.storage.PromotionStorage @Service diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicRatingService.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicRatingService.kt index 6c31445..db26291 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicRatingService.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicRatingService.kt @@ -4,11 +4,11 @@ import kotlinx.coroutines.coroutineScope import kotlinx.coroutines.flow.toList import org.springframework.beans.factory.annotation.Autowired import org.springframework.stereotype.Service -import ru.vityaman.lms.botalka.core.model.Homework -import ru.vityaman.lms.botalka.core.model.Student import ru.vityaman.lms.botalka.core.logic.Grades import ru.vityaman.lms.botalka.core.logic.RatingService import ru.vityaman.lms.botalka.core.logic.WorkspaceService +import ru.vityaman.lms.botalka.core.model.Homework +import ru.vityaman.lms.botalka.core.model.Student @Service class BasicRatingService( diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicUserService.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicUserService.kt index 0a28223..c7be98c 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicUserService.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicUserService.kt @@ -2,10 +2,10 @@ package ru.vityaman.lms.botalka.core.logic.basic import org.springframework.beans.factory.annotation.Autowired import org.springframework.stereotype.Service +import ru.vityaman.lms.botalka.core.logic.UserService import ru.vityaman.lms.botalka.core.model.Student import ru.vityaman.lms.botalka.core.model.Teacher import ru.vityaman.lms.botalka.core.model.User -import ru.vityaman.lms.botalka.core.logic.UserService import ru.vityaman.lms.botalka.core.storage.UserStorage @Service diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicWorkspaceService.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicWorkspaceService.kt index 636fb8e..244cf62 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicWorkspaceService.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicWorkspaceService.kt @@ -8,10 +8,10 @@ import org.springframework.beans.factory.annotation.Autowired import org.springframework.stereotype.Service import ru.vityaman.lms.botalka.core.exception.DeadlinePassedException import ru.vityaman.lms.botalka.core.exception.orNotFound -import ru.vityaman.lms.botalka.core.model.Homework -import ru.vityaman.lms.botalka.core.model.Workspace import ru.vityaman.lms.botalka.core.logic.HomeworkService import ru.vityaman.lms.botalka.core.logic.WorkspaceService +import ru.vityaman.lms.botalka.core.model.Homework +import ru.vityaman.lms.botalka.core.model.Workspace import ru.vityaman.lms.botalka.core.storage.WorkspaceStorage import java.time.Clock import java.time.OffsetDateTime diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/facade/WorkspaceChat.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/facade/WorkspaceChat.kt index d869d79..fadd035 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/facade/WorkspaceChat.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/facade/WorkspaceChat.kt @@ -1,8 +1,8 @@ package ru.vityaman.lms.botalka.core.logic.facade import kotlinx.coroutines.flow.Flow -import ru.vityaman.lms.botalka.core.model.Workspace import ru.vityaman.lms.botalka.core.logic.WorkspaceService +import ru.vityaman.lms.botalka.core.model.Workspace class WorkspaceChat( private val id: Workspace.Id, From a044719a299956259f587d5c3a513dd334654cba Mon Sep 17 00:00:00 2001 From: vityaman Date: Thu, 25 Apr 2024 09:09:35 +0300 Subject: [PATCH 5/6] #86 Removed spring from the core package --- botalka/build.gradle.kts | 6 ++-- .../{ => app/spring}/BotalkaApplication.kt | 2 +- .../api/http/endpoint/HomeworkHttpApi.kt | 16 +++++----- .../api/http/endpoint/MonitoringHttpApi.kt | 4 +-- .../api/http/endpoint/PromotionHttpApi.kt | 16 +++++----- .../api/http/endpoint/RatingHttpApi.kt | 10 +++---- .../spring}/api/http/endpoint/UserHttpApi.kt | 12 ++++---- .../api/http/error/DomainExceptionCodes.kt | 4 +-- .../api/http/error/DomainExceptionMapping.kt | 2 +- .../api/http/error/DriverExceptionMapping.kt | 4 +-- .../error/InvalidPromotionRequestStatus.kt | 2 +- .../api/http/message/HomeworkMapping.kt | 6 ++-- .../api/http/message/PromotionMapping.kt | 6 ++-- .../spring}/api/http/message/UserMapping.kt | 8 ++--- .../http/message/WorkspaceMappingToMessage.kt | 12 ++++---- .../http/message/WorkspaceMappingToModel.kt | 10 +++---- .../app/spring/logic/SpringHomeworkService.kt | 11 +++++++ .../spring/logic/SpringPromotionService.kt | 13 ++++++++ .../app/spring/logic/SpringRatingService.kt | 11 +++++++ .../app/spring/logic/SpringUserService.kt | 11 +++++++ .../spring/logic/SpringWorkspaceService.kt | 15 ++++++++++ .../spring/storage}/JooqConfig.kt | 2 +- .../spring/storage}/R2dbcConfig.kt | 2 +- .../spring/storage/SpringDatabase.kt} | 18 +++++++---- .../spring/storage/SpringHomeworkStorage.kt | 11 +++++++ .../spring/storage/SpringPromotionStorage.kt | 11 +++++++ .../app/spring/storage/SpringUserStorage.kt | 11 +++++++ .../spring/storage/SpringWorkspaceStorage.kt | 11 +++++++ .../core/logic/basic/BasicHomeworkService.kt | 5 +--- .../core/logic/basic/BasicPromotionService.kt | 7 ++--- .../core/logic/basic/BasicRatingService.kt | 5 +--- .../core/logic/basic/BasicUserService.kt | 5 +--- .../core/logic/basic/BasicWorkspaceService.kt | 9 ++---- .../storage/jooq/JooqHomeworkStorage.kt | 7 ++--- .../storage/jooq/JooqPromotionStorage.kt | 7 ++--- .../botalka/storage/jooq/JooqUserStorage.kt | 7 ++--- .../storage/jooq/JooqWorkspaceStorage.kt | 7 ++--- .../storage/jooq/util/JooqReactiveDatabase.kt | 11 +++++++ .../spring}/BotalkaApplicationTests.kt | 2 +- .../{ => app/spring}/BotalkaTestSuite.kt | 4 +-- .../spring}/api/http/client/ApiClientSet.kt | 10 +++---- .../api/http/endpoint/HomeworkApiTest.kt | 8 ++--- .../api/http/endpoint/MonitoringApiTest.kt | 6 ++-- .../api/http/endpoint/PromoteApiTest.kt | 18 +++++------ .../api/http/endpoint/RatingApiTest.kt | 28 ++++++++--------- .../spring}/api/http/endpoint/UserApiTest.kt | 8 ++--- .../api/http/endpoint/WorkspaceApiTest.kt | 30 +++++++++---------- .../{ => app/spring}/commons/MergeTest.kt | 3 +- .../{ => app/spring}/core/model/UserTest.kt | 3 +- .../botalka/{ => app/spring}/env/FakeClock.kt | 2 +- .../spring}/storage/DatabaseContainer.kt | 2 +- .../storage/DatabaseContainerInitializer.kt | 2 +- 52 files changed, 270 insertions(+), 173 deletions(-) rename botalka/src/main/kotlin/ru/vityaman/lms/botalka/{ => app/spring}/BotalkaApplication.kt (91%) rename botalka/src/main/kotlin/ru/vityaman/lms/botalka/{ => app/spring}/api/http/endpoint/HomeworkHttpApi.kt (77%) rename botalka/src/main/kotlin/ru/vityaman/lms/botalka/{ => app/spring}/api/http/endpoint/MonitoringHttpApi.kt (66%) rename botalka/src/main/kotlin/ru/vityaman/lms/botalka/{ => app/spring}/api/http/endpoint/PromotionHttpApi.kt (75%) rename botalka/src/main/kotlin/ru/vityaman/lms/botalka/{ => app/spring}/api/http/endpoint/RatingHttpApi.kt (75%) rename botalka/src/main/kotlin/ru/vityaman/lms/botalka/{ => app/spring}/api/http/endpoint/UserHttpApi.kt (70%) rename botalka/src/main/kotlin/ru/vityaman/lms/botalka/{ => app/spring}/api/http/error/DomainExceptionCodes.kt (90%) rename botalka/src/main/kotlin/ru/vityaman/lms/botalka/{ => app/spring}/api/http/error/DomainExceptionMapping.kt (86%) rename botalka/src/main/kotlin/ru/vityaman/lms/botalka/{ => app/spring}/api/http/error/DriverExceptionMapping.kt (86%) rename botalka/src/main/kotlin/ru/vityaman/lms/botalka/{ => app/spring}/api/http/error/InvalidPromotionRequestStatus.kt (66%) rename botalka/src/main/kotlin/ru/vityaman/lms/botalka/{ => app/spring}/api/http/message/HomeworkMapping.kt (83%) rename botalka/src/main/kotlin/ru/vityaman/lms/botalka/{ => app/spring}/api/http/message/PromotionMapping.kt (79%) rename botalka/src/main/kotlin/ru/vityaman/lms/botalka/{ => app/spring}/api/http/message/UserMapping.kt (78%) rename botalka/src/main/kotlin/ru/vityaman/lms/botalka/{ => app/spring}/api/http/message/WorkspaceMappingToMessage.kt (74%) rename botalka/src/main/kotlin/ru/vityaman/lms/botalka/{ => app/spring}/api/http/message/WorkspaceMappingToModel.kt (76%) create mode 100644 botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/logic/SpringHomeworkService.kt create mode 100644 botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/logic/SpringPromotionService.kt create mode 100644 botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/logic/SpringRatingService.kt create mode 100644 botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/logic/SpringUserService.kt create mode 100644 botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/logic/SpringWorkspaceService.kt rename botalka/src/main/kotlin/ru/vityaman/lms/botalka/{storage/jooq/config => app/spring/storage}/JooqConfig.kt (92%) rename botalka/src/main/kotlin/ru/vityaman/lms/botalka/{storage/jooq/config => app/spring/storage}/R2dbcConfig.kt (77%) rename botalka/src/main/kotlin/ru/vityaman/lms/botalka/{storage/jooq/util/JooqDatabase.kt => app/spring/storage/SpringDatabase.kt} (65%) create mode 100644 botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/storage/SpringHomeworkStorage.kt create mode 100644 botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/storage/SpringPromotionStorage.kt create mode 100644 botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/storage/SpringUserStorage.kt create mode 100644 botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/storage/SpringWorkspaceStorage.kt create mode 100644 botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/util/JooqReactiveDatabase.kt rename botalka/src/test/kotlin/ru/vityaman/lms/botalka/{ => app/spring}/BotalkaApplicationTests.kt (82%) rename botalka/src/test/kotlin/ru/vityaman/lms/botalka/{ => app/spring}/BotalkaTestSuite.kt (90%) rename botalka/src/test/kotlin/ru/vityaman/lms/botalka/{ => app/spring}/api/http/client/ApiClientSet.kt (52%) rename botalka/src/test/kotlin/ru/vityaman/lms/botalka/{ => app/spring}/api/http/endpoint/HomeworkApiTest.kt (94%) rename botalka/src/test/kotlin/ru/vityaman/lms/botalka/{ => app/spring}/api/http/endpoint/MonitoringApiTest.kt (70%) rename botalka/src/test/kotlin/ru/vityaman/lms/botalka/{ => app/spring}/api/http/endpoint/PromoteApiTest.kt (84%) rename botalka/src/test/kotlin/ru/vityaman/lms/botalka/{ => app/spring}/api/http/endpoint/RatingApiTest.kt (80%) rename botalka/src/test/kotlin/ru/vityaman/lms/botalka/{ => app/spring}/api/http/endpoint/UserApiTest.kt (89%) rename botalka/src/test/kotlin/ru/vityaman/lms/botalka/{ => app/spring}/api/http/endpoint/WorkspaceApiTest.kt (80%) rename botalka/src/test/kotlin/ru/vityaman/lms/botalka/{ => app/spring}/commons/MergeTest.kt (92%) rename botalka/src/test/kotlin/ru/vityaman/lms/botalka/{ => app/spring}/core/model/UserTest.kt (85%) rename botalka/src/test/kotlin/ru/vityaman/lms/botalka/{ => app/spring}/env/FakeClock.kt (93%) rename botalka/src/test/kotlin/ru/vityaman/lms/botalka/{ => app/spring}/storage/DatabaseContainer.kt (95%) rename botalka/src/test/kotlin/ru/vityaman/lms/botalka/{ => app/spring}/storage/DatabaseContainerInitializer.kt (92%) diff --git a/botalka/build.gradle.kts b/botalka/build.gradle.kts index a5d6980..926ce3c 100644 --- a/botalka/build.gradle.kts +++ b/botalka/build.gradle.kts @@ -26,8 +26,8 @@ jooq { } } -val oapiServerPackageName = "$basePackage.api.http.server" -val oapiClientPackageName = "$basePackage.api.http.client" +val oapiServerPackageName = "$basePackage.app.spring.api.http.server" +val oapiClientPackageName = "$basePackage.app.spring.api.http.client" tasks.named("generateServer", OpenAPIGenerateTask::class) { packageName = oapiServerPackageName @@ -43,7 +43,7 @@ koverReport { filters { excludes { classes( - "$basePackage.BotalkaApplicationKt", + "$basePackage.app.spring.BotalkaApplicationKt", "$oapiServerPackageName.**", "$oapiClientPackageName.**", "$jooqPackageName.**", diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/BotalkaApplication.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/BotalkaApplication.kt similarity index 91% rename from botalka/src/main/kotlin/ru/vityaman/lms/botalka/BotalkaApplication.kt rename to botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/BotalkaApplication.kt index dcff590..d9acc6f 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/BotalkaApplication.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/BotalkaApplication.kt @@ -1,4 +1,4 @@ -package ru.vityaman.lms.botalka +package ru.vityaman.lms.botalka.app.spring import org.springframework.boot.autoconfigure.SpringBootApplication import org.springframework.boot.autoconfigure.jooq.JooqAutoConfiguration diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/HomeworkHttpApi.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/endpoint/HomeworkHttpApi.kt similarity index 77% rename from botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/HomeworkHttpApi.kt rename to botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/endpoint/HomeworkHttpApi.kt index c99042a..146111c 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/HomeworkHttpApi.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/endpoint/HomeworkHttpApi.kt @@ -1,17 +1,17 @@ -package ru.vityaman.lms.botalka.api.http.endpoint +package ru.vityaman.lms.botalka.app.spring.api.http.endpoint import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.map import org.springframework.beans.factory.annotation.Autowired import org.springframework.http.ResponseEntity import org.springframework.web.bind.annotation.RestController -import ru.vityaman.lms.botalka.api.http.message.toMessage -import ru.vityaman.lms.botalka.api.http.message.toModel -import ru.vityaman.lms.botalka.api.http.server.HomeworkDraftMessage -import ru.vityaman.lms.botalka.api.http.server.HomeworkMessage -import ru.vityaman.lms.botalka.api.http.server.WorkspaceEventDraftMessage -import ru.vityaman.lms.botalka.api.http.server.WorkspaceEventMessage -import ru.vityaman.lms.botalka.api.http.server.apis.HomeworkApi +import ru.vityaman.lms.botalka.app.spring.api.http.message.toMessage +import ru.vityaman.lms.botalka.app.spring.api.http.message.toModel +import ru.vityaman.lms.botalka.app.spring.api.http.server.HomeworkDraftMessage +import ru.vityaman.lms.botalka.app.spring.api.http.server.HomeworkMessage +import ru.vityaman.lms.botalka.app.spring.api.http.server.WorkspaceEventDraftMessage +import ru.vityaman.lms.botalka.app.spring.api.http.server.WorkspaceEventMessage +import ru.vityaman.lms.botalka.app.spring.api.http.server.apis.HomeworkApi import ru.vityaman.lms.botalka.core.logic.HomeworkService import ru.vityaman.lms.botalka.core.logic.WorkspaceService import ru.vityaman.lms.botalka.core.model.Homework diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/MonitoringHttpApi.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/endpoint/MonitoringHttpApi.kt similarity index 66% rename from botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/MonitoringHttpApi.kt rename to botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/endpoint/MonitoringHttpApi.kt index 86de03f..9cdc71c 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/MonitoringHttpApi.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/endpoint/MonitoringHttpApi.kt @@ -1,8 +1,8 @@ -package ru.vityaman.lms.botalka.api.http.endpoint +package ru.vityaman.lms.botalka.app.spring.api.http.endpoint import org.springframework.http.ResponseEntity import org.springframework.web.bind.annotation.RestController -import ru.vityaman.lms.botalka.api.http.server.apis.MonitoringApi +import ru.vityaman.lms.botalka.app.spring.api.http.server.apis.MonitoringApi @RestController class MonitoringHttpApi : MonitoringApi { diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/PromotionHttpApi.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/endpoint/PromotionHttpApi.kt similarity index 75% rename from botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/PromotionHttpApi.kt rename to botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/endpoint/PromotionHttpApi.kt index 98801e9..b007c3f 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/PromotionHttpApi.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/endpoint/PromotionHttpApi.kt @@ -1,16 +1,16 @@ -package ru.vityaman.lms.botalka.api.http.endpoint +package ru.vityaman.lms.botalka.app.spring.api.http.endpoint import org.springframework.beans.factory.annotation.Autowired import org.springframework.http.HttpStatus import org.springframework.http.ResponseEntity import org.springframework.web.bind.annotation.RestController -import ru.vityaman.lms.botalka.api.http.error.InvalidPromotionRequestStatus -import ru.vityaman.lms.botalka.api.http.message.toMessage -import ru.vityaman.lms.botalka.api.http.message.toModel -import ru.vityaman.lms.botalka.api.http.server.PromotionRequestDraftMessage -import ru.vityaman.lms.botalka.api.http.server.PromotionRequestMessage -import ru.vityaman.lms.botalka.api.http.server.PromotionRequestPatchMessage -import ru.vityaman.lms.botalka.api.http.server.apis.PromotionApi +import ru.vityaman.lms.botalka.app.spring.api.http.error.InvalidPromotionRequestStatus +import ru.vityaman.lms.botalka.app.spring.api.http.message.toMessage +import ru.vityaman.lms.botalka.app.spring.api.http.message.toModel +import ru.vityaman.lms.botalka.app.spring.api.http.server.PromotionRequestDraftMessage +import ru.vityaman.lms.botalka.app.spring.api.http.server.PromotionRequestMessage +import ru.vityaman.lms.botalka.app.spring.api.http.server.PromotionRequestPatchMessage +import ru.vityaman.lms.botalka.app.spring.api.http.server.apis.PromotionApi import ru.vityaman.lms.botalka.core.logic.PromotionService import ru.vityaman.lms.botalka.core.model.PromotionRequest import ru.vityaman.lms.botalka.core.model.User diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/RatingHttpApi.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/endpoint/RatingHttpApi.kt similarity index 75% rename from botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/RatingHttpApi.kt rename to botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/endpoint/RatingHttpApi.kt index a4559b9..3e7656f 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/RatingHttpApi.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/endpoint/RatingHttpApi.kt @@ -1,12 +1,12 @@ -package ru.vityaman.lms.botalka.api.http.endpoint +package ru.vityaman.lms.botalka.app.spring.api.http.endpoint import org.springframework.beans.factory.annotation.Autowired import org.springframework.http.ResponseEntity import org.springframework.web.bind.annotation.RestController -import ru.vityaman.lms.botalka.api.http.server.GetRatingGrades200ResponseMessage -import ru.vityaman.lms.botalka.api.http.server.HomeworkGradeMessage -import ru.vityaman.lms.botalka.api.http.server.StudentGradesMessage -import ru.vityaman.lms.botalka.api.http.server.apis.RatingApi +import ru.vityaman.lms.botalka.app.spring.api.http.server.GetRatingGrades200ResponseMessage +import ru.vityaman.lms.botalka.app.spring.api.http.server.HomeworkGradeMessage +import ru.vityaman.lms.botalka.app.spring.api.http.server.StudentGradesMessage +import ru.vityaman.lms.botalka.app.spring.api.http.server.apis.RatingApi import ru.vityaman.lms.botalka.core.logic.RatingService typealias RatingGrades = GetRatingGrades200ResponseMessage diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/UserHttpApi.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/endpoint/UserHttpApi.kt similarity index 70% rename from botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/UserHttpApi.kt rename to botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/endpoint/UserHttpApi.kt index 765fb21..e40ff73 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/UserHttpApi.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/endpoint/UserHttpApi.kt @@ -1,13 +1,13 @@ -package ru.vityaman.lms.botalka.api.http.endpoint +package ru.vityaman.lms.botalka.app.spring.api.http.endpoint import org.springframework.beans.factory.annotation.Autowired import org.springframework.http.ResponseEntity import org.springframework.web.bind.annotation.RestController -import ru.vityaman.lms.botalka.api.http.message.toMessage -import ru.vityaman.lms.botalka.api.http.message.toModel -import ru.vityaman.lms.botalka.api.http.server.UserDraftMessage -import ru.vityaman.lms.botalka.api.http.server.UserMessage -import ru.vityaman.lms.botalka.api.http.server.apis.UserApi +import ru.vityaman.lms.botalka.app.spring.api.http.message.toMessage +import ru.vityaman.lms.botalka.app.spring.api.http.message.toModel +import ru.vityaman.lms.botalka.app.spring.api.http.server.UserDraftMessage +import ru.vityaman.lms.botalka.app.spring.api.http.server.UserMessage +import ru.vityaman.lms.botalka.app.spring.api.http.server.apis.UserApi import ru.vityaman.lms.botalka.core.exception.orNotFound import ru.vityaman.lms.botalka.core.logic.UserService import ru.vityaman.lms.botalka.core.model.User diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/error/DomainExceptionCodes.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/error/DomainExceptionCodes.kt similarity index 90% rename from botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/error/DomainExceptionCodes.kt rename to botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/error/DomainExceptionCodes.kt index 061895d..bfe7474 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/error/DomainExceptionCodes.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/error/DomainExceptionCodes.kt @@ -1,8 +1,8 @@ -package ru.vityaman.lms.botalka.api.http.error +package ru.vityaman.lms.botalka.app.spring.api.http.error import org.springframework.http.HttpStatus import org.springframework.http.ResponseEntity -import ru.vityaman.lms.botalka.api.http.server.GeneralErrorMessage +import ru.vityaman.lms.botalka.app.spring.api.http.server.GeneralErrorMessage import ru.vityaman.lms.botalka.core.exception.AlreadyAskedPromotionException import ru.vityaman.lms.botalka.core.exception.DeadlinePassedException import ru.vityaman.lms.botalka.core.exception.DomainException diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/error/DomainExceptionMapping.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/error/DomainExceptionMapping.kt similarity index 86% rename from botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/error/DomainExceptionMapping.kt rename to botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/error/DomainExceptionMapping.kt index 20f0b4f..87d8002 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/error/DomainExceptionMapping.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/error/DomainExceptionMapping.kt @@ -1,4 +1,4 @@ -package ru.vityaman.lms.botalka.api.http.error +package ru.vityaman.lms.botalka.app.spring.api.http.error import org.springframework.web.bind.annotation.ExceptionHandler import org.springframework.web.bind.annotation.RestControllerAdvice diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/error/DriverExceptionMapping.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/error/DriverExceptionMapping.kt similarity index 86% rename from botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/error/DriverExceptionMapping.kt rename to botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/error/DriverExceptionMapping.kt index 5848b56..c6b4dee 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/error/DriverExceptionMapping.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/error/DriverExceptionMapping.kt @@ -1,11 +1,11 @@ -package ru.vityaman.lms.botalka.api.http.error +package ru.vityaman.lms.botalka.app.spring.api.http.error import com.fasterxml.jackson.core.JsonParseException import org.springframework.http.HttpStatus import org.springframework.http.ResponseEntity import org.springframework.web.bind.annotation.ExceptionHandler import org.springframework.web.bind.annotation.RestControllerAdvice -import ru.vityaman.lms.botalka.api.http.server.GeneralErrorMessage +import ru.vityaman.lms.botalka.app.spring.api.http.server.GeneralErrorMessage @RestControllerAdvice class DriverExceptionMapping { diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/error/InvalidPromotionRequestStatus.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/error/InvalidPromotionRequestStatus.kt similarity index 66% rename from botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/error/InvalidPromotionRequestStatus.kt rename to botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/error/InvalidPromotionRequestStatus.kt index a6161fb..357e5eb 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/error/InvalidPromotionRequestStatus.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/error/InvalidPromotionRequestStatus.kt @@ -1,4 +1,4 @@ -package ru.vityaman.lms.botalka.api.http.error +package ru.vityaman.lms.botalka.app.spring.api.http.error class InvalidPromotionRequestStatus(message: String) : Exception("Invalid promotion request status: $message") diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/message/HomeworkMapping.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/message/HomeworkMapping.kt similarity index 83% rename from botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/message/HomeworkMapping.kt rename to botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/message/HomeworkMapping.kt index 44621c9..98e48ce 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/message/HomeworkMapping.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/message/HomeworkMapping.kt @@ -1,7 +1,7 @@ -package ru.vityaman.lms.botalka.api.http.message +package ru.vityaman.lms.botalka.app.spring.api.http.message -import ru.vityaman.lms.botalka.api.http.server.HomeworkDraftMessage -import ru.vityaman.lms.botalka.api.http.server.HomeworkMessage +import ru.vityaman.lms.botalka.app.spring.api.http.server.HomeworkDraftMessage +import ru.vityaman.lms.botalka.app.spring.api.http.server.HomeworkMessage import ru.vityaman.lms.botalka.core.model.Homework fun Homework.toMessage(): HomeworkMessage = diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/message/PromotionMapping.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/message/PromotionMapping.kt similarity index 79% rename from botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/message/PromotionMapping.kt rename to botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/message/PromotionMapping.kt index 17f1221..6be846d 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/message/PromotionMapping.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/message/PromotionMapping.kt @@ -1,7 +1,7 @@ -package ru.vityaman.lms.botalka.api.http.message +package ru.vityaman.lms.botalka.app.spring.api.http.message -import ru.vityaman.lms.botalka.api.http.server.PromotionRequestMessage -import ru.vityaman.lms.botalka.api.http.server.PromotionRequestStatusMessage +import ru.vityaman.lms.botalka.app.spring.api.http.server.PromotionRequestMessage +import ru.vityaman.lms.botalka.app.spring.api.http.server.PromotionRequestStatusMessage import ru.vityaman.lms.botalka.commons.BiMap import ru.vityaman.lms.botalka.commons.BiMap.Companion.invoke import ru.vityaman.lms.botalka.core.model.PromotionRequest diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/message/UserMapping.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/message/UserMapping.kt similarity index 78% rename from botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/message/UserMapping.kt rename to botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/message/UserMapping.kt index 13c3d40..733b42b 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/message/UserMapping.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/message/UserMapping.kt @@ -1,8 +1,8 @@ -package ru.vityaman.lms.botalka.api.http.message +package ru.vityaman.lms.botalka.app.spring.api.http.message -import ru.vityaman.lms.botalka.api.http.server.UserDraftMessage -import ru.vityaman.lms.botalka.api.http.server.UserMessage -import ru.vityaman.lms.botalka.api.http.server.UserRoleMessage +import ru.vityaman.lms.botalka.app.spring.api.http.server.UserDraftMessage +import ru.vityaman.lms.botalka.app.spring.api.http.server.UserMessage +import ru.vityaman.lms.botalka.app.spring.api.http.server.UserRoleMessage import ru.vityaman.lms.botalka.commons.BiMap import ru.vityaman.lms.botalka.commons.BiMap.Companion.invoke import ru.vityaman.lms.botalka.core.model.User diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/message/WorkspaceMappingToMessage.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/message/WorkspaceMappingToMessage.kt similarity index 74% rename from botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/message/WorkspaceMappingToMessage.kt rename to botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/message/WorkspaceMappingToMessage.kt index 8fae397..b1de084 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/message/WorkspaceMappingToMessage.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/message/WorkspaceMappingToMessage.kt @@ -1,10 +1,10 @@ -package ru.vityaman.lms.botalka.api.http.message +package ru.vityaman.lms.botalka.app.spring.api.http.message -import ru.vityaman.lms.botalka.api.http.server.WorkspaceCommentMessage -import ru.vityaman.lms.botalka.api.http.server.WorkspaceEventKindMessage -import ru.vityaman.lms.botalka.api.http.server.WorkspaceEventMessage -import ru.vityaman.lms.botalka.api.http.server.WorkspaceFeedbackMessage -import ru.vityaman.lms.botalka.api.http.server.WorkspaceSubmissionMessage +import ru.vityaman.lms.botalka.app.spring.api.http.server.WorkspaceCommentMessage +import ru.vityaman.lms.botalka.app.spring.api.http.server.WorkspaceEventKindMessage +import ru.vityaman.lms.botalka.app.spring.api.http.server.WorkspaceEventMessage +import ru.vityaman.lms.botalka.app.spring.api.http.server.WorkspaceFeedbackMessage +import ru.vityaman.lms.botalka.app.spring.api.http.server.WorkspaceSubmissionMessage import ru.vityaman.lms.botalka.core.model.Workspace private val Workspace.Event.kind diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/message/WorkspaceMappingToModel.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/message/WorkspaceMappingToModel.kt similarity index 76% rename from botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/message/WorkspaceMappingToModel.kt rename to botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/message/WorkspaceMappingToModel.kt index c7c31c5..56e1490 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/message/WorkspaceMappingToModel.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/message/WorkspaceMappingToModel.kt @@ -1,9 +1,9 @@ -package ru.vityaman.lms.botalka.api.http.message +package ru.vityaman.lms.botalka.app.spring.api.http.message -import ru.vityaman.lms.botalka.api.http.server.WorkspaceCommentDraftMessage -import ru.vityaman.lms.botalka.api.http.server.WorkspaceEventDraftMessage -import ru.vityaman.lms.botalka.api.http.server.WorkspaceFeedbackDraftMessage -import ru.vityaman.lms.botalka.api.http.server.WorkspaceSubmissionDraftMessage +import ru.vityaman.lms.botalka.app.spring.api.http.server.WorkspaceCommentDraftMessage +import ru.vityaman.lms.botalka.app.spring.api.http.server.WorkspaceEventDraftMessage +import ru.vityaman.lms.botalka.app.spring.api.http.server.WorkspaceFeedbackDraftMessage +import ru.vityaman.lms.botalka.app.spring.api.http.server.WorkspaceSubmissionDraftMessage import ru.vityaman.lms.botalka.core.model.Homework import ru.vityaman.lms.botalka.core.model.Teacher import ru.vityaman.lms.botalka.core.model.User diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/logic/SpringHomeworkService.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/logic/SpringHomeworkService.kt new file mode 100644 index 0000000..85f6192 --- /dev/null +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/logic/SpringHomeworkService.kt @@ -0,0 +1,11 @@ +package ru.vityaman.lms.botalka.app.spring.logic + +import org.springframework.stereotype.Service +import ru.vityaman.lms.botalka.core.logic.HomeworkService +import ru.vityaman.lms.botalka.core.logic.basic.BasicHomeworkService +import ru.vityaman.lms.botalka.core.storage.HomeworkStorage + +@Service +class SpringHomeworkService( + storage: HomeworkStorage, +) : HomeworkService by BasicHomeworkService(storage) diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/logic/SpringPromotionService.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/logic/SpringPromotionService.kt new file mode 100644 index 0000000..2a65923 --- /dev/null +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/logic/SpringPromotionService.kt @@ -0,0 +1,13 @@ +package ru.vityaman.lms.botalka.app.spring.logic + +import org.springframework.stereotype.Service +import ru.vityaman.lms.botalka.core.logic.PromotionService +import ru.vityaman.lms.botalka.core.logic.UserService +import ru.vityaman.lms.botalka.core.logic.basic.BasicPromotionService +import ru.vityaman.lms.botalka.core.storage.PromotionStorage + +@Service +class SpringPromotionService( + storage: PromotionStorage, + userService: UserService, +) : PromotionService by BasicPromotionService(storage, userService) diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/logic/SpringRatingService.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/logic/SpringRatingService.kt new file mode 100644 index 0000000..f02e7cd --- /dev/null +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/logic/SpringRatingService.kt @@ -0,0 +1,11 @@ +package ru.vityaman.lms.botalka.app.spring.logic + +import org.springframework.stereotype.Service +import ru.vityaman.lms.botalka.core.logic.RatingService +import ru.vityaman.lms.botalka.core.logic.WorkspaceService +import ru.vityaman.lms.botalka.core.logic.basic.BasicRatingService + +@Service +class SpringRatingService( + workspaces: WorkspaceService, +) : RatingService by BasicRatingService(workspaces) diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/logic/SpringUserService.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/logic/SpringUserService.kt new file mode 100644 index 0000000..85da93d --- /dev/null +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/logic/SpringUserService.kt @@ -0,0 +1,11 @@ +package ru.vityaman.lms.botalka.app.spring.logic + +import org.springframework.stereotype.Service +import ru.vityaman.lms.botalka.core.logic.UserService +import ru.vityaman.lms.botalka.core.logic.basic.BasicUserService +import ru.vityaman.lms.botalka.core.storage.UserStorage + +@Service +class SpringUserService( + storage: UserStorage +) : UserService by BasicUserService(storage) diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/logic/SpringWorkspaceService.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/logic/SpringWorkspaceService.kt new file mode 100644 index 0000000..2c90b26 --- /dev/null +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/logic/SpringWorkspaceService.kt @@ -0,0 +1,15 @@ +package ru.vityaman.lms.botalka.app.spring.logic + +import org.springframework.stereotype.Service +import ru.vityaman.lms.botalka.core.logic.HomeworkService +import ru.vityaman.lms.botalka.core.logic.WorkspaceService +import ru.vityaman.lms.botalka.core.logic.basic.BasicWorkspaceService +import ru.vityaman.lms.botalka.core.storage.WorkspaceStorage +import java.time.Clock + +@Service +class SpringWorkspaceService( + storage: WorkspaceStorage, + homeworks: HomeworkService, + clock: Clock, +) : WorkspaceService by BasicWorkspaceService(storage, homeworks, clock) diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/config/JooqConfig.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/storage/JooqConfig.kt similarity index 92% rename from botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/config/JooqConfig.kt rename to botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/storage/JooqConfig.kt index f90d800..23f3f1c 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/config/JooqConfig.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/storage/JooqConfig.kt @@ -1,4 +1,4 @@ -package ru.vityaman.lms.botalka.storage.jooq.config +package ru.vityaman.lms.botalka.app.spring.storage import io.r2dbc.spi.ConnectionFactory import org.jooq.DSLContext diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/config/R2dbcConfig.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/storage/R2dbcConfig.kt similarity index 77% rename from botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/config/R2dbcConfig.kt rename to botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/storage/R2dbcConfig.kt index 45a0bc2..735f0bd 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/config/R2dbcConfig.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/storage/R2dbcConfig.kt @@ -1,4 +1,4 @@ -package ru.vityaman.lms.botalka.storage.jooq.config +package ru.vityaman.lms.botalka.app.spring.storage import org.springframework.context.annotation.Configuration import org.springframework.data.r2dbc.config.EnableR2dbcAuditing diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/util/JooqDatabase.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/storage/SpringDatabase.kt similarity index 65% rename from botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/util/JooqDatabase.kt rename to botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/storage/SpringDatabase.kt index f2004df..00fcab4 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/util/JooqDatabase.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/storage/SpringDatabase.kt @@ -1,4 +1,4 @@ -package ru.vityaman.lms.botalka.storage.jooq.util +package ru.vityaman.lms.botalka.app.spring.storage import io.r2dbc.spi.Connection import org.jooq.DSLContext @@ -10,20 +10,26 @@ import org.springframework.r2dbc.core.DatabaseClient import org.springframework.stereotype.Component import reactor.core.publisher.Flux import reactor.core.publisher.Mono +import ru.vityaman.lms.botalka.storage.jooq.util.JooqReactiveDatabase @Component -class JooqDatabase( +class SpringDatabase( @Autowired private val database: DatabaseClient, - @Autowired val execute: DSLContext, -) { + @Autowired override val execute: DSLContext, +) : JooqReactiveDatabase { + private val settings = Settings() .withBindOffsetDateTimeType(true) .withBindOffsetTimeType(true) - fun withDSLFlux(block: DSLContext.() -> Flux): Flux = + override fun withDSLFlux( + block: DSLContext.() -> Flux, + ): Flux = database.inConnectionMany { conn -> block(conn.dsl()) } - fun withDSLMono(block: DSLContext.() -> Mono): Mono = + override fun withDSLMono( + block: DSLContext.() -> Mono, + ): Mono = database.inConnection { conn -> block(conn.dsl()) } private fun Connection.dsl() = diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/storage/SpringHomeworkStorage.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/storage/SpringHomeworkStorage.kt new file mode 100644 index 0000000..071c5dc --- /dev/null +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/storage/SpringHomeworkStorage.kt @@ -0,0 +1,11 @@ +package ru.vityaman.lms.botalka.app.spring.storage + +import org.springframework.stereotype.Repository +import ru.vityaman.lms.botalka.core.storage.HomeworkStorage +import ru.vityaman.lms.botalka.storage.jooq.JooqHomeworkStorage +import ru.vityaman.lms.botalka.storage.jooq.util.JooqReactiveDatabase + +@Repository +class SpringHomeworkStorage( + database: JooqReactiveDatabase, +) : HomeworkStorage by JooqHomeworkStorage(database) diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/storage/SpringPromotionStorage.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/storage/SpringPromotionStorage.kt new file mode 100644 index 0000000..3232d11 --- /dev/null +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/storage/SpringPromotionStorage.kt @@ -0,0 +1,11 @@ +package ru.vityaman.lms.botalka.app.spring.storage + +import org.springframework.stereotype.Repository +import ru.vityaman.lms.botalka.core.storage.PromotionStorage +import ru.vityaman.lms.botalka.storage.jooq.JooqPromotionStorage +import ru.vityaman.lms.botalka.storage.jooq.util.JooqReactiveDatabase + +@Repository +class SpringPromotionStorage( + database: JooqReactiveDatabase, +) : PromotionStorage by JooqPromotionStorage(database) diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/storage/SpringUserStorage.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/storage/SpringUserStorage.kt new file mode 100644 index 0000000..7ca74c6 --- /dev/null +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/storage/SpringUserStorage.kt @@ -0,0 +1,11 @@ +package ru.vityaman.lms.botalka.app.spring.storage + +import org.springframework.stereotype.Repository +import ru.vityaman.lms.botalka.core.storage.UserStorage +import ru.vityaman.lms.botalka.storage.jooq.JooqUserStorage +import ru.vityaman.lms.botalka.storage.jooq.util.JooqReactiveDatabase + +@Repository +class SpringUserStorage( + database: JooqReactiveDatabase, +) : UserStorage by JooqUserStorage(database) diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/storage/SpringWorkspaceStorage.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/storage/SpringWorkspaceStorage.kt new file mode 100644 index 0000000..dcfafbc --- /dev/null +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/storage/SpringWorkspaceStorage.kt @@ -0,0 +1,11 @@ +package ru.vityaman.lms.botalka.app.spring.storage + +import org.springframework.stereotype.Repository +import ru.vityaman.lms.botalka.core.storage.WorkspaceStorage +import ru.vityaman.lms.botalka.storage.jooq.JooqWorkspaceStorage +import ru.vityaman.lms.botalka.storage.jooq.util.JooqReactiveDatabase + +@Repository +class SpringWorkspaceStorage( + database: JooqReactiveDatabase, +) : WorkspaceStorage by JooqWorkspaceStorage(database) diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicHomeworkService.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicHomeworkService.kt index 95e39a3..b4863d7 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicHomeworkService.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicHomeworkService.kt @@ -1,14 +1,11 @@ package ru.vityaman.lms.botalka.core.logic.basic -import org.springframework.beans.factory.annotation.Autowired -import org.springframework.stereotype.Service import ru.vityaman.lms.botalka.core.logic.HomeworkService import ru.vityaman.lms.botalka.core.model.Homework import ru.vityaman.lms.botalka.core.storage.HomeworkStorage -@Service class BasicHomeworkService( - @Autowired private val storage: HomeworkStorage, + private val storage: HomeworkStorage, ) : HomeworkService { override suspend fun create(homework: Homework.Draft): Homework = storage.create(homework) diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicPromotionService.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicPromotionService.kt index 56f7f14..a27a747 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicPromotionService.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicPromotionService.kt @@ -1,7 +1,5 @@ package ru.vityaman.lms.botalka.core.logic.basic -import org.springframework.beans.factory.annotation.Autowired -import org.springframework.stereotype.Service import org.springframework.transaction.annotation.Transactional import ru.vityaman.lms.botalka.core.exception.PromotionRequestResolvedException import ru.vityaman.lms.botalka.core.exception.orNotFound @@ -10,10 +8,9 @@ import ru.vityaman.lms.botalka.core.logic.UserService import ru.vityaman.lms.botalka.core.model.PromotionRequest import ru.vityaman.lms.botalka.core.storage.PromotionStorage -@Service class BasicPromotionService( - @Autowired private val storage: PromotionStorage, - @Autowired private val userService: UserService, + private val storage: PromotionStorage, + private val userService: UserService, ) : PromotionService { override suspend fun request( promotion: PromotionRequest.Draft, diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicRatingService.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicRatingService.kt index db26291..6613996 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicRatingService.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicRatingService.kt @@ -2,17 +2,14 @@ package ru.vityaman.lms.botalka.core.logic.basic import kotlinx.coroutines.coroutineScope import kotlinx.coroutines.flow.toList -import org.springframework.beans.factory.annotation.Autowired -import org.springframework.stereotype.Service import ru.vityaman.lms.botalka.core.logic.Grades import ru.vityaman.lms.botalka.core.logic.RatingService import ru.vityaman.lms.botalka.core.logic.WorkspaceService import ru.vityaman.lms.botalka.core.model.Homework import ru.vityaman.lms.botalka.core.model.Student -@Service class BasicRatingService( - @Autowired private val workspaces: WorkspaceService, + private val workspaces: WorkspaceService, ) : RatingService { override suspend fun grades(): Grades { val byStuds = mutableMapOf< diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicUserService.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicUserService.kt index c7be98c..b2d29c6 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicUserService.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicUserService.kt @@ -1,16 +1,13 @@ package ru.vityaman.lms.botalka.core.logic.basic -import org.springframework.beans.factory.annotation.Autowired -import org.springframework.stereotype.Service import ru.vityaman.lms.botalka.core.logic.UserService import ru.vityaman.lms.botalka.core.model.Student import ru.vityaman.lms.botalka.core.model.Teacher import ru.vityaman.lms.botalka.core.model.User import ru.vityaman.lms.botalka.core.storage.UserStorage -@Service class BasicUserService( - @Autowired private val storage: UserStorage, + private val storage: UserStorage, ) : UserService { override suspend fun getById(id: User.Id): User? = storage.getById(id) diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicWorkspaceService.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicWorkspaceService.kt index 244cf62..a869364 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicWorkspaceService.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicWorkspaceService.kt @@ -4,8 +4,6 @@ import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.filterNotNull import kotlinx.coroutines.flow.lastOrNull import kotlinx.coroutines.flow.map -import org.springframework.beans.factory.annotation.Autowired -import org.springframework.stereotype.Service import ru.vityaman.lms.botalka.core.exception.DeadlinePassedException import ru.vityaman.lms.botalka.core.exception.orNotFound import ru.vityaman.lms.botalka.core.logic.HomeworkService @@ -16,11 +14,10 @@ import ru.vityaman.lms.botalka.core.storage.WorkspaceStorage import java.time.Clock import java.time.OffsetDateTime -@Service class BasicWorkspaceService( - @Autowired private val storage: WorkspaceStorage, - @Autowired private val homeworks: HomeworkService, - @Autowired private val clock: Clock, + private val storage: WorkspaceStorage, + private val homeworks: HomeworkService, + private val clock: Clock, ) : WorkspaceService { override fun events(id: Workspace.Id): Flow = storage.events(id) diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/JooqHomeworkStorage.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/JooqHomeworkStorage.kt index 1b9d802..8c66511 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/JooqHomeworkStorage.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/JooqHomeworkStorage.kt @@ -2,18 +2,15 @@ package ru.vityaman.lms.botalka.storage.jooq import kotlinx.coroutines.reactor.awaitSingle import kotlinx.coroutines.reactor.awaitSingleOrNull -import org.springframework.beans.factory.annotation.Autowired -import org.springframework.stereotype.Repository import ru.vityaman.lms.botalka.core.model.Homework import ru.vityaman.lms.botalka.core.storage.HomeworkStorage import ru.vityaman.lms.botalka.storage.jooq.entity.toModel import ru.vityaman.lms.botalka.storage.jooq.tables.references.HOMEWORK -import ru.vityaman.lms.botalka.storage.jooq.util.JooqDatabase +import ru.vityaman.lms.botalka.storage.jooq.util.JooqReactiveDatabase import ru.vityaman.lms.botalka.storage.jooq.util.toMono -@Repository class JooqHomeworkStorage( - @Autowired private val database: JooqDatabase, + private val database: JooqReactiveDatabase, ) : HomeworkStorage { override suspend fun create(homework: Homework.Draft): Homework = database.execute diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/JooqPromotionStorage.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/JooqPromotionStorage.kt index 95e371d..648a0bc 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/JooqPromotionStorage.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/JooqPromotionStorage.kt @@ -2,8 +2,6 @@ package ru.vityaman.lms.botalka.storage.jooq import kotlinx.coroutines.reactive.awaitFirstOrNull import kotlinx.coroutines.reactor.awaitSingle -import org.springframework.beans.factory.annotation.Autowired -import org.springframework.stereotype.Repository import reactor.kotlin.core.publisher.toMono import ru.vityaman.lms.botalka.core.exception.AlreadyAskedPromotionException import ru.vityaman.lms.botalka.core.exception.NotFoundException @@ -12,13 +10,12 @@ import ru.vityaman.lms.botalka.core.storage.PromotionStorage import ru.vityaman.lms.botalka.storage.jooq.entity.toModel import ru.vityaman.lms.botalka.storage.jooq.entity.toRecord import ru.vityaman.lms.botalka.storage.jooq.tables.references.PROMOTION_REQUEST -import ru.vityaman.lms.botalka.storage.jooq.util.JooqDatabase +import ru.vityaman.lms.botalka.storage.jooq.util.JooqReactiveDatabase import ru.vityaman.lms.botalka.storage.jooq.util.mapErrorForeignKey import ru.vityaman.lms.botalka.storage.jooq.util.mapErrorUniqueKey -@Repository class JooqPromotionStorage( - @Autowired private val database: JooqDatabase, + private val database: JooqReactiveDatabase, ) : PromotionStorage { override suspend fun create( request: PromotionRequest.Draft, diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/JooqUserStorage.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/JooqUserStorage.kt index 0ac65f6..4035a5a 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/JooqUserStorage.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/JooqUserStorage.kt @@ -2,8 +2,6 @@ package ru.vityaman.lms.botalka.storage.jooq import kotlinx.coroutines.reactor.awaitSingle import kotlinx.coroutines.reactor.awaitSingleOrNull -import org.springframework.beans.factory.annotation.Autowired -import org.springframework.stereotype.Repository import ru.vityaman.lms.botalka.core.exception.AlreadyAskedPromotionException import ru.vityaman.lms.botalka.core.exception.UniqueViolationException import ru.vityaman.lms.botalka.core.model.Student @@ -14,13 +12,12 @@ import ru.vityaman.lms.botalka.storage.jooq.entity.toModel import ru.vityaman.lms.botalka.storage.jooq.tables.references.STUDENT import ru.vityaman.lms.botalka.storage.jooq.tables.references.TEACHER import ru.vityaman.lms.botalka.storage.jooq.tables.references.USER -import ru.vityaman.lms.botalka.storage.jooq.util.JooqDatabase +import ru.vityaman.lms.botalka.storage.jooq.util.JooqReactiveDatabase import ru.vityaman.lms.botalka.storage.jooq.util.mapErrorUniqueKey import ru.vityaman.lms.botalka.storage.jooq.util.toMono -@Repository class JooqUserStorage( - @Autowired private val database: JooqDatabase, + private val database: JooqReactiveDatabase, ) : UserStorage { override suspend fun getById(id: User.Id): User? = database.execute diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/JooqWorkspaceStorage.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/JooqWorkspaceStorage.kt index c03b38c..1adbc86 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/JooqWorkspaceStorage.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/JooqWorkspaceStorage.kt @@ -4,8 +4,6 @@ import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.map import kotlinx.coroutines.reactive.asFlow import kotlinx.coroutines.reactor.awaitSingle -import org.springframework.beans.factory.annotation.Autowired -import org.springframework.stereotype.Repository import reactor.kotlin.core.publisher.toMono import ru.vityaman.lms.botalka.commons.mergeOrdered import ru.vityaman.lms.botalka.core.model.Homework @@ -16,12 +14,11 @@ import ru.vityaman.lms.botalka.core.storage.WorkspaceStorage import ru.vityaman.lms.botalka.storage.jooq.entity.toModel import ru.vityaman.lms.botalka.storage.jooq.tables.references.HOMEWORK_FEEDBACK import ru.vityaman.lms.botalka.storage.jooq.tables.references.HOMEWORK_SUBMISSION -import ru.vityaman.lms.botalka.storage.jooq.util.JooqDatabase +import ru.vityaman.lms.botalka.storage.jooq.util.JooqReactiveDatabase import ru.vityaman.lms.botalka.storage.jooq.util.toFlux -@Repository class JooqWorkspaceStorage( - @Autowired private val database: JooqDatabase, + private val database: JooqReactiveDatabase, ) : WorkspaceStorage { override fun events(id: Workspace.Id): Flow { val submissionWorkspaceEq = diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/util/JooqReactiveDatabase.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/util/JooqReactiveDatabase.kt new file mode 100644 index 0000000..6b63166 --- /dev/null +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/storage/jooq/util/JooqReactiveDatabase.kt @@ -0,0 +1,11 @@ +package ru.vityaman.lms.botalka.storage.jooq.util + +import org.jooq.DSLContext +import reactor.core.publisher.Flux +import reactor.core.publisher.Mono + +interface JooqReactiveDatabase { + val execute: DSLContext + fun withDSLFlux(block: DSLContext.() -> Flux): Flux + fun withDSLMono(block: DSLContext.() -> Mono): Mono +} diff --git a/botalka/src/test/kotlin/ru/vityaman/lms/botalka/BotalkaApplicationTests.kt b/botalka/src/test/kotlin/ru/vityaman/lms/botalka/app/spring/BotalkaApplicationTests.kt similarity index 82% rename from botalka/src/test/kotlin/ru/vityaman/lms/botalka/BotalkaApplicationTests.kt rename to botalka/src/test/kotlin/ru/vityaman/lms/botalka/app/spring/BotalkaApplicationTests.kt index 035d1d3..33967c5 100644 --- a/botalka/src/test/kotlin/ru/vityaman/lms/botalka/BotalkaApplicationTests.kt +++ b/botalka/src/test/kotlin/ru/vityaman/lms/botalka/app/spring/BotalkaApplicationTests.kt @@ -1,4 +1,4 @@ -package ru.vityaman.lms.botalka +package ru.vityaman.lms.botalka.app.spring import org.junit.jupiter.api.Test import org.springframework.boot.test.context.SpringBootTest diff --git a/botalka/src/test/kotlin/ru/vityaman/lms/botalka/BotalkaTestSuite.kt b/botalka/src/test/kotlin/ru/vityaman/lms/botalka/app/spring/BotalkaTestSuite.kt similarity index 90% rename from botalka/src/test/kotlin/ru/vityaman/lms/botalka/BotalkaTestSuite.kt rename to botalka/src/test/kotlin/ru/vityaman/lms/botalka/app/spring/BotalkaTestSuite.kt index 2541cf3..401f3c2 100644 --- a/botalka/src/test/kotlin/ru/vityaman/lms/botalka/BotalkaTestSuite.kt +++ b/botalka/src/test/kotlin/ru/vityaman/lms/botalka/app/spring/BotalkaTestSuite.kt @@ -1,4 +1,4 @@ -package ru.vityaman.lms.botalka +package ru.vityaman.lms.botalka.app.spring import kotlinx.coroutines.launch import kotlinx.coroutines.reactive.asFlow @@ -8,7 +8,7 @@ import org.junit.jupiter.api.AfterEach import org.springframework.beans.factory.annotation.Autowired import org.springframework.boot.test.context.SpringBootTest import org.springframework.test.context.ContextConfiguration -import ru.vityaman.lms.botalka.storage.DatabaseContainerInitializer +import ru.vityaman.lms.botalka.app.spring.storage.DatabaseContainerInitializer import ru.vityaman.lms.botalka.storage.jooq.Lms.Companion.LMS import ru.vityaman.lms.botalka.storage.jooq.util.toFlux diff --git a/botalka/src/test/kotlin/ru/vityaman/lms/botalka/api/http/client/ApiClientSet.kt b/botalka/src/test/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/client/ApiClientSet.kt similarity index 52% rename from botalka/src/test/kotlin/ru/vityaman/lms/botalka/api/http/client/ApiClientSet.kt rename to botalka/src/test/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/client/ApiClientSet.kt index 253f733..6ce49d3 100644 --- a/botalka/src/test/kotlin/ru/vityaman/lms/botalka/api/http/client/ApiClientSet.kt +++ b/botalka/src/test/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/client/ApiClientSet.kt @@ -1,11 +1,11 @@ -package ru.vityaman.lms.botalka.api.http.client +package ru.vityaman.lms.botalka.app.spring.api.http.client import org.springframework.context.annotation.Bean import org.springframework.stereotype.Component -import ru.vityaman.lms.botalka.api.http.client.apis.HomeworkApi -import ru.vityaman.lms.botalka.api.http.client.apis.MonitoringApi -import ru.vityaman.lms.botalka.api.http.client.apis.RatingApi -import ru.vityaman.lms.botalka.api.http.client.apis.UserApi +import ru.vityaman.lms.botalka.app.spring.api.http.client.apis.HomeworkApi +import ru.vityaman.lms.botalka.app.spring.api.http.client.apis.MonitoringApi +import ru.vityaman.lms.botalka.app.spring.api.http.client.apis.RatingApi +import ru.vityaman.lms.botalka.app.spring.api.http.client.apis.UserApi @Component class ApiClientSet { diff --git a/botalka/src/test/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/HomeworkApiTest.kt b/botalka/src/test/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/endpoint/HomeworkApiTest.kt similarity index 94% rename from botalka/src/test/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/HomeworkApiTest.kt rename to botalka/src/test/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/endpoint/HomeworkApiTest.kt index 8ef5e27..f93999a 100644 --- a/botalka/src/test/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/HomeworkApiTest.kt +++ b/botalka/src/test/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/endpoint/HomeworkApiTest.kt @@ -1,4 +1,4 @@ -package ru.vityaman.lms.botalka.api.http.endpoint +package ru.vityaman.lms.botalka.app.spring.api.http.endpoint import io.kotest.matchers.collections.shouldBeUnique import io.kotest.matchers.date.shouldBeAfter @@ -12,9 +12,9 @@ import org.junit.jupiter.api.Test import org.junit.jupiter.api.assertThrows import org.springframework.beans.factory.annotation.Autowired import org.springframework.web.reactive.function.client.WebClientResponseException -import ru.vityaman.lms.botalka.BotalkaTestSuite -import ru.vityaman.lms.botalka.api.http.client.HomeworkDraftMessage -import ru.vityaman.lms.botalka.api.http.client.apis.HomeworkApi +import ru.vityaman.lms.botalka.app.spring.BotalkaTestSuite +import ru.vityaman.lms.botalka.app.spring.api.http.client.HomeworkDraftMessage +import ru.vityaman.lms.botalka.app.spring.api.http.client.apis.HomeworkApi import java.time.OffsetDateTime class HomeworkApiTest( diff --git a/botalka/src/test/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/MonitoringApiTest.kt b/botalka/src/test/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/endpoint/MonitoringApiTest.kt similarity index 70% rename from botalka/src/test/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/MonitoringApiTest.kt rename to botalka/src/test/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/endpoint/MonitoringApiTest.kt index 101bae3..829a92f 100644 --- a/botalka/src/test/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/MonitoringApiTest.kt +++ b/botalka/src/test/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/endpoint/MonitoringApiTest.kt @@ -1,11 +1,11 @@ -package ru.vityaman.lms.botalka.api.http.endpoint +package ru.vityaman.lms.botalka.app.spring.api.http.endpoint import kotlinx.coroutines.reactor.awaitSingle import kotlinx.coroutines.runBlocking import org.junit.jupiter.api.Test import org.springframework.beans.factory.annotation.Autowired -import ru.vityaman.lms.botalka.BotalkaTestSuite -import ru.vityaman.lms.botalka.api.http.client.apis.MonitoringApi +import ru.vityaman.lms.botalka.app.spring.BotalkaTestSuite +import ru.vityaman.lms.botalka.app.spring.api.http.client.apis.MonitoringApi import kotlin.test.assertEquals class MonitoringApiTest( diff --git a/botalka/src/test/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/PromoteApiTest.kt b/botalka/src/test/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/endpoint/PromoteApiTest.kt similarity index 84% rename from botalka/src/test/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/PromoteApiTest.kt rename to botalka/src/test/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/endpoint/PromoteApiTest.kt index 5c0d1cd..b802bd5 100644 --- a/botalka/src/test/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/PromoteApiTest.kt +++ b/botalka/src/test/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/endpoint/PromoteApiTest.kt @@ -1,4 +1,4 @@ -package ru.vityaman.lms.botalka.api.http.endpoint +package ru.vityaman.lms.botalka.app.spring.api.http.endpoint import io.kotest.assertions.throwables.shouldThrow import io.kotest.common.runBlocking @@ -10,14 +10,14 @@ import org.junit.jupiter.api.Test import org.junit.jupiter.api.assertThrows import org.springframework.beans.factory.annotation.Autowired import org.springframework.web.reactive.function.client.WebClientResponseException -import ru.vityaman.lms.botalka.BotalkaTestSuite -import ru.vityaman.lms.botalka.api.http.client.PromotionRequestDraftMessage -import ru.vityaman.lms.botalka.api.http.client.PromotionRequestPatchMessage -import ru.vityaman.lms.botalka.api.http.client.PromotionRequestStatusMessage -import ru.vityaman.lms.botalka.api.http.client.UserDraftMessage -import ru.vityaman.lms.botalka.api.http.client.UserMessage -import ru.vityaman.lms.botalka.api.http.client.UserRoleMessage -import ru.vityaman.lms.botalka.api.http.client.apis.UserApi +import ru.vityaman.lms.botalka.app.spring.BotalkaTestSuite +import ru.vityaman.lms.botalka.app.spring.api.http.client.PromotionRequestDraftMessage +import ru.vityaman.lms.botalka.app.spring.api.http.client.PromotionRequestPatchMessage +import ru.vityaman.lms.botalka.app.spring.api.http.client.PromotionRequestStatusMessage +import ru.vityaman.lms.botalka.app.spring.api.http.client.UserDraftMessage +import ru.vityaman.lms.botalka.app.spring.api.http.client.UserMessage +import ru.vityaman.lms.botalka.app.spring.api.http.client.UserRoleMessage +import ru.vityaman.lms.botalka.app.spring.api.http.client.apis.UserApi class PromoteApiTest( @Autowired private val api: UserApi, diff --git a/botalka/src/test/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/RatingApiTest.kt b/botalka/src/test/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/endpoint/RatingApiTest.kt similarity index 80% rename from botalka/src/test/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/RatingApiTest.kt rename to botalka/src/test/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/endpoint/RatingApiTest.kt index 3c3f72c..804e9c7 100644 --- a/botalka/src/test/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/RatingApiTest.kt +++ b/botalka/src/test/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/endpoint/RatingApiTest.kt @@ -1,4 +1,4 @@ -package ru.vityaman.lms.botalka.api.http.endpoint +package ru.vityaman.lms.botalka.app.spring.api.http.endpoint import io.kotest.common.runBlocking import io.kotest.matchers.maps.shouldContainExactly @@ -8,19 +8,19 @@ import kotlinx.coroutines.launch import kotlinx.coroutines.reactor.awaitSingle import org.junit.jupiter.api.Test import org.springframework.beans.factory.annotation.Autowired -import ru.vityaman.lms.botalka.BotalkaTestSuite -import ru.vityaman.lms.botalka.api.http.client.HomeworkDraftMessage -import ru.vityaman.lms.botalka.api.http.client.PromotionRequestDraftMessage -import ru.vityaman.lms.botalka.api.http.client.PromotionRequestPatchMessage -import ru.vityaman.lms.botalka.api.http.client.PromotionRequestStatusMessage -import ru.vityaman.lms.botalka.api.http.client.UserDraftMessage -import ru.vityaman.lms.botalka.api.http.client.UserRoleMessage -import ru.vityaman.lms.botalka.api.http.client.WorkspaceEventKindMessage -import ru.vityaman.lms.botalka.api.http.client.WorkspaceFeedbackDraftMessage -import ru.vityaman.lms.botalka.api.http.client.WorkspaceSubmissionDraftMessage -import ru.vityaman.lms.botalka.api.http.client.apis.HomeworkApi -import ru.vityaman.lms.botalka.api.http.client.apis.RatingApi -import ru.vityaman.lms.botalka.api.http.client.apis.UserApi +import ru.vityaman.lms.botalka.app.spring.BotalkaTestSuite +import ru.vityaman.lms.botalka.app.spring.api.http.client.HomeworkDraftMessage +import ru.vityaman.lms.botalka.app.spring.api.http.client.PromotionRequestDraftMessage +import ru.vityaman.lms.botalka.app.spring.api.http.client.PromotionRequestPatchMessage +import ru.vityaman.lms.botalka.app.spring.api.http.client.PromotionRequestStatusMessage +import ru.vityaman.lms.botalka.app.spring.api.http.client.UserDraftMessage +import ru.vityaman.lms.botalka.app.spring.api.http.client.UserRoleMessage +import ru.vityaman.lms.botalka.app.spring.api.http.client.WorkspaceEventKindMessage +import ru.vityaman.lms.botalka.app.spring.api.http.client.WorkspaceFeedbackDraftMessage +import ru.vityaman.lms.botalka.app.spring.api.http.client.WorkspaceSubmissionDraftMessage +import ru.vityaman.lms.botalka.app.spring.api.http.client.apis.HomeworkApi +import ru.vityaman.lms.botalka.app.spring.api.http.client.apis.RatingApi +import ru.vityaman.lms.botalka.app.spring.api.http.client.apis.UserApi import java.time.OffsetDateTime class RatingApiTest( diff --git a/botalka/src/test/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/UserApiTest.kt b/botalka/src/test/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/endpoint/UserApiTest.kt similarity index 89% rename from botalka/src/test/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/UserApiTest.kt rename to botalka/src/test/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/endpoint/UserApiTest.kt index 17a85a6..f156450 100644 --- a/botalka/src/test/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/UserApiTest.kt +++ b/botalka/src/test/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/endpoint/UserApiTest.kt @@ -1,4 +1,4 @@ -package ru.vityaman.lms.botalka.api.http.endpoint +package ru.vityaman.lms.botalka.app.spring.api.http.endpoint import io.kotest.matchers.collections.shouldBeUnique import io.kotest.matchers.collections.shouldContainExactly @@ -13,9 +13,9 @@ import org.junit.jupiter.api.Test import org.junit.jupiter.api.assertThrows import org.springframework.beans.factory.annotation.Autowired import org.springframework.web.reactive.function.client.WebClientResponseException -import ru.vityaman.lms.botalka.BotalkaTestSuite -import ru.vityaman.lms.botalka.api.http.client.UserDraftMessage -import ru.vityaman.lms.botalka.api.http.client.apis.UserApi +import ru.vityaman.lms.botalka.app.spring.BotalkaTestSuite +import ru.vityaman.lms.botalka.app.spring.api.http.client.UserDraftMessage +import ru.vityaman.lms.botalka.app.spring.api.http.client.apis.UserApi class UserApiTest( @Autowired private val api: UserApi, diff --git a/botalka/src/test/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/WorkspaceApiTest.kt b/botalka/src/test/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/endpoint/WorkspaceApiTest.kt similarity index 80% rename from botalka/src/test/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/WorkspaceApiTest.kt rename to botalka/src/test/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/endpoint/WorkspaceApiTest.kt index 2c20625..72f66d6 100644 --- a/botalka/src/test/kotlin/ru/vityaman/lms/botalka/api/http/endpoint/WorkspaceApiTest.kt +++ b/botalka/src/test/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/endpoint/WorkspaceApiTest.kt @@ -1,4 +1,4 @@ -package ru.vityaman.lms.botalka.api.http.endpoint +package ru.vityaman.lms.botalka.app.spring.api.http.endpoint import io.kotest.common.runBlocking import io.kotest.matchers.collections.shouldHaveSize @@ -11,20 +11,20 @@ import org.junit.jupiter.api.Test import org.junit.jupiter.api.assertThrows import org.springframework.beans.factory.annotation.Autowired import org.springframework.web.reactive.function.client.WebClientResponseException -import ru.vityaman.lms.botalka.BotalkaTestSuite -import ru.vityaman.lms.botalka.api.http.client.HomeworkDraftMessage -import ru.vityaman.lms.botalka.api.http.client.PromotionRequestDraftMessage -import ru.vityaman.lms.botalka.api.http.client.PromotionRequestPatchMessage -import ru.vityaman.lms.botalka.api.http.client.PromotionRequestStatusMessage -import ru.vityaman.lms.botalka.api.http.client.UserDraftMessage -import ru.vityaman.lms.botalka.api.http.client.UserRoleMessage -import ru.vityaman.lms.botalka.api.http.client.WorkspaceEventKindMessage -import ru.vityaman.lms.botalka.api.http.client.WorkspaceEventMessage -import ru.vityaman.lms.botalka.api.http.client.WorkspaceFeedbackDraftMessage -import ru.vityaman.lms.botalka.api.http.client.WorkspaceSubmissionDraftMessage -import ru.vityaman.lms.botalka.api.http.client.apis.HomeworkApi -import ru.vityaman.lms.botalka.api.http.client.apis.UserApi -import ru.vityaman.lms.botalka.env.FakeClock +import ru.vityaman.lms.botalka.app.spring.BotalkaTestSuite +import ru.vityaman.lms.botalka.app.spring.api.http.client.HomeworkDraftMessage +import ru.vityaman.lms.botalka.app.spring.api.http.client.PromotionRequestDraftMessage +import ru.vityaman.lms.botalka.app.spring.api.http.client.PromotionRequestPatchMessage +import ru.vityaman.lms.botalka.app.spring.api.http.client.PromotionRequestStatusMessage +import ru.vityaman.lms.botalka.app.spring.api.http.client.UserDraftMessage +import ru.vityaman.lms.botalka.app.spring.api.http.client.UserRoleMessage +import ru.vityaman.lms.botalka.app.spring.api.http.client.WorkspaceEventKindMessage +import ru.vityaman.lms.botalka.app.spring.api.http.client.WorkspaceEventMessage +import ru.vityaman.lms.botalka.app.spring.api.http.client.WorkspaceFeedbackDraftMessage +import ru.vityaman.lms.botalka.app.spring.api.http.client.WorkspaceSubmissionDraftMessage +import ru.vityaman.lms.botalka.app.spring.api.http.client.apis.HomeworkApi +import ru.vityaman.lms.botalka.app.spring.api.http.client.apis.UserApi +import ru.vityaman.lms.botalka.app.spring.env.FakeClock import java.time.Instant import java.time.OffsetDateTime import kotlin.random.Random diff --git a/botalka/src/test/kotlin/ru/vityaman/lms/botalka/commons/MergeTest.kt b/botalka/src/test/kotlin/ru/vityaman/lms/botalka/app/spring/commons/MergeTest.kt similarity index 92% rename from botalka/src/test/kotlin/ru/vityaman/lms/botalka/commons/MergeTest.kt rename to botalka/src/test/kotlin/ru/vityaman/lms/botalka/app/spring/commons/MergeTest.kt index d58eb3d..f238c2c 100644 --- a/botalka/src/test/kotlin/ru/vityaman/lms/botalka/commons/MergeTest.kt +++ b/botalka/src/test/kotlin/ru/vityaman/lms/botalka/app/spring/commons/MergeTest.kt @@ -1,4 +1,4 @@ -package ru.vityaman.lms.botalka.commons +package ru.vityaman.lms.botalka.app.spring.commons import io.kotest.common.ExperimentalKotest import io.kotest.common.runBlocking @@ -13,6 +13,7 @@ import io.kotest.property.arbitrary.map import io.kotest.property.checkAll import kotlinx.coroutines.flow.asFlow import kotlinx.coroutines.flow.toList +import ru.vityaman.lms.botalka.commons.mergeOrdered fun arbSortedList() = Arb.intArray( diff --git a/botalka/src/test/kotlin/ru/vityaman/lms/botalka/core/model/UserTest.kt b/botalka/src/test/kotlin/ru/vityaman/lms/botalka/app/spring/core/model/UserTest.kt similarity index 85% rename from botalka/src/test/kotlin/ru/vityaman/lms/botalka/core/model/UserTest.kt rename to botalka/src/test/kotlin/ru/vityaman/lms/botalka/app/spring/core/model/UserTest.kt index 7adea01..a871e91 100644 --- a/botalka/src/test/kotlin/ru/vityaman/lms/botalka/core/model/UserTest.kt +++ b/botalka/src/test/kotlin/ru/vityaman/lms/botalka/app/spring/core/model/UserTest.kt @@ -1,9 +1,10 @@ -package ru.vityaman.lms.botalka.core.model +package ru.vityaman.lms.botalka.app.spring.core.model import io.kotest.common.runBlocking import kotlinx.coroutines.coroutineScope import kotlinx.coroutines.launch import org.junit.jupiter.api.Test +import ru.vityaman.lms.botalka.core.model.User class UserTest { @Test diff --git a/botalka/src/test/kotlin/ru/vityaman/lms/botalka/env/FakeClock.kt b/botalka/src/test/kotlin/ru/vityaman/lms/botalka/app/spring/env/FakeClock.kt similarity index 93% rename from botalka/src/test/kotlin/ru/vityaman/lms/botalka/env/FakeClock.kt rename to botalka/src/test/kotlin/ru/vityaman/lms/botalka/app/spring/env/FakeClock.kt index 98d8466..583fb6a 100644 --- a/botalka/src/test/kotlin/ru/vityaman/lms/botalka/env/FakeClock.kt +++ b/botalka/src/test/kotlin/ru/vityaman/lms/botalka/app/spring/env/FakeClock.kt @@ -1,4 +1,4 @@ -package ru.vityaman.lms.botalka.env +package ru.vityaman.lms.botalka.app.spring.env import org.springframework.context.annotation.Primary import org.springframework.stereotype.Component diff --git a/botalka/src/test/kotlin/ru/vityaman/lms/botalka/storage/DatabaseContainer.kt b/botalka/src/test/kotlin/ru/vityaman/lms/botalka/app/spring/storage/DatabaseContainer.kt similarity index 95% rename from botalka/src/test/kotlin/ru/vityaman/lms/botalka/storage/DatabaseContainer.kt rename to botalka/src/test/kotlin/ru/vityaman/lms/botalka/app/spring/storage/DatabaseContainer.kt index beed3b3..4b31d1a 100644 --- a/botalka/src/test/kotlin/ru/vityaman/lms/botalka/storage/DatabaseContainer.kt +++ b/botalka/src/test/kotlin/ru/vityaman/lms/botalka/app/spring/storage/DatabaseContainer.kt @@ -1,4 +1,4 @@ -package ru.vityaman.lms.botalka.storage +package ru.vityaman.lms.botalka.app.spring.storage import org.testcontainers.containers.PostgreSQLContainer import org.testcontainers.utility.MountableFile diff --git a/botalka/src/test/kotlin/ru/vityaman/lms/botalka/storage/DatabaseContainerInitializer.kt b/botalka/src/test/kotlin/ru/vityaman/lms/botalka/app/spring/storage/DatabaseContainerInitializer.kt similarity index 92% rename from botalka/src/test/kotlin/ru/vityaman/lms/botalka/storage/DatabaseContainerInitializer.kt rename to botalka/src/test/kotlin/ru/vityaman/lms/botalka/app/spring/storage/DatabaseContainerInitializer.kt index 685f917..0ec7aa5 100644 --- a/botalka/src/test/kotlin/ru/vityaman/lms/botalka/storage/DatabaseContainerInitializer.kt +++ b/botalka/src/test/kotlin/ru/vityaman/lms/botalka/app/spring/storage/DatabaseContainerInitializer.kt @@ -1,4 +1,4 @@ -package ru.vityaman.lms.botalka.storage +package ru.vityaman.lms.botalka.app.spring.storage import org.springframework.boot.test.util.TestPropertyValues import org.springframework.context.ApplicationContextInitializer From 02735b290bd6ae58352f2ae18deb22272437753d Mon Sep 17 00:00:00 2001 From: vityaman Date: Thu, 25 Apr 2024 09:20:09 +0300 Subject: [PATCH 6/6] #86 Fixed transactions --- .../spring/logic/SpringPromotionService.kt | 4 +++- .../app/spring/logic/SpringUserService.kt | 2 +- .../botalka/app/spring/storage/SpringTxEnv.kt | 17 +++++++++++++++++ .../core/logic/basic/BasicPromotionService.kt | 19 +++++++++++-------- .../ru/vityaman/lms/botalka/core/tx/TxEnv.kt | 8 ++++++++ 5 files changed, 40 insertions(+), 10 deletions(-) create mode 100644 botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/storage/SpringTxEnv.kt create mode 100644 botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/tx/TxEnv.kt diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/logic/SpringPromotionService.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/logic/SpringPromotionService.kt index 2a65923..10aea73 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/logic/SpringPromotionService.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/logic/SpringPromotionService.kt @@ -5,9 +5,11 @@ import ru.vityaman.lms.botalka.core.logic.PromotionService import ru.vityaman.lms.botalka.core.logic.UserService import ru.vityaman.lms.botalka.core.logic.basic.BasicPromotionService import ru.vityaman.lms.botalka.core.storage.PromotionStorage +import ru.vityaman.lms.botalka.core.tx.TxEnv @Service class SpringPromotionService( storage: PromotionStorage, userService: UserService, -) : PromotionService by BasicPromotionService(storage, userService) + txEnv: TxEnv, +) : PromotionService by BasicPromotionService(storage, userService, txEnv) diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/logic/SpringUserService.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/logic/SpringUserService.kt index 85da93d..2880d62 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/logic/SpringUserService.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/logic/SpringUserService.kt @@ -7,5 +7,5 @@ import ru.vityaman.lms.botalka.core.storage.UserStorage @Service class SpringUserService( - storage: UserStorage + storage: UserStorage, ) : UserService by BasicUserService(storage) diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/storage/SpringTxEnv.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/storage/SpringTxEnv.kt new file mode 100644 index 0000000..c90f1f7 --- /dev/null +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/storage/SpringTxEnv.kt @@ -0,0 +1,17 @@ +package ru.vityaman.lms.botalka.app.spring.storage + +import kotlinx.coroutines.flow.Flow +import org.springframework.stereotype.Component +import org.springframework.transaction.reactive.TransactionalOperator +import org.springframework.transaction.reactive.executeAndAwait +import org.springframework.transaction.reactive.transactional +import ru.vityaman.lms.botalka.core.tx.TxEnv + +@Component +class SpringTxEnv(private val operator: TransactionalOperator) : TxEnv { + override suspend fun transactional(action: suspend () -> T): T = + operator.executeAndAwait { action() } + + override fun transactional(flow: Flow): Flow = + flow.transactional(operator) +} diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicPromotionService.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicPromotionService.kt index a27a747..d9aecfa 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicPromotionService.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/logic/basic/BasicPromotionService.kt @@ -1,33 +1,36 @@ package ru.vityaman.lms.botalka.core.logic.basic -import org.springframework.transaction.annotation.Transactional import ru.vityaman.lms.botalka.core.exception.PromotionRequestResolvedException import ru.vityaman.lms.botalka.core.exception.orNotFound import ru.vityaman.lms.botalka.core.logic.PromotionService import ru.vityaman.lms.botalka.core.logic.UserService import ru.vityaman.lms.botalka.core.model.PromotionRequest import ru.vityaman.lms.botalka.core.storage.PromotionStorage +import ru.vityaman.lms.botalka.core.tx.TxEnv class BasicPromotionService( private val storage: PromotionStorage, private val userService: UserService, + private val txEnv: TxEnv, ) : PromotionService { override suspend fun request( promotion: PromotionRequest.Draft, ): PromotionRequest = storage.create(promotion) - @Transactional override suspend fun approve(id: PromotionRequest.Id) { - val request = acquireUnresolvedRequestById(id) - storage.updateStatus(request.id, PromotionRequest.Status.APPROVED) - userService.promote(request.user, request.role) + txEnv.transactional { + val request = acquireUnresolvedRequestById(id) + storage.updateStatus(request.id, PromotionRequest.Status.APPROVED) + userService.promote(request.user, request.role) + } } - @Transactional override suspend fun reject(id: PromotionRequest.Id) { - val request = acquireUnresolvedRequestById(id) - storage.updateStatus(request.id, PromotionRequest.Status.REJECTED) + txEnv.transactional { + val request = acquireUnresolvedRequestById(id) + storage.updateStatus(request.id, PromotionRequest.Status.REJECTED) + } } private suspend fun acquireUnresolvedRequestById(id: PromotionRequest.Id) = diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/tx/TxEnv.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/tx/TxEnv.kt new file mode 100644 index 0000000..ca2f6e2 --- /dev/null +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/core/tx/TxEnv.kt @@ -0,0 +1,8 @@ +package ru.vityaman.lms.botalka.core.tx + +import kotlinx.coroutines.flow.Flow + +interface TxEnv { + suspend fun transactional(action: suspend () -> T): T + fun transactional(flow: Flow): Flow +}