mutation

Attribute Macro mutation 

Source
#[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 authentication
  • require_role("admin") - Require specific role
  • timeout = 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)
}