ActionContext

Struct ActionContext 

Source
pub struct ActionContext {
    pub auth: AuthContext,
    pub request: RequestMetadata,
    /* private fields */
}
Expand description

Context for action functions (can call external APIs).

Fields§

§auth: AuthContext

Authentication context.

§request: RequestMetadata

Request metadata.

Implementations§

Source§

impl ActionContext

Source

pub fn new( db_pool: PgPool, auth: AuthContext, request: RequestMetadata, http_client: Client, ) -> Self

Create a new action context.

Source

pub fn with_dispatch( db_pool: PgPool, auth: AuthContext, request: RequestMetadata, http_client: Client, job_dispatch: Option<Arc<dyn JobDispatch>>, workflow_dispatch: Option<Arc<dyn WorkflowDispatch>>, ) -> Self

Create an action context with dispatch capabilities.

Source

pub fn with_env( db_pool: PgPool, auth: AuthContext, request: RequestMetadata, http_client: Client, job_dispatch: Option<Arc<dyn JobDispatch>>, workflow_dispatch: Option<Arc<dyn WorkflowDispatch>>, env_provider: Arc<dyn EnvProvider>, ) -> Self

Create an action context with a custom environment provider.

Source

pub fn db(&self) -> &PgPool

Get a reference to the database pool.

Source

pub fn http(&self) -> &Client

Get a reference to the HTTP client.

Source

pub fn require_user_id(&self) -> Result<Uuid>

Get the authenticated user ID or return an error.

Source

pub async fn dispatch_job<T: Serialize>( &self, job_type: &str, args: T, ) -> Result<Uuid>

Dispatch a background job.

§Arguments
  • job_type - The registered name of the job type
  • args - The arguments for the job (will be serialized to JSON)
§Returns

The UUID of the dispatched job, or an error if dispatch is not available.

Source

pub async fn start_workflow<T: Serialize>( &self, workflow_name: &str, input: T, ) -> Result<Uuid>

Start a workflow.

§Arguments
  • workflow_name - The registered name of the workflow
  • input - The input for the workflow (will be serialized to JSON)
§Returns

The UUID of the started workflow run, or an error if dispatch is not available.

Trait Implementations§

Source§

impl EnvAccess for ActionContext

Source§

fn env_provider(&self) -> &dyn EnvProvider

Get the environment provider.
Source§

fn env(&self, key: &str) -> Option<String>

Get an environment variable. Read more
Source§

fn env_or(&self, key: &str, default: &str) -> String

Get an environment variable with a default value. Read more
Source§

fn env_require(&self, key: &str) -> Result<String>

Get a required environment variable. Read more
Source§

fn env_parse<T: FromStr>(&self, key: &str) -> Result<T>
where T::Err: Display,

Get an environment variable and parse it to the specified type. Read more
Source§

fn env_parse_or<T: FromStr>(&self, key: &str, default: T) -> Result<T>
where T::Err: Display,

Get an environment variable and parse it, with a default. Read more
Source§

fn env_contains(&self, key: &str) -> bool

Check if an environment variable is set.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more