pub struct MutationContext {
pub auth: AuthContext,
pub request: RequestMetadata,
/* private fields */
}Expand description
Context for mutation functions (transactional database access).
Fields§
§auth: AuthContextAuthentication context.
request: RequestMetadataRequest metadata.
Implementations§
Source§impl MutationContext
impl MutationContext
Sourcepub fn new(db_pool: PgPool, auth: AuthContext, request: RequestMetadata) -> Self
pub fn new(db_pool: PgPool, auth: AuthContext, request: RequestMetadata) -> Self
Create a new mutation context.
Sourcepub fn with_dispatch(
db_pool: PgPool,
auth: AuthContext,
request: RequestMetadata,
http_client: CircuitBreakerClient,
job_dispatch: Option<Arc<dyn JobDispatch>>,
workflow_dispatch: Option<Arc<dyn WorkflowDispatch>>,
) -> Self
pub fn with_dispatch( db_pool: PgPool, auth: AuthContext, request: RequestMetadata, http_client: CircuitBreakerClient, job_dispatch: Option<Arc<dyn JobDispatch>>, workflow_dispatch: Option<Arc<dyn WorkflowDispatch>>, ) -> Self
Create a mutation context with dispatch capabilities.
Sourcepub fn with_env(
db_pool: PgPool,
auth: AuthContext,
request: RequestMetadata,
http_client: CircuitBreakerClient,
job_dispatch: Option<Arc<dyn JobDispatch>>,
workflow_dispatch: Option<Arc<dyn WorkflowDispatch>>,
env_provider: Arc<dyn EnvProvider>,
) -> Self
pub fn with_env( db_pool: PgPool, auth: AuthContext, request: RequestMetadata, http_client: CircuitBreakerClient, job_dispatch: Option<Arc<dyn JobDispatch>>, workflow_dispatch: Option<Arc<dyn WorkflowDispatch>>, env_provider: Arc<dyn EnvProvider>, ) -> Self
Create a mutation context with a custom environment provider.
Sourcepub fn with_transaction(
db_pool: PgPool,
tx: Transaction<'static, Postgres>,
auth: AuthContext,
request: RequestMetadata,
http_client: CircuitBreakerClient,
job_info_lookup: JobInfoLookup,
) -> (Self, Arc<AsyncMutex<Transaction<'static, Postgres>>>, Arc<Mutex<OutboxBuffer>>)
pub fn with_transaction( db_pool: PgPool, tx: Transaction<'static, Postgres>, auth: AuthContext, request: RequestMetadata, http_client: CircuitBreakerClient, job_info_lookup: JobInfoLookup, ) -> (Self, Arc<AsyncMutex<Transaction<'static, Postgres>>>, Arc<Mutex<OutboxBuffer>>)
Returns handles to transaction and outbox for the caller to commit/flush.
pub fn is_transactional(&self) -> bool
pub fn db(&self) -> DbConn<'_>
Sourcepub fn pool(&self) -> &PgPool
pub fn pool(&self) -> &PgPool
Direct pool access for operations that cannot run inside a transaction.
Sourcepub fn http(&self) -> &Client
pub fn http(&self) -> &Client
Get the HTTP client for external requests.
The client includes circuit breaker protection that tracks failure rates per host. After repeated failures, requests fail fast to prevent cascade failures when downstream services are unhealthy.
Sourcepub fn http_with_circuit_breaker(&self) -> &CircuitBreakerClient
pub fn http_with_circuit_breaker(&self) -> &CircuitBreakerClient
Get the circuit breaker client directly for advanced usage.
pub fn require_user_id(&self) -> Result<Uuid>
pub fn require_subject(&self) -> Result<&str>
Sourcepub async fn dispatch_job<T: Serialize>(
&self,
job_type: &str,
args: T,
) -> Result<Uuid>
pub async fn dispatch_job<T: Serialize>( &self, job_type: &str, args: T, ) -> Result<Uuid>
In transactional mode, buffers for atomic commit; otherwise dispatches immediately.
Sourcepub async fn dispatch_job_with_context<T: Serialize>(
&self,
job_type: &str,
args: T,
context: Value,
) -> Result<Uuid>
pub async fn dispatch_job_with_context<T: Serialize>( &self, job_type: &str, args: T, context: Value, ) -> Result<Uuid>
Dispatch a job with initial context.
Trait Implementations§
Source§impl EnvAccess for MutationContext
impl EnvAccess for MutationContext
Source§fn env_provider(&self) -> &dyn EnvProvider
fn env_provider(&self) -> &dyn EnvProvider
Source§fn env_or(&self, key: &str, default: &str) -> String
fn env_or(&self, key: &str, default: &str) -> String
Source§fn env_require(&self, key: &str) -> Result<String>
fn env_require(&self, key: &str) -> Result<String>
Source§fn env_parse<T: FromStr>(&self, key: &str) -> Result<T>
fn env_parse<T: FromStr>(&self, key: &str) -> Result<T>
Source§fn env_parse_or<T: FromStr>(&self, key: &str, default: T) -> Result<T>
fn env_parse_or<T: FromStr>(&self, key: &str, default: T) -> Result<T>
Source§fn env_contains(&self, key: &str) -> bool
fn env_contains(&self, key: &str) -> bool
Auto Trait Implementations§
impl Freeze for MutationContext
impl !RefUnwindSafe for MutationContext
impl Send for MutationContext
impl Sync for MutationContext
impl Unpin for MutationContext
impl !UnwindSafe for MutationContext
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more