openfga-client 0.6.0

Type-safe client SDK for OpenFGA with optional Authorization Model management and Authentication (Bearer or Client Credentials).
Documentation
use crate::client::{
    AuthorizationModel, CheckRequestTupleKey, ContextualTupleKeys, ReadRequestTupleKey, TupleKey,
    TupleKeyWithoutCondition, WriteAuthorizationModelRequest,
};

impl AuthorizationModel {
    pub(crate) fn into_write_request(self, store_id: String) -> WriteAuthorizationModelRequest {
        WriteAuthorizationModelRequest {
            store_id,
            type_definitions: self.type_definitions.into_iter().collect(),
            schema_version: self.schema_version,
            conditions: self.conditions,
        }
    }
}

impl From<TupleKeyWithoutCondition> for ReadRequestTupleKey {
    fn from(tuple_key: TupleKeyWithoutCondition) -> Self {
        ReadRequestTupleKey {
            user: tuple_key.user,
            relation: tuple_key.relation,
            object: tuple_key.object,
        }
    }
}

impl From<TupleKeyWithoutCondition> for Option<ReadRequestTupleKey> {
    fn from(tuple_key: TupleKeyWithoutCondition) -> Self {
        Some(tuple_key.into())
    }
}

impl From<ReadRequestTupleKey> for TupleKeyWithoutCondition {
    fn from(tuple_key: ReadRequestTupleKey) -> Self {
        TupleKeyWithoutCondition {
            user: tuple_key.user,
            relation: tuple_key.relation,
            object: tuple_key.object,
        }
    }
}

impl From<CheckRequestTupleKey> for TupleKeyWithoutCondition {
    fn from(tuple_key: CheckRequestTupleKey) -> Self {
        TupleKeyWithoutCondition {
            user: tuple_key.user,
            relation: tuple_key.relation,
            object: tuple_key.object,
        }
    }
}

impl From<CheckRequestTupleKey> for Option<TupleKeyWithoutCondition> {
    fn from(tuple_key: CheckRequestTupleKey) -> Self {
        Some(tuple_key.into())
    }
}

impl From<TupleKeyWithoutCondition> for CheckRequestTupleKey {
    fn from(tuple_key: TupleKeyWithoutCondition) -> Self {
        CheckRequestTupleKey {
            user: tuple_key.user,
            relation: tuple_key.relation,
            object: tuple_key.object,
        }
    }
}

impl From<TupleKeyWithoutCondition> for Option<CheckRequestTupleKey> {
    fn from(tuple_key: TupleKeyWithoutCondition) -> Self {
        Some(tuple_key.into())
    }
}

impl From<ContextualTupleKeys> for Vec<TupleKey> {
    fn from(tuple_keys: ContextualTupleKeys) -> Self {
        tuple_keys.tuple_keys
    }
}

impl From<Vec<TupleKey>> for ContextualTupleKeys {
    fn from(tuple_keys: Vec<TupleKey>) -> Self {
        ContextualTupleKeys { tuple_keys }
    }
}

impl From<ContextualTupleKeys> for Option<Vec<TupleKey>> {
    fn from(tuple_keys: ContextualTupleKeys) -> Self {
        if tuple_keys.tuple_keys.is_empty() {
            None
        } else {
            Some(tuple_keys.tuple_keys)
        }
    }
}