Skip to content
This repository was archived by the owner on Jun 17, 2024. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
403 changes: 233 additions & 170 deletions core/src/main/protobuf/EventStoreMessages.proto

Large diffs are not rendered by default.

3 changes: 2 additions & 1 deletion core/src/main/scala/eventstore/core/EsException.scala
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,5 @@ object CannotEstablishConnectionException {
@SerialVersionUID(1L) case object ScavengeUnauthorizedException extends EsException("Not authorized to scavenge")
@SerialVersionUID(1L) final case class CommandNotExpectedException(message: String) extends EsException(message)
@SerialVersionUID(1L) final case class RetriesLimitReachedException(message: String) extends EsException(message)
@SerialVersionUID(1L) final case class InvalidOperationException(message: String) extends EsException(message)
@SerialVersionUID(1L) final case class InvalidOperationException(message: String) extends EsException(message)
@SerialVersionUID(1L) case object UnrecognizedException extends EsException("Unrecognized error from the server")
10 changes: 10 additions & 0 deletions core/src/main/scala/eventstore/core/SystemError.scala
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ object OperationError {
case object StreamDeleted extends OperationError
case object InvalidTransaction extends OperationError
case object AccessDenied extends OperationError
case object Unrecognized extends OperationError
}

sealed trait ReadEventError extends ServerError
Expand All @@ -32,6 +33,7 @@ object ReadEventError {
case object StreamNotFound extends ReadEventError
case object StreamDeleted extends ReadEventError
case object AccessDenied extends ReadEventError
case object Unrecognized extends ReadEventError
final case class Error(message: Option[String]) extends ReadEventError {
override def toString = s"ReadEventError($message)"
}
Expand All @@ -43,6 +45,7 @@ object ReadStreamEventsError {
case object StreamNotFound extends ReadStreamEventsError
case object StreamDeleted extends ReadStreamEventsError
case object AccessDenied extends ReadStreamEventsError
case object Unrecognized extends ReadStreamEventsError
final case class Error(message: Option[String]) extends ReadStreamEventsError {
override def toString = s"ReadStreamEventsError($message)"
}
Expand All @@ -52,6 +55,7 @@ sealed trait ReadAllEventsError extends ServerError

object ReadAllEventsError {
case object AccessDenied extends ReadAllEventsError
case object Unrecognized extends ReadAllEventsError
final case class Error(message: Option[String]) extends ReadAllEventsError {
override def toString = s"ReadAllEventsError($message)"
}
Expand All @@ -68,6 +72,7 @@ object NotHandled {
case object TooBusy extends Reason
final case class NotMaster(mi: MasterInfo) extends Reason
case object IsReadOnly extends Reason
case object Unrecognized extends Reason

final case class MasterInfo(
tcpAddress: InetSocketAddress,
Expand All @@ -87,20 +92,23 @@ object SubscriptionDropped {
case object NotFound extends SubscriptionDropped
case object PersistentSubscriptionDeleted extends SubscriptionDropped
case object SubscriberMaxCountReached extends SubscriptionDropped
case object Unrecognized extends SubscriptionDropped
}

sealed trait ScavengeError extends SystemError

object ScavengeError {
case object InProgress extends ScavengeError
case object Unauthorized extends ScavengeError
case object Unrecognized extends ScavengeError
}

sealed trait CreatePersistentSubscriptionError extends SystemError

object CreatePersistentSubscriptionError {
case object AccessDenied extends CreatePersistentSubscriptionError
case object AlreadyExists extends CreatePersistentSubscriptionError
case object Unrecognized extends CreatePersistentSubscriptionError
final case class Error(message: Option[String]) extends CreatePersistentSubscriptionError {
override def toString = s"CreatePersistentSubscriptionError($message)"
}
Expand All @@ -111,6 +119,7 @@ sealed trait UpdatePersistentSubscriptionError extends SystemError
object UpdatePersistentSubscriptionError {
case object AccessDenied extends UpdatePersistentSubscriptionError
case object DoesNotExist extends UpdatePersistentSubscriptionError
case object Unrecognized extends UpdatePersistentSubscriptionError
final case class Error(message: Option[String]) extends UpdatePersistentSubscriptionError {
override def toString = s"UpdatePersistentSubscriptionError($message)"
}
Expand All @@ -121,6 +130,7 @@ sealed trait DeletePersistentSubscriptionError extends SystemError
object DeletePersistentSubscriptionError {
case object AccessDenied extends DeletePersistentSubscriptionError
case object DoesNotExist extends DeletePersistentSubscriptionError
case object Unrecognized extends DeletePersistentSubscriptionError
final case class Error(message: Option[String]) extends DeletePersistentSubscriptionError {
override def toString = s"DeletePersistentSubscriptionError($message)"
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ private[eventstore] final case class CreatePersistentSubscriptionInspection(out:
val result = error match {
case AccessDenied => AccessDeniedException(s"Read access denied for $streamId")
case AlreadyExists => InvalidOperationException(s"Subscription group ${out.groupName} on stream $streamId already exists")
case Unrecognized => UnrecognizedException
case e: Error => ServerErrorException(e.message.getOrElse(e.toString))
}
Fail(result)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package eventstore
package core
package operations

import DeletePersistentSubscriptionError.{Error, DoesNotExist, AccessDenied}
import DeletePersistentSubscriptionError.{Error, DoesNotExist, AccessDenied, Unrecognized}
import PersistentSubscription.{Delete, DeleteCompleted}
import Inspection.Decision.Fail

Expand All @@ -13,6 +13,7 @@ private[eventstore] final case class DeletePersistentSubscriptionInspection(out:
val result = error match {
case AccessDenied => AccessDeniedException(s"Write access denied for stream $streamId")
case DoesNotExist => InvalidOperationException(s"Subscription group ${out.groupName} on stream $streamId does not exist")
case Unrecognized => UnrecognizedException
case e: Error => ServerErrorException(e.message.getOrElse(e.toString))
}
Fail(result)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ private[eventstore] final case class DeleteStreamInspection(out: DeleteStream)
case StreamDeleted => Fail(streamDeletedException)
case InvalidTransaction => Fail(InvalidTransactionException)
case AccessDenied => Fail(new AccessDeniedException(s"Write access denied for $streamId"))
case Unrecognized => Fail(UnrecognizedException)
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ private[eventstore] final case class ReadAllEventsInspection(out: ReadAllEvents)
error match {
case e: Error => Fail(ServerErrorException(e.message.getOrElse(e.toString)))
case AccessDenied => Fail(AccessDeniedException(s"Read access denied for $streamId"))
case Unrecognized => Fail(UnrecognizedException)
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ private[eventstore] final case class ReadEventInspection(out: ReadEvent)
case StreamDeleted => StreamDeletedException(s"Read failed due to $streamId has been deleted")
case e: Error => ServerErrorException(e.message.getOrElse(e.toString))
case AccessDenied => AccessDeniedException(s"Read access denied for $streamId")
case Unrecognized => UnrecognizedException
}

Fail(result)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ private[eventstore] final case class ReadStreamEventsInspection(out: ReadStreamE
case StreamDeleted => StreamDeletedException(s"Read failed due to $streamId has been deleted")
case e: Error => ServerErrorException(e.message.getOrElse(e.toString))
case AccessDenied => AccessDeniedException(s"Read access denied for $streamId")
case Unrecognized => UnrecognizedException
}

Fail(result)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ private[eventstore] object ScavengeDatabaseInspection
val result = error match {
case InProgress => ScavengeInProgressException
case Unauthorized => ScavengeUnauthorizedException
case Unrecognized => UnrecognizedException
}
Fail(result)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ private[eventstore] final case class TransactionCommitInspection(out: Transactio
case StreamDeleted => Fail(streamDeletedException)
case InvalidTransaction => Fail(InvalidTransactionException)
case AccessDenied => Fail(AccessDeniedException(s"Write access denied"))
case Unrecognized => Fail(UnrecognizedException)
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ private[eventstore] final case class TransactionStartInspection(out: Transaction
case StreamDeleted => Fail(streamDeletedException)
case InvalidTransaction => Fail(InvalidTransactionException)
case AccessDenied => Fail(AccessDeniedException(s"Write access denied for $streamId"))
case Unrecognized => Fail(UnrecognizedException)
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ private[eventstore] final case class TransactionWriteInspection(out: Transaction
case StreamDeleted => Unexpected
case InvalidTransaction => Unexpected
case AccessDenied => Fail(AccessDeniedException(s"Write access denied"))
case Unrecognized => Fail(UnrecognizedException)
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ private[eventstore] final case class UpdatePersistentSubscriptionInspection(out:
case AccessDenied => AccessDeniedException(s"Write access denied for stream $streamId")
case DoesNotExist => InvalidOperationException(s"Subscription group ${out.groupName} on stream $streamId does not exist")
case e: Error => ServerErrorException(e.message.getOrElse(e.toString))
case Unrecognized => UnrecognizedException
}
Fail(result)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ private[eventstore] final case class WriteEventsInspection(out: WriteEvents)
case StreamDeleted => Fail(streamDeleted)
case InvalidTransaction => Fail(InvalidTransactionException)
case AccessDenied => Fail(accessDenied)
case Unrecognized => Fail(UnrecognizedException)
}

def accessDenied: AccessDeniedException = AccessDeniedException(
Expand Down
Loading