pub struct Context {
pub method: String,
pub path: String,
pub params: HashMap<String, String>,
pub headers: HashMap<String, String>,
pub query: HashMap<String, String>,
pub body: Value,
pub user_id: Option<String>,
pub is_admin: bool,
pub request_id: Option<String>,
}Expand description
Context passed to plugin handlers.
Contains all information about the incoming request.
Fields§
§method: StringHTTP method (GET, POST, etc.)
path: StringRequest path
params: HashMap<String, String>Path parameters (extracted from route pattern)
headers: HashMap<String, String>Request headers
query: HashMap<String, String>Query string parameters
body: ValueRequest body (parsed as JSON)
user_id: Option<String>Authenticated user ID (if any)
is_admin: boolWhether the user is an admin
request_id: Option<String>Request ID for tracing
Implementations§
Source§impl Context
impl Context
Sourcepub fn from_raw(_ptr: i32, _len: i32) -> Result<Self>
pub fn from_raw(_ptr: i32, _len: i32) -> Result<Self>
Parse context from raw FFI pointer (non-WASM stub)
Sourcepub fn param_required(&self, name: &str) -> Result<&str>
pub fn param_required(&self, name: &str) -> Result<&str>
Get a required path parameter, or return an error
Sourcepub fn query_param(&self, name: &str) -> Option<&str>
pub fn query_param(&self, name: &str) -> Option<&str>
Get a query parameter by name
Sourcepub fn query_param_or<'a>(&'a self, name: &str, default: &'a str) -> &'a str
pub fn query_param_or<'a>(&'a self, name: &str, default: &'a str) -> &'a str
Get a query parameter with a default value
Sourcepub fn query_param_as<T: FromStr>(&self, name: &str) -> Option<T>
pub fn query_param_as<T: FromStr>(&self, name: &str) -> Option<T>
Get a query parameter parsed as a specific type
Sourcepub fn body_as<T: for<'de> Deserialize<'de>>(&self) -> Result<T>
pub fn body_as<T: for<'de> Deserialize<'de>>(&self) -> Result<T>
Parse the request body as a specific type
Sourcepub fn body_field(&self, name: &str) -> Option<&Value>
pub fn body_field(&self, name: &str) -> Option<&Value>
Get a field from the body
Sourcepub fn body_field_as<T: for<'de> Deserialize<'de>>(
&self,
name: &str,
) -> Result<Option<T>>
pub fn body_field_as<T: for<'de> Deserialize<'de>>( &self, name: &str, ) -> Result<Option<T>>
Get a field from the body as a specific type
Sourcepub const fn is_authenticated(&self) -> bool
pub const fn is_authenticated(&self) -> bool
Check if the request is authenticated
Sourcepub fn require_auth(&self) -> Result<&str>
pub fn require_auth(&self) -> Result<&str>
Require authentication, return error if not authenticated
Sourcepub fn require_admin(&self) -> Result<()>
pub fn require_admin(&self) -> Result<()>
Require admin access
Sourcepub fn pagination(&self) -> (u32, u32)
pub fn pagination(&self) -> (u32, u32)
Get pagination parameters from query string
Returns (page, per_page) with defaults of (1, 20)
Sourcepub fn pagination_offset(&self) -> (u32, u32)
pub fn pagination_offset(&self) -> (u32, u32)
Get offset/limit for database queries from pagination
Returns (offset, limit)