mirror of
https://github.com/mikedilger/gossip.git
synced 2024-09-19 19:46:50 +00:00
Schema 9: person.followed_last_updated
This commit is contained in:
parent
21b725f11d
commit
d60533488c
@ -110,6 +110,7 @@ fn upgrade(db: &Connection, mut version: u16) -> Result<(), Error> {
|
|||||||
apply_sql!(db, version, 6, "schema6.sql");
|
apply_sql!(db, version, 6, "schema6.sql");
|
||||||
apply_sql!(db, version, 7, "schema7.sql");
|
apply_sql!(db, version, 7, "schema7.sql");
|
||||||
apply_sql!(db, version, 8, "schema8.sql");
|
apply_sql!(db, version, 8, "schema8.sql");
|
||||||
|
apply_sql!(db, version, 9, "schema9.sql");
|
||||||
tracing::info!("Database is at version {}", version);
|
tracing::info!("Database is at version {}", version);
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
@ -12,4 +12,5 @@ pub struct DbPerson {
|
|||||||
pub dns_id_last_checked: Option<u64>,
|
pub dns_id_last_checked: Option<u64>,
|
||||||
pub metadata_at: Option<i64>,
|
pub metadata_at: Option<i64>,
|
||||||
pub followed: u8,
|
pub followed: u8,
|
||||||
|
pub followed_last_updated: i64,
|
||||||
}
|
}
|
||||||
|
1
src/db/schema9.sql
Normal file
1
src/db/schema9.sql
Normal file
@ -0,0 +1 @@
|
|||||||
|
ALTER TABLE person ADD COLUMN followed_last_updated INTEGER NOT NULL DEFAULT 0;
|
@ -65,6 +65,7 @@ impl People {
|
|||||||
dns_id_last_checked: None,
|
dns_id_last_checked: None,
|
||||||
metadata_at: None,
|
metadata_at: None,
|
||||||
followed: 0,
|
followed: 0,
|
||||||
|
followed_last_updated: 0,
|
||||||
};
|
};
|
||||||
// Insert into the map
|
// Insert into the map
|
||||||
self.people.insert(pubkeyhex.to_owned(), dbperson.clone());
|
self.people.insert(pubkeyhex.to_owned(), dbperson.clone());
|
||||||
@ -178,7 +179,7 @@ impl People {
|
|||||||
|
|
||||||
let sql =
|
let sql =
|
||||||
"SELECT pubkey, name, about, picture, dns_id, dns_id_valid, dns_id_last_checked, \
|
"SELECT pubkey, name, about, picture, dns_id, dns_id_valid, dns_id_last_checked, \
|
||||||
metadata_at, followed FROM person WHERE followed=1"
|
metadata_at, followed, followed_last_updated FROM person WHERE followed=1"
|
||||||
.to_owned();
|
.to_owned();
|
||||||
|
|
||||||
let output: Result<Vec<DbPerson>, Error> = task::spawn_blocking(move || {
|
let output: Result<Vec<DbPerson>, Error> = task::spawn_blocking(move || {
|
||||||
@ -197,6 +198,7 @@ impl People {
|
|||||||
dns_id_last_checked: row.get(6)?,
|
dns_id_last_checked: row.get(6)?,
|
||||||
metadata_at: row.get(7)?,
|
metadata_at: row.get(7)?,
|
||||||
followed: row.get(8)?,
|
followed: row.get(8)?,
|
||||||
|
followed_last_updated: row.get(9)?,
|
||||||
})
|
})
|
||||||
})?;
|
})?;
|
||||||
let mut output: Vec<DbPerson> = Vec::new();
|
let mut output: Vec<DbPerson> = Vec::new();
|
||||||
@ -473,7 +475,9 @@ impl People {
|
|||||||
|
|
||||||
async fn fetch(criteria: Option<&str>) -> Result<Vec<DbPerson>, Error> {
|
async fn fetch(criteria: Option<&str>) -> Result<Vec<DbPerson>, Error> {
|
||||||
let sql =
|
let sql =
|
||||||
"SELECT pubkey, name, about, picture, dns_id, dns_id_valid, dns_id_last_checked, metadata_at, followed FROM person".to_owned();
|
"SELECT pubkey, name, about, picture, dns_id, dns_id_valid, dns_id_last_checked, \
|
||||||
|
metadata_at, followed, followed_last_updated FROM person"
|
||||||
|
.to_owned();
|
||||||
let sql = match criteria {
|
let sql = match criteria {
|
||||||
None => sql,
|
None => sql,
|
||||||
Some(crit) => format!("{} WHERE {}", sql, crit),
|
Some(crit) => format!("{} WHERE {}", sql, crit),
|
||||||
@ -495,6 +499,7 @@ impl People {
|
|||||||
dns_id_last_checked: row.get(6)?,
|
dns_id_last_checked: row.get(6)?,
|
||||||
metadata_at: row.get(7)?,
|
metadata_at: row.get(7)?,
|
||||||
followed: row.get(8)?,
|
followed: row.get(8)?,
|
||||||
|
followed_last_updated: row.get(9)?,
|
||||||
})
|
})
|
||||||
})?;
|
})?;
|
||||||
|
|
||||||
@ -521,8 +526,9 @@ impl People {
|
|||||||
|
|
||||||
async fn insert(person: DbPerson) -> Result<(), Error> {
|
async fn insert(person: DbPerson) -> Result<(), Error> {
|
||||||
let sql =
|
let sql =
|
||||||
"INSERT OR IGNORE INTO person (pubkey, name, about, picture, dns_id, dns_id_valid, dns_id_last_checked, metadata_at, followed) \
|
"INSERT OR IGNORE INTO person (pubkey, name, about, picture, dns_id, dns_id_valid, \
|
||||||
VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8, ?9)";
|
dns_id_last_checked, metadata_at, followed, followed_last_updated) \
|
||||||
|
VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8, ?9, ?10)";
|
||||||
|
|
||||||
task::spawn_blocking(move || {
|
task::spawn_blocking(move || {
|
||||||
let maybe_db = GLOBALS.db.blocking_lock();
|
let maybe_db = GLOBALS.db.blocking_lock();
|
||||||
@ -539,6 +545,7 @@ impl People {
|
|||||||
&person.dns_id_last_checked,
|
&person.dns_id_last_checked,
|
||||||
&person.metadata_at,
|
&person.metadata_at,
|
||||||
&person.followed,
|
&person.followed,
|
||||||
|
&person.followed_last_updated,
|
||||||
))?;
|
))?;
|
||||||
Ok::<(), Error>(())
|
Ok::<(), Error>(())
|
||||||
})
|
})
|
||||||
|
Loading…
Reference in New Issue
Block a user