Skip to content

Commit

Permalink
Ignore views registered as resource events in nexus ship (#4965)
Browse files Browse the repository at this point in the history
  • Loading branch information
olivergrabinski committed May 15, 2024
1 parent dbb4200 commit 858bb68
Showing 1 changed file with 27 additions and 22 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package ch.epfl.bluebrain.nexus.ship.resources
import cats.effect.IO
import cats.implicits.catsSyntaxOptionId
import ch.epfl.bluebrain.nexus.delta.kernel.Logger
import ch.epfl.bluebrain.nexus.delta.rdf.Vocabulary.nxv
import ch.epfl.bluebrain.nexus.delta.rdf.jsonld.api.JsonLdApi
import ch.epfl.bluebrain.nexus.delta.sdk.identities.model.Caller
import ch.epfl.bluebrain.nexus.delta.sdk.model.{IdSegment, IdSegmentRef}
Expand Down Expand Up @@ -46,28 +47,32 @@ class ResourceProcessor private (
def toIdSegment: IdSegment = IdSegmentRef(ref).value
}

event match {
case e: ResourceCreated =>
sourcePatcher(e.source).flatMap { patched =>
resources.create(e.id, project, e.schema.toIdSegment, patched, e.tag)
}
case e: ResourceUpdated =>
sourcePatcher(e.source).flatMap { patched =>
resources.update(e.id, project, e.schema.toIdSegment.some, cRev, patched, e.tag)
}
case e: ResourceSchemaUpdated =>
resources.updateAttachedSchema(e.id, project, e.schema.toIdSegment)
case e: ResourceRefreshed =>
resources.refresh(e.id, project, e.schema.toIdSegment.some)
case e: ResourceTagAdded =>
resources.tag(e.id, project, None, e.tag, e.targetRev, cRev)
case e: ResourceTagDeleted =>
resources.deleteTag(e.id, project, None, e.tag, cRev)
case e: ResourceDeprecated =>
resources.deprecate(e.id, project, None, cRev)
case e: ResourceUndeprecated =>
resources.undeprecate(e.id, project, None, cRev)
}
val viewType = nxv + "View"
// TODO: We are currently ignoring views registered as generic resources; check what we want to do
if (!event.types.contains(viewType)) {
event match {
case e: ResourceCreated =>
sourcePatcher(e.source).flatMap { patched =>
resources.create(e.id, project, e.schema.toIdSegment, patched, e.tag)
}
case e: ResourceUpdated =>
sourcePatcher(e.source).flatMap { patched =>
resources.update(e.id, project, e.schema.toIdSegment.some, cRev, patched, e.tag)
}
case e: ResourceSchemaUpdated =>
resources.updateAttachedSchema(e.id, project, e.schema.toIdSegment)
case e: ResourceRefreshed =>
resources.refresh(e.id, project, e.schema.toIdSegment.some)
case e: ResourceTagAdded =>
resources.tag(e.id, project, None, e.tag, e.targetRev, cRev)
case e: ResourceTagDeleted =>
resources.deleteTag(e.id, project, None, e.tag, cRev)
case e: ResourceDeprecated =>
resources.deprecate(e.id, project, None, cRev)
case e: ResourceUndeprecated =>
resources.undeprecate(e.id, project, None, cRev)
}
} else IO.unit
}.redeemWith(
{
case a: ResourceAlreadyExists => logger.warn(a)("The resource already exists").as(ImportStatus.Dropped)
Expand Down

0 comments on commit 858bb68

Please sign in to comment.