use crate::models::dht::DeletedRecordRow;
use holo_hash::{ActionHash, EntryHash};
use sqlx::{Executor, Sqlite};
pub struct InsertDeletedRecord<'a> {
pub action_hash: &'a ActionHash,
pub deletes_action_hash: &'a ActionHash,
pub deletes_entry_hash: &'a EntryHash,
}
pub(crate) async fn insert_deleted_record_index<'a, 'e, E>(
executor: E,
record: InsertDeletedRecord<'a>,
) -> sqlx::Result<u64>
where
E: Executor<'e, Database = Sqlite>,
{
let result = sqlx::query(
"INSERT INTO DeletedRecord (action_hash, deletes_action_hash, deletes_entry_hash)
VALUES (?, ?, ?)",
)
.bind(record.action_hash.get_raw_36())
.bind(record.deletes_action_hash.get_raw_36())
.bind(record.deletes_entry_hash.get_raw_36())
.execute(executor)
.await?;
Ok(result.rows_affected())
}
pub(crate) async fn get_deleted_records<'e, E>(
executor: E,
deletes_action_hash: ActionHash,
) -> sqlx::Result<Vec<DeletedRecordRow>>
where
E: Executor<'e, Database = Sqlite>,
{
sqlx::query_as(
"SELECT action_hash, deletes_action_hash, deletes_entry_hash
FROM DeletedRecord WHERE deletes_action_hash = ?",
)
.bind(deletes_action_hash.get_raw_36())
.fetch_all(executor)
.await
}