auric-runtime 0.1.3

Runtime for the Ember-inspired Auric SPA framework
Documentation
use super::QueryRecordOptions;
use anyhow::Result;
use async_trait::async_trait;
use jsonapi_core::Resource;

#[async_trait(?Send)]
pub trait Adapter {
    // Create a new record
    async fn create_record(&self, resource: Resource) -> Result<Resource>;

    // Delete a record
    async fn delete_record(&self, resource: &Resource) -> Result<()>;

    // Find a record
    async fn find_record(&self, resource_type: &str, id: &str) -> Result<Resource>;

    // Query for multiple records
    async fn query(&self, resource_type: &str, query: serde_json::Value) -> Result<Vec<Resource>>;

    // Query for a record
    async fn query_record(
        &self,
        resource_type: &str,
        query: serde_json::Value,
        options: QueryRecordOptions,
    ) -> Result<Resource>;

    // Update a record
    async fn update_record(&self, resource: Resource) -> Result<Resource>;
}

#[cfg(test)]
mod tests {
    #[test]
    fn can_todo() {
        // ...
    }
}