rustauth-plugins 0.2.0

Official RustAuth plugin modules.
Documentation
mod create;
mod delete;
mod query;
mod update;

use rustauth_core::api::AsyncAuthEndpoint;
use rustauth_core::error::RustAuthError;

use crate::organization::additional_fields;
use crate::organization::models::Organization;
use crate::organization::options::OrganizationOptions;

pub fn endpoints(options: OrganizationOptions) -> Vec<AsyncAuthEndpoint> {
    vec![
        create::create(options.clone()),
        query::check_slug(),
        update::update(options.clone()),
        delete::delete(options),
    ]
}

pub(super) fn retain_returned_organization_fields(
    organization: &mut Organization,
    options: &OrganizationOptions,
) {
    let fields = &options.schema.organization.additional_fields;
    additional_fields::retain_returned(&mut organization.additional_fields, fields);
}

pub(super) fn json_body_error(error: serde_json::Error) -> RustAuthError {
    RustAuthError::Api(error.to_string())
}