Skip to main content

QueryBuilder

Trait QueryBuilder 

Source
pub trait QueryBuilder {
    // Required methods
    fn build_get_records(
        &self,
        model: &Model,
        query_arguments: QueryArguments,
        selected_fields: &FieldSelection,
        relation_load_strategy: RelationLoadStrategy,
    ) -> Result<Vec<DbQuery>, Box<dyn Error + Send + Sync>>;
    fn build_aggregate(
        &self,
        model: &Model,
        args: QueryArguments,
        selections: &[AggregationSelection],
        group_by: Vec<ScalarField>,
        having: Option<Filter>,
    ) -> Result<DbQuery, Box<dyn Error + Send + Sync>>;
    fn build_create_record(
        &self,
        model: &Model,
        args: WriteArgs,
        selected_fields: &FieldSelection,
    ) -> Result<CreateRecord, Box<dyn Error + Send + Sync>>;
    fn build_inserts(
        &self,
        model: &Model,
        args: Vec<WriteArgs>,
        skip_duplicates: bool,
        selected_fields: Option<&FieldSelection>,
    ) -> Result<Vec<DbQuery>, Box<dyn Error + Send + Sync>>;
    fn build_update(
        &self,
        model: &Model,
        record_filter: RecordFilter,
        args: WriteArgs,
        selected_fields: Option<&FieldSelection>,
    ) -> Result<DbQuery, Box<dyn Error + Send + Sync>>;
    fn build_updates(
        &self,
        model: &Model,
        record_filter: RecordFilter,
        args: WriteArgs,
        selected_fields: Option<&FieldSelection>,
        limit: Option<usize>,
    ) -> Result<Vec<DbQuery>, Box<dyn Error + Send + Sync>>;
    fn build_upsert(
        &self,
        model: &Model,
        filter: Filter,
        create_args: WriteArgs,
        update_args: WriteArgs,
        selected_fields: &FieldSelection,
        unique_constraints: &[ScalarField],
    ) -> Result<DbQuery, Box<dyn Error + Send + Sync>>;
    fn build_m2m_connect(
        &self,
        parent_field: RelationField,
        parent: PrismaValue,
        child: PrismaValue,
    ) -> Result<DbQuery, Box<dyn Error + Send + Sync>>;
    fn build_m2m_disconnect(
        &self,
        field: RelationField,
        parent_id: &SelectionResult,
        child_ids: &[SelectionResult],
    ) -> Result<DbQuery, Box<dyn Error + Send + Sync>>;
    fn build_delete(
        &self,
        model: &Model,
        filter: RecordFilter,
        selected_fields: Option<&FieldSelection>,
    ) -> Result<DbQuery, Box<dyn Error + Send + Sync>>;
    fn build_deletes(
        &self,
        model: &Model,
        filter: RecordFilter,
        limit: Option<usize>,
    ) -> Result<Vec<DbQuery>, Box<dyn Error + Send + Sync>>;
    fn build_raw(
        &self,
        model: Option<&Model>,
        inputs: HashMap<String, PrismaValue>,
        query_type: Option<String>,
    ) -> Result<DbQuery, Box<dyn Error + Send + Sync>>;
}

Required Methods§

Source

fn build_get_records( &self, model: &Model, query_arguments: QueryArguments, selected_fields: &FieldSelection, relation_load_strategy: RelationLoadStrategy, ) -> Result<Vec<DbQuery>, Box<dyn Error + Send + Sync>>

Source

fn build_aggregate( &self, model: &Model, args: QueryArguments, selections: &[AggregationSelection], group_by: Vec<ScalarField>, having: Option<Filter>, ) -> Result<DbQuery, Box<dyn Error + Send + Sync>>

Source

fn build_create_record( &self, model: &Model, args: WriteArgs, selected_fields: &FieldSelection, ) -> Result<CreateRecord, Box<dyn Error + Send + Sync>>

Source

fn build_inserts( &self, model: &Model, args: Vec<WriteArgs>, skip_duplicates: bool, selected_fields: Option<&FieldSelection>, ) -> Result<Vec<DbQuery>, Box<dyn Error + Send + Sync>>

Source

fn build_update( &self, model: &Model, record_filter: RecordFilter, args: WriteArgs, selected_fields: Option<&FieldSelection>, ) -> Result<DbQuery, Box<dyn Error + Send + Sync>>

Source

fn build_updates( &self, model: &Model, record_filter: RecordFilter, args: WriteArgs, selected_fields: Option<&FieldSelection>, limit: Option<usize>, ) -> Result<Vec<DbQuery>, Box<dyn Error + Send + Sync>>

Source

fn build_upsert( &self, model: &Model, filter: Filter, create_args: WriteArgs, update_args: WriteArgs, selected_fields: &FieldSelection, unique_constraints: &[ScalarField], ) -> Result<DbQuery, Box<dyn Error + Send + Sync>>

Source

fn build_m2m_connect( &self, parent_field: RelationField, parent: PrismaValue, child: PrismaValue, ) -> Result<DbQuery, Box<dyn Error + Send + Sync>>

Source

fn build_m2m_disconnect( &self, field: RelationField, parent_id: &SelectionResult, child_ids: &[SelectionResult], ) -> Result<DbQuery, Box<dyn Error + Send + Sync>>

Source

fn build_delete( &self, model: &Model, filter: RecordFilter, selected_fields: Option<&FieldSelection>, ) -> Result<DbQuery, Box<dyn Error + Send + Sync>>

Source

fn build_deletes( &self, model: &Model, filter: RecordFilter, limit: Option<usize>, ) -> Result<Vec<DbQuery>, Box<dyn Error + Send + Sync>>

Source

fn build_raw( &self, model: Option<&Model>, inputs: HashMap<String, PrismaValue>, query_type: Option<String>, ) -> Result<DbQuery, Box<dyn Error + Send + Sync>>

Implementors§