From 2c8da6c6ce1c16dda209a248912cc15de36adffb Mon Sep 17 00:00:00 2001 From: Marcin Procyk Date: Mon, 19 Dec 2022 12:01:38 +0100 Subject: [PATCH] refactor: remove methods that gets project and members by UUID (#2346) --- .../cache/impl/CacheInMemImplZSpec.scala | 12 ---- .../cache/impl/CacheRedisImplZSpec.scala | 12 ---- .../ProjectsMessagesADM.scala | 27 +-------- .../routing/admin/ProjectsRouteADM.scala | 58 ------------------- .../cache/impl/CacheServiceInMemImpl.scala | 10 ---- .../cache/impl/CacheServiceRedisImpl.scala | 17 ------ 6 files changed, 2 insertions(+), 134 deletions(-) diff --git a/webapi/src/it/scala/org/knora/webapi/store/cache/impl/CacheInMemImplZSpec.scala b/webapi/src/it/scala/org/knora/webapi/store/cache/impl/CacheInMemImplZSpec.scala index 967a86318e..0baf79fb78 100644 --- a/webapi/src/it/scala/org/knora/webapi/store/cache/impl/CacheInMemImplZSpec.scala +++ b/webapi/src/it/scala/org/knora/webapi/store/cache/impl/CacheInMemImplZSpec.scala @@ -6,7 +6,6 @@ package org.knora.webapi.store.cache.impl import dsp.errors.BadRequestException -import dsp.valueobjects.V2UuidValidation import org.knora.webapi.messages.StringFormatter import org.knora.webapi.messages.admin.responder.projectsmessages.ProjectADM import org.knora.webapi.messages.admin.responder.projectsmessages.ProjectIdentifierADM._ @@ -106,17 +105,6 @@ object CacheInMemImplZSpec extends ZIOSpecDefault { .getOrElseWith(e => throw BadRequestException(e.head.getMessage)) ) } yield assert(retrievedProject)(equalTo(Some(project))) - ), - test("successfully store a project and retrieve by UUID")( - for { - _ <- CacheService.putProjectADM(project) - retrievedProject <- - CacheService.getProjectADM( - UuidIdentifier - .fromString(V2UuidValidation.getUuidFromIri(project.id)) - .getOrElseWith(e => throw BadRequestException(e.head.getMessage)) - ) - } yield assert(retrievedProject)(equalTo(Some(project))) ) ) diff --git a/webapi/src/it/scala/org/knora/webapi/store/cache/impl/CacheRedisImplZSpec.scala b/webapi/src/it/scala/org/knora/webapi/store/cache/impl/CacheRedisImplZSpec.scala index 2a051c84a1..92a6fb4a56 100644 --- a/webapi/src/it/scala/org/knora/webapi/store/cache/impl/CacheRedisImplZSpec.scala +++ b/webapi/src/it/scala/org/knora/webapi/store/cache/impl/CacheRedisImplZSpec.scala @@ -10,7 +10,6 @@ import zio.test.Assertion._ import zio.test._ import dsp.errors.BadRequestException -import dsp.valueobjects.V2UuidValidation import org.knora.webapi.messages.StringFormatter import org.knora.webapi.messages.admin.responder.projectsmessages.ProjectADM import org.knora.webapi.messages.admin.responder.projectsmessages.ProjectIdentifierADM._ @@ -98,17 +97,6 @@ object CacheRedisImplZSpec extends ZIOSpecDefault { .getOrElseWith(e => throw BadRequestException(e.head.getMessage)) ) } yield assert(retrievedProject)(equalTo(Some(project))) - ), - test("successfully store a project and retrieve by UUID")( - for { - _ <- CacheService.putProjectADM(project) - retrievedProject <- - CacheService.getProjectADM( - UuidIdentifier - .fromString(V2UuidValidation.getUuidFromIri(project.id)) - .getOrElseWith(e => throw BadRequestException(e.head.getMessage)) - ) - } yield assert(retrievedProject)(equalTo(Some(project))) ) ) } diff --git a/webapi/src/main/scala/org/knora/webapi/messages/admin/responder/projectsmessages/ProjectsMessagesADM.scala b/webapi/src/main/scala/org/knora/webapi/messages/admin/responder/projectsmessages/ProjectsMessagesADM.scala index 3bf847cb6e..1464713860 100644 --- a/webapi/src/main/scala/org/knora/webapi/messages/admin/responder/projectsmessages/ProjectsMessagesADM.scala +++ b/webapi/src/main/scala/org/knora/webapi/messages/admin/responder/projectsmessages/ProjectsMessagesADM.scala @@ -20,7 +20,6 @@ import dsp.errors.BadRequestException import dsp.errors.OntologyConstraintException import dsp.errors.ValidationException import dsp.valueobjects.Iri.ProjectIri -import dsp.valueobjects.Iri._ import dsp.valueobjects.Project._ import dsp.valueobjects.V2 import org.knora.webapi.IRI @@ -511,7 +510,7 @@ case class ProjectADM( } /** - * Represents the project's identifier, which can be an IRI, shortcode, shortname or UUID. + * Represents the project's identifier, which can be an IRI, shortcode or shortname. */ sealed trait ProjectIdentifierADM { self => def asIriIdentifierOption: Option[String] = @@ -531,12 +530,6 @@ sealed trait ProjectIdentifierADM { self => case ShortnameIdentifier(value) => Some(value.value) case _ => None } - - def asUuidIdentifierOption: Option[String] = - self match { - case UuidIdentifier(value) => Some(UuidIdentifier.makeProjectIri(value.value)) - case _ => None - } } object ProjectIdentifierADM { @@ -580,25 +573,10 @@ object ProjectIdentifierADM { } } - /** - * Represents [[UuidIdentifier]] identifier. - * - * @param value that constructs the identifier in the type of [[Base64Uuid]] value object. - */ - final case class UuidIdentifier(value: Base64Uuid) extends ProjectIdentifierADM - object UuidIdentifier { - def fromString(value: String): Validation[ValidationException, UuidIdentifier] = - Base64Uuid.make(value).map { - UuidIdentifier(_) - } - - def makeProjectIri(uuid: String) = s"http://rdfh.ch/projects/${uuid}" - } - /** * Gets desired Project identifier value. * - * @param identifier either IRI, Shortname, Shortcode or UUID of the project. + * @param identifier either IRI, Shortname or Shortcode of the project. * @return identifier's value as [[String]] */ def getId(identifier: ProjectIdentifierADM): String = @@ -606,7 +584,6 @@ object ProjectIdentifierADM { case IriIdentifier(value) => value.value case ShortnameIdentifier(value) => value.value case ShortcodeIdentifier(value) => value.value - case UuidIdentifier(value) => UuidIdentifier.makeProjectIri(value.value) } } diff --git a/webapi/src/main/scala/org/knora/webapi/routing/admin/ProjectsRouteADM.scala b/webapi/src/main/scala/org/knora/webapi/routing/admin/ProjectsRouteADM.scala index cd0196e75d..2346774d89 100644 --- a/webapi/src/main/scala/org/knora/webapi/routing/admin/ProjectsRouteADM.scala +++ b/webapi/src/main/scala/org/knora/webapi/routing/admin/ProjectsRouteADM.scala @@ -52,13 +52,11 @@ class ProjectsRouteADM(routeData: KnoraRouteData) getKeywords() ~ getProjectKeywords() ~ getProjectByIri() ~ - getProjectByUuid() ~ getProjectByShortname() ~ getProjectByShortcode() ~ changeProject() ~ deleteProject() ~ getProjectMembersByIri() ~ - getProjectMembersByUuid() ~ getProjectMembersByShortname() ~ getProjectMembersByShortcode() ~ getProjectAdminMembersByIri() ~ @@ -212,34 +210,6 @@ class ProjectsRouteADM(routeData: KnoraRouteData) } } - /** - * Returns a single project identified through the Base64 encoded UUID. - */ - private def getProjectByUuid(): Route = - path(projectsBasePath / "uuid" / Segment) { value => - get { requestContext => - val requestMessage: Future[ProjectGetRequestADM] = for { - requestingUser <- getUserADM( - requestContext = requestContext, - routeData.appConfig - ) - - } yield ProjectGetRequestADM( - identifier = UuidIdentifier - .fromString(value) - .getOrElseWith(e => throw BadRequestException(e.head.getMessage)), - requestingUser = requestingUser - ) - - RouteUtilADM.runJsonRoute( - requestMessageF = requestMessage, - requestContext = requestContext, - appActor = appActor, - log = log - ) - } - } - /** * Returns a single project identified through the shortname. */ @@ -388,34 +358,6 @@ class ProjectsRouteADM(routeData: KnoraRouteData) } } - /** - * Returns all members of a project identified through the Base64 encoded UUID. - */ - private def getProjectMembersByUuid(): Route = - path(projectsBasePath / "uuid" / Segment / "members") { value => - get { requestContext => - val requestMessage: Future[ProjectMembersGetRequestADM] = for { - requestingUser <- getUserADM( - requestContext = requestContext, - routeData.appConfig - ) - - } yield ProjectMembersGetRequestADM( - identifier = UuidIdentifier - .fromString(value) - .getOrElseWith(e => throw BadRequestException(e.head.getMessage)), - requestingUser = requestingUser - ) - - RouteUtilADM.runJsonRoute( - requestMessageF = requestMessage, - requestContext = requestContext, - appActor = appActor, - log = log - ) - } - } - /** * Returns all members of a project identified through the shortname. */ diff --git a/webapi/src/main/scala/org/knora/webapi/store/cache/impl/CacheServiceInMemImpl.scala b/webapi/src/main/scala/org/knora/webapi/store/cache/impl/CacheServiceInMemImpl.scala index 0f683d5820..bf691db9da 100644 --- a/webapi/src/main/scala/org/knora/webapi/store/cache/impl/CacheServiceInMemImpl.scala +++ b/webapi/src/main/scala/org/knora/webapi/store/cache/impl/CacheServiceInMemImpl.scala @@ -125,7 +125,6 @@ case class CacheServiceInMemImpl( case IriIdentifier(value) => getProjectByIri(value) case ShortcodeIdentifier(value) => getProjectByShortcode(value) case ShortnameIdentifier(value) => getProjectByShortname(value) - case UuidIdentifier(value) => getProjectByUuid(value) }).tap(_ => ZIO.logDebug(s"Retrieved ProjectADM from Cache: $identifier")) /** @@ -160,15 +159,6 @@ case class CacheServiceInMemImpl( project <- projects.get(iri).some } yield project).commit.unsome - /** - * Retrieves the project by the UUID. - * - * @param uuid the project's UUID - * @return an optional [[ProjectADM]]. - */ - def getProjectByUuid(uuid: Iri.Base64Uuid) = - projects.get(UuidIdentifier.makeProjectIri(uuid.value)).commit - /** * Store string or byte array value under key. * diff --git a/webapi/src/main/scala/org/knora/webapi/store/cache/impl/CacheServiceRedisImpl.scala b/webapi/src/main/scala/org/knora/webapi/store/cache/impl/CacheServiceRedisImpl.scala index ba8d6cbf37..35742a9f3c 100644 --- a/webapi/src/main/scala/org/knora/webapi/store/cache/impl/CacheServiceRedisImpl.scala +++ b/webapi/src/main/scala/org/knora/webapi/store/cache/impl/CacheServiceRedisImpl.scala @@ -118,7 +118,6 @@ case class CacheServiceRedisImpl(pool: JedisPool) extends CacheService { case IriIdentifier(value) => getProjectByIri(value) case ShortcodeIdentifier(value) => getProjectByShortcode(value) case ShortnameIdentifier(value) => getProjectByShortname(value) - case UuidIdentifier(value) => getProjectByUuid(value) } /** @@ -171,22 +170,6 @@ case class CacheServiceRedisImpl(pool: JedisPool) extends CacheService { } } yield project) - /** - * Retrieves the project by its UUID. - * - * @param id the project's UUID - * @return an optional [[ProjectADM]]. - */ - def getProjectByUuid(uuid: Iri.Base64Uuid): Task[Option[ProjectADM]] = - (for { - bytes <- getBytesValue(UuidIdentifier.makeProjectIri(uuid.value)) - project <- - bytes match { - case Some(value) => CacheSerialization.deserialize[ProjectADM](value) - case None => ZIO.succeed(None) - } - } yield project) - /** * Store string value under key. *