Skip to content

Commit

Permalink
refactor: Use KnoraRepo instead of MessageRelay in ResourcesResponderV2
Browse files Browse the repository at this point in the history
  • Loading branch information
seakayone committed Nov 14, 2023
1 parent ff9df5f commit 8b9f4cc
Showing 1 changed file with 26 additions and 46 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,65 +6,45 @@
package org.knora.webapi.responders.v2

import com.typesafe.scalalogging.LazyLogging
import zio.ZIO
import zio.*

import java.time.Instant
import java.util.UUID
import scala.concurrent.Future

import dsp.errors.*
import dsp.valueobjects.Iri
import dsp.valueobjects.UuidUtil
import dsp.valueobjects.{Iri, UuidUtil}
import org.knora.webapi.*
import org.knora.webapi.config.AppConfig
import org.knora.webapi.core.MessageHandler
import org.knora.webapi.core.MessageRelay
import org.knora.webapi.messages.IriConversions.*
import org.knora.webapi.core.{MessageHandler, MessageRelay}
import org.knora.webapi.messages.*
import org.knora.webapi.messages.admin.responder.permissionsmessages.DefaultObjectAccessPermissionsStringForResourceClassGetADM
import org.knora.webapi.messages.admin.responder.permissionsmessages.DefaultObjectAccessPermissionsStringResponseADM
import org.knora.webapi.messages.admin.responder.permissionsmessages.ResourceCreateOperation
import org.knora.webapi.messages.admin.responder.projectsmessages.ProjectIdentifierADM.*
import org.knora.webapi.messages.IriConversions.*
import org.knora.webapi.messages.admin.responder.permissionsmessages.{DefaultObjectAccessPermissionsStringForResourceClassGetADM, DefaultObjectAccessPermissionsStringResponseADM, ResourceCreateOperation}
import org.knora.webapi.messages.admin.responder.projectsmessages.*
import org.knora.webapi.messages.admin.responder.projectsmessages.ProjectIdentifierADM.*
import org.knora.webapi.messages.admin.responder.usersmessages.UserADM
import org.knora.webapi.messages.store.sipimessages.SipiGetTextFileRequest
import org.knora.webapi.messages.store.sipimessages.SipiGetTextFileResponse
import org.knora.webapi.messages.store.sipimessages.{SipiGetTextFileRequest, SipiGetTextFileResponse}
import org.knora.webapi.messages.twirl.SparqlTemplateResourceToCreate
import org.knora.webapi.messages.twirl.queries.sparql
import org.knora.webapi.messages.util.ConstructResponseUtilV2.MappingAndXSLTransformation
import org.knora.webapi.messages.util.PermissionUtilADM.AGreaterThanB
import org.knora.webapi.messages.util.PermissionUtilADM.DeletePermission
import org.knora.webapi.messages.util.PermissionUtilADM.ModifyPermission
import org.knora.webapi.messages.util.PermissionUtilADM.PermissionComparisonResult
import org.knora.webapi.messages.util.*
import org.knora.webapi.messages.util.ConstructResponseUtilV2.MappingAndXSLTransformation
import org.knora.webapi.messages.util.PermissionUtilADM.{AGreaterThanB, DeletePermission, ModifyPermission, PermissionComparisonResult}
import org.knora.webapi.messages.util.rdf.*
import org.knora.webapi.messages.util.search.gravsearch.GravsearchParser
import org.knora.webapi.messages.util.standoff.StandoffTagUtilV2
import org.knora.webapi.messages.v2.responder.SuccessResponseV2
import org.knora.webapi.messages.v2.responder.ontologymessages.OwlCardinality.*
import org.knora.webapi.messages.v2.responder.ontologymessages.*
import org.knora.webapi.messages.v2.responder.ontologymessages.OwlCardinality.*
import org.knora.webapi.messages.v2.responder.resourcemessages.*
import org.knora.webapi.messages.v2.responder.searchmessages.GravsearchRequestV2
import org.knora.webapi.messages.v2.responder.standoffmessages.GetMappingRequestV2
import org.knora.webapi.messages.v2.responder.standoffmessages.GetMappingResponseV2
import org.knora.webapi.messages.v2.responder.standoffmessages.GetXSLTransformationRequestV2
import org.knora.webapi.messages.v2.responder.standoffmessages.GetXSLTransformationResponseV2
import org.knora.webapi.messages.v2.responder.standoffmessages.{GetMappingRequestV2, GetMappingResponseV2, GetXSLTransformationRequestV2, GetXSLTransformationResponseV2}
import org.knora.webapi.messages.v2.responder.valuemessages.*
import org.knora.webapi.responders.IriLocker
import org.knora.webapi.responders.IriService
import org.knora.webapi.responders.Responder
import org.knora.webapi.slice.admin.domain.service.ProjectADMService
import org.knora.webapi.slice.ontology.domain.model.Cardinality.AtLeastOne
import org.knora.webapi.slice.ontology.domain.model.Cardinality.ExactlyOne
import org.knora.webapi.slice.ontology.domain.model.Cardinality.ZeroOrOne
import org.knora.webapi.responders.{IriLocker, IriService, Responder}
import org.knora.webapi.slice.admin.domain.service.{KnoraProjectRepo, ProjectADMService}
import org.knora.webapi.slice.ontology.domain.model.Cardinality.{AtLeastOne, ExactlyOne, ZeroOrOne}
import org.knora.webapi.store.iiif.errors.SipiException
import org.knora.webapi.store.triplestore.api.TriplestoreService
import org.knora.webapi.store.triplestore.api.TriplestoreService.Queries.Construct
import org.knora.webapi.store.triplestore.api.TriplestoreService.Queries.Select
import org.knora.webapi.store.triplestore.api.TriplestoreService.Queries.Update
import org.knora.webapi.util.FileUtil
import org.knora.webapi.util.ZioHelper
import org.knora.webapi.store.triplestore.api.TriplestoreService.Queries.{Construct, Select, Update}
import org.knora.webapi.util.{FileUtil, ZioHelper}
import zio.*

import java.time.Instant
import java.util.UUID
import scala.concurrent.Future

trait ResourcesResponderV2

Expand All @@ -77,6 +57,7 @@ final case class ResourcesResponderV2Live(
standoffTagUtilV2: StandoffTagUtilV2,
resourceUtilV2: ResourceUtilV2,
permissionUtilADM: PermissionUtilADM,
projectRepo: KnoraProjectRepo,
implicit val stringFormatter: StringFormatter
) extends ResourcesResponderV2
with MessageHandler
Expand Down Expand Up @@ -2418,11 +2399,10 @@ final case class ResourcesResponderV2Live(
.fromString(projectResourceHistoryEventsGetRequest.projectIri)
.toZIO
.mapError(e => BadRequestException(e.getMessage))
projectInfoResponse <- messageRelay.ask[ProjectGetResponseADM](ProjectGetRequestADM(projectId))
_ <- projectRepo.findById(projectId).someOrFail(NotFoundException(s"Project ${projectId.value.value} not found"))

// Do a SELECT prequery to get the IRIs of the resources that belong to the project.
prequery = sparql.v2.txt
.getAllResourcesInProjectPrequery(projectIri = projectInfoResponse.project.id)
prequery = sparql.v2.txt.getAllResourcesInProjectPrequery(projectId.value.value)
sparqlSelectResponse <- triplestore.query(Select(prequery))
mainResourceIris = sparqlSelectResponse.results.bindings.map(_.rowMap("resource"))
// For each resource IRI return history events
Expand Down Expand Up @@ -2861,8 +2841,7 @@ final case class ResourcesResponderV2Live(
object ResourcesResponderV2Live {

val layer: URLayer[
StringFormatter & PermissionUtilADM & ResourceUtilV2 & StandoffTagUtilV2 & ConstructResponseUtilV2 &
TriplestoreService & MessageRelay & IriService & AppConfig,
AppConfig & ConstructResponseUtilV2 & IriService & KnoraProjectRepo & MessageRelay & PermissionUtilADM & ResourceUtilV2 & StandoffTagUtilV2 & StringFormatter & TriplestoreService,
ResourcesResponderV2
] = ZLayer.fromZIO {
for {
Expand All @@ -2874,8 +2853,9 @@ object ResourcesResponderV2Live {
su <- ZIO.service[StandoffTagUtilV2]
ru <- ZIO.service[ResourceUtilV2]
pu <- ZIO.service[PermissionUtilADM]
pr <- ZIO.service[KnoraProjectRepo]
sf <- ZIO.service[StringFormatter]
handler <- mr.subscribe(ResourcesResponderV2Live(config, iriS, mr, ts, cu, su, ru, pu, sf))
handler <- mr.subscribe(ResourcesResponderV2Live(config, iriS, mr, ts, cu, su, ru, pu, pr, sf))
} yield handler
}
}

0 comments on commit 8b9f4cc

Please sign in to comment.