#[mutation]Expand description
Marks a function as a mutation (transactional write).
Mutations run within a database transaction and can read and write data. All changes either commit together or roll back on error.
§Attributes
require_auth- Require authenticationrequire_role("admin")- Require specific roletimeout = 30- Timeout in seconds
§Example
ⓘ
#[forge::mutation]
pub async fn create_project(
ctx: &MutationContext,
input: CreateProjectInput,
) -> Result<Project> {
let user_id = ctx.require_user_id()?;
// All operations in a transaction
let project = ctx.db().insert(Project { ... }).await?;
Ok(project)
}