From 32a5e74eaa09500ed5b5cf0153e5d7332a47ffa0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Goworko?= Date: Wed, 16 Oct 2024 18:44:18 +0200 Subject: [PATCH] Empty comment means no comment --- .../api/ScenarioActivityApiHttpService.scala | 23 +++++++-------- .../description/scenarioActivity/Dtos.scala | 2 +- .../scenarioActivity/Examples.scala | 4 +-- .../process/newactivity/ActivityService.scala | 2 +- .../repository/ProcessRepository.scala | 6 ++-- .../DbScenarioActivityRepository.scala | 12 ++++---- ...eAndAddMissingScenarioActivitiesSpec.scala | 2 +- .../ui/api/ProcessesResourcesSpec.scala | 7 +++-- docs-internal/api/nu-designer-openapi.yaml | 28 +++++++++---------- .../api/deployment/ScenarioActivity.scala | 11 +++++--- 10 files changed, 50 insertions(+), 47 deletions(-) diff --git a/designer/server/src/main/scala/pl/touk/nussknacker/ui/api/ScenarioActivityApiHttpService.scala b/designer/server/src/main/scala/pl/touk/nussknacker/ui/api/ScenarioActivityApiHttpService.scala index 19dcb5f6260..2afa5be8fa5 100644 --- a/designer/server/src/main/scala/pl/touk/nussknacker/ui/api/ScenarioActivityApiHttpService.scala +++ b/designer/server/src/main/scala/pl/touk/nussknacker/ui/api/ScenarioActivityApiHttpService.scala @@ -247,20 +247,17 @@ class ScenarioActivityApiHttpService( } private def toDto(scenarioComment: ScenarioComment): Dtos.ScenarioActivityComment = { - scenarioComment match { - case ScenarioComment.Available(comment, lastModifiedByUserName, lastModifiedAt) => - Dtos.ScenarioActivityComment( - content = Dtos.ScenarioActivityCommentContent.Available(comment), - lastModifiedBy = lastModifiedByUserName.value, - lastModifiedAt = lastModifiedAt, - ) - case ScenarioComment.Deleted(deletedByUserName, deletedAt) => - Dtos.ScenarioActivityComment( - content = Dtos.ScenarioActivityCommentContent.Deleted, - lastModifiedBy = deletedByUserName.value, - lastModifiedAt = deletedAt, - ) + val content = scenarioComment match { + case ScenarioComment.Available(comment, _, _) if comment.nonEmpty => + Dtos.ScenarioActivityCommentContent.Available(comment) + case ScenarioComment.NotAvailable(_, _) | ScenarioComment.Available(_, _, _) => + Dtos.ScenarioActivityCommentContent.NotAvailable } + Dtos.ScenarioActivityComment( + content = content, + lastModifiedBy = scenarioComment.lastModifiedByUserName.value, + lastModifiedAt = scenarioComment.lastModifiedAt, + ) } private def toDto(attachment: ScenarioAttachment): Dtos.ScenarioActivityAttachment = { diff --git a/designer/server/src/main/scala/pl/touk/nussknacker/ui/api/description/scenarioActivity/Dtos.scala b/designer/server/src/main/scala/pl/touk/nussknacker/ui/api/description/scenarioActivity/Dtos.scala index 7f095c86675..98ba4f5d6e4 100644 --- a/designer/server/src/main/scala/pl/touk/nussknacker/ui/api/description/scenarioActivity/Dtos.scala +++ b/designer/server/src/main/scala/pl/touk/nussknacker/ui/api/description/scenarioActivity/Dtos.scala @@ -260,7 +260,7 @@ object Dtos { final case class Available(value: String) extends ScenarioActivityCommentContent - case object Deleted extends ScenarioActivityCommentContent + case object NotAvailable extends ScenarioActivityCommentContent } diff --git a/designer/server/src/main/scala/pl/touk/nussknacker/ui/api/description/scenarioActivity/Examples.scala b/designer/server/src/main/scala/pl/touk/nussknacker/ui/api/description/scenarioActivity/Examples.scala index 39c3b375620..b2f13270670 100644 --- a/designer/server/src/main/scala/pl/touk/nussknacker/ui/api/description/scenarioActivity/Examples.scala +++ b/designer/server/src/main/scala/pl/touk/nussknacker/ui/api/description/scenarioActivity/Examples.scala @@ -120,7 +120,7 @@ object Examples { date = Instant.parse("2024-01-17T14:21:17Z"), scenarioVersionId = Some(1), comment = ScenarioActivityComment( - content = ScenarioActivityCommentContent.Deleted, + content = ScenarioActivityCommentContent.NotAvailable, lastModifiedBy = "John Doe", lastModifiedAt = Instant.parse("2024-01-18T14:21:17Z") ) @@ -193,7 +193,7 @@ object Examples { date = Instant.parse("2024-01-17T14:21:17Z"), scenarioVersionId = Some(1), comment = ScenarioActivityComment( - content = ScenarioActivityCommentContent.Deleted, + content = ScenarioActivityCommentContent.NotAvailable, lastModifiedBy = "some user", lastModifiedAt = Instant.parse("2024-01-17T14:21:17Z") ), diff --git a/designer/server/src/main/scala/pl/touk/nussknacker/ui/process/newactivity/ActivityService.scala b/designer/server/src/main/scala/pl/touk/nussknacker/ui/process/newactivity/ActivityService.scala index 87631d4bcca..22d8067c527 100644 --- a/designer/server/src/main/scala/pl/touk/nussknacker/ui/process/newactivity/ActivityService.scala +++ b/designer/server/src/main/scala/pl/touk/nussknacker/ui/process/newactivity/ActivityService.scala @@ -77,7 +77,7 @@ class ActivityService( scenarioVersionId = Some(ScenarioVersionId.from(scenarioGraphVersionId)), comment = commentOpt match { case Some(comment) => ScenarioComment.Available(comment.content, UserName(loggedUser.username), now) - case None => ScenarioComment.Deleted(UserName(loggedUser.username), now) + case None => ScenarioComment.NotAvailable(UserName(loggedUser.username), now) }, result = DeploymentResult.Success(clock.instant()), ) diff --git a/designer/server/src/main/scala/pl/touk/nussknacker/ui/process/repository/ProcessRepository.scala b/designer/server/src/main/scala/pl/touk/nussknacker/ui/process/repository/ProcessRepository.scala index 64a1b592403..c4bdfa484a7 100644 --- a/designer/server/src/main/scala/pl/touk/nussknacker/ui/process/repository/ProcessRepository.scala +++ b/designer/server/src/main/scala/pl/touk/nussknacker/ui/process/repository/ProcessRepository.scala @@ -218,9 +218,9 @@ class DBProcessRepository( lastModifiedAt = clock.instant(), ) case Some(_) | None => - ScenarioComment.Deleted( - deletedByUserName = UserName(loggedUser.username), - deletedAt = clock.instant(), + ScenarioComment.NotAvailable( + lastModifiedByUserName = UserName(loggedUser.username), + lastModifiedAt = clock.instant(), ) } ) diff --git a/designer/server/src/main/scala/pl/touk/nussknacker/ui/process/repository/activities/DbScenarioActivityRepository.scala b/designer/server/src/main/scala/pl/touk/nussknacker/ui/process/repository/activities/DbScenarioActivityRepository.scala index 723adb24acd..d9305f898b9 100644 --- a/designer/server/src/main/scala/pl/touk/nussknacker/ui/process/repository/activities/DbScenarioActivityRepository.scala +++ b/designer/server/src/main/scala/pl/touk/nussknacker/ui/process/repository/activities/DbScenarioActivityRepository.scala @@ -261,7 +261,7 @@ class DbScenarioActivityRepository(override protected val dbRef: DbRef, clock: C scenarioVersion <- scenarioActivity.scenarioVersionId content <- comment match { case ScenarioComment.Available(comment, _, _) => Some(comment) - case ScenarioComment.Deleted(_, _) => None + case ScenarioComment.NotAvailable(_, _) => None } } yield Legacy.Comment( id = id, @@ -498,14 +498,14 @@ class DbScenarioActivityRepository(override protected val dbRef: DbRef, clock: C private def comment(scenarioComment: ScenarioComment): Option[String] = { scenarioComment match { case ScenarioComment.Available(comment, _, _) => Some(comment.value) - case ScenarioComment.Deleted(_, _) => None + case ScenarioComment.NotAvailable(_, _) => None } } private def lastModifiedByUserName(scenarioComment: ScenarioComment): Option[String] = { val userName = scenarioComment match { case ScenarioComment.Available(_, lastModifiedByUserName, _) => lastModifiedByUserName - case ScenarioComment.Deleted(deletedByUserName, _) => deletedByUserName + case ScenarioComment.NotAvailable(deletedByUserName, _) => deletedByUserName } Some(userName.value) } @@ -677,9 +677,9 @@ class DbScenarioActivityRepository(override protected val dbRef: DbRef, clock: C lastModifiedAt = lastModifiedAt.toInstant ) case None => - ScenarioComment.Deleted( - deletedByUserName = UserName(lastModifiedByUserName), - deletedAt = lastModifiedAt.toInstant + ScenarioComment.NotAvailable( + lastModifiedByUserName = UserName(lastModifiedByUserName), + lastModifiedAt = lastModifiedAt.toInstant ) } } diff --git a/designer/server/src/test/scala/db/migration/V1_058__UpdateAndAddMissingScenarioActivitiesSpec.scala b/designer/server/src/test/scala/db/migration/V1_058__UpdateAndAddMissingScenarioActivitiesSpec.scala index 13b48020c19..a22489fde21 100644 --- a/designer/server/src/test/scala/db/migration/V1_058__UpdateAndAddMissingScenarioActivitiesSpec.scala +++ b/designer/server/src/test/scala/db/migration/V1_058__UpdateAndAddMissingScenarioActivitiesSpec.scala @@ -87,7 +87,7 @@ class V1_058__UpdateAndAddMissingScenarioActivitiesSpec date = activities(0).date, previousScenarioVersionId = None, scenarioVersionId = Some(ScenarioVersionId(2)), - comment = ScenarioComment.Deleted(UserName("Test User"), activities(0).date) + comment = ScenarioComment.NotAvailable(UserName("Test User"), activities(0).date) ), ScenarioActivity.ScenarioCreated( scenarioId = ScenarioId(process.id.value), diff --git a/designer/server/src/test/scala/pl/touk/nussknacker/ui/api/ProcessesResourcesSpec.scala b/designer/server/src/test/scala/pl/touk/nussknacker/ui/api/ProcessesResourcesSpec.scala index 6b6519a501b..cccd7d4afbf 100644 --- a/designer/server/src/test/scala/pl/touk/nussknacker/ui/api/ProcessesResourcesSpec.scala +++ b/designer/server/src/test/scala/pl/touk/nussknacker/ui/api/ProcessesResourcesSpec.scala @@ -36,7 +36,10 @@ import pl.touk.nussknacker.test.config.{WithAccessControlCheckingDesignerConfig, import pl.touk.nussknacker.test.utils.domain.{ProcessTestData, TestFactory} import pl.touk.nussknacker.test.utils.scalas.AkkaHttpExtensions.toRequestEntity import pl.touk.nussknacker.ui.api.description.scenarioActivity.Dtos.Legacy.ProcessActivity -import pl.touk.nussknacker.ui.api.description.scenarioActivity.Dtos.ScenarioActivityCommentContent.{Available, Deleted} +import pl.touk.nussknacker.ui.api.description.scenarioActivity.Dtos.ScenarioActivityCommentContent.{ + Available, + NotAvailable +} import pl.touk.nussknacker.ui.api.description.scenarioActivity.Dtos.{ ScenarioActivities, ScenarioActivity, @@ -732,7 +735,7 @@ class ProcessesResourcesSpec scenarioVersionId = Some(2L), comment = Some( ScenarioActivityComment( - content = Deleted, + content = NotAvailable, lastModifiedBy = "allpermuser", lastModifiedAt = activities(1).comment.get.lastModifiedAt ) diff --git a/docs-internal/api/nu-designer-openapi.yaml b/docs-internal/api/nu-designer-openapi.yaml index 2f8bdc6dc0d..78f667caa0f 100644 --- a/docs-internal/api/nu-designer-openapi.yaml +++ b/docs-internal/api/nu-designer-openapi.yaml @@ -4162,7 +4162,7 @@ paths: scenarioVersionId: 1 comment: content: - status: DELETED + status: NOT_AVAILABLE lastModifiedBy: John Doe lastModifiedAt: '2024-01-18T14:21:17Z' additionalFields: [] @@ -4246,7 +4246,7 @@ paths: scenarioVersionId: 1 comment: content: - status: DELETED + status: NOT_AVAILABLE lastModifiedBy: some user lastModifiedAt: '2024-01-17T14:21:17Z' additionalFields: @@ -4918,14 +4918,6 @@ components: properties: status: type: string - Deleted1: - title: Deleted - type: object - required: - - status - properties: - status: - type: string Dict: title: Dict type: object @@ -5961,6 +5953,14 @@ components: $ref: '#/components/schemas/NodeValidationError' validationPerformed: type: boolean + NotAvailable: + title: NotAvailable + type: object + required: + - status + properties: + status: + type: string Notification: title: Notification type: object @@ -6356,12 +6356,12 @@ components: title: ScenarioActivityAttachmentFile oneOf: - $ref: '#/components/schemas/Available1' - - $ref: '#/components/schemas/Deleted1' + - $ref: '#/components/schemas/Deleted' discriminator: propertyName: status mapping: AVAILABLE: '#/components/schemas/Available1' - DELETED: '#/components/schemas/Deleted1' + DELETED: '#/components/schemas/Deleted' ScenarioActivityComment: title: ScenarioActivityComment type: object @@ -6381,12 +6381,12 @@ components: title: ScenarioActivityCommentContent oneOf: - $ref: '#/components/schemas/Available' - - $ref: '#/components/schemas/Deleted' + - $ref: '#/components/schemas/NotAvailable' discriminator: propertyName: status mapping: AVAILABLE: '#/components/schemas/Available' - DELETED: '#/components/schemas/Deleted' + NOT_AVAILABLE: '#/components/schemas/NotAvailable' ScenarioActivityMetadata: title: ScenarioActivityMetadata type: object diff --git a/extensions-api/src/main/scala/pl/touk/nussknacker/engine/api/deployment/ScenarioActivity.scala b/extensions-api/src/main/scala/pl/touk/nussknacker/engine/api/deployment/ScenarioActivity.scala index ac132479585..99a42db7235 100644 --- a/extensions-api/src/main/scala/pl/touk/nussknacker/engine/api/deployment/ScenarioActivity.scala +++ b/extensions-api/src/main/scala/pl/touk/nussknacker/engine/api/deployment/ScenarioActivity.scala @@ -37,7 +37,10 @@ object ScenarioUser { final case class UserId(value: String) final case class UserName(value: String) -sealed trait ScenarioComment +sealed trait ScenarioComment { + def lastModifiedByUserName: UserName + def lastModifiedAt: Instant +} object ScenarioComment { @@ -47,9 +50,9 @@ object ScenarioComment { lastModifiedAt: Instant, ) extends ScenarioComment - final case class Deleted( - deletedByUserName: UserName, - deletedAt: Instant, + final case class NotAvailable( + lastModifiedByUserName: UserName, + lastModifiedAt: Instant, ) extends ScenarioComment }