summaryrefslogtreecommitdiffstats
path: root/crate_db/src/lib_crate_db.rs
diff options
context:
space:
mode:
authorKornel <kornel@geekhood.net>2020-03-03 12:37:27 +0000
committerKornel <kornel@geekhood.net>2020-03-10 00:43:41 +0000
commitc516d4775a9d1db845db69e3917c371f894c1e50 (patch)
tree475d31da6fda0ce059b9e9e0b0372ead285735c9 /crate_db/src/lib_crate_db.rs
parent68044807289ac950b94fa0d02c58d7531b127863 (diff)
author
Diffstat (limited to 'crate_db/src/lib_crate_db.rs')
-rw-r--r--crate_db/src/lib_crate_db.rs22
1 files changed, 13 insertions, 9 deletions
diff --git a/crate_db/src/lib_crate_db.rs b/crate_db/src/lib_crate_db.rs
index 4ddad18..9f0dd01 100644
--- a/crate_db/src/lib_crate_db.rs
+++ b/crate_db/src/lib_crate_db.rs
@@ -645,21 +645,24 @@ impl CrateDb {
pub async fn crates_of_author(&self, github_id: u32) -> FResult<Vec<CrateOwnerRow>> {
self.with_read("crates_of_author", |conn| {
- let mut query = conn.prepare_cached(r#"SELECT ac.crate_id, ac.invited_by_github_id, ac.invited_at, max(cv.created)
- FROM author_crates ac JOIN crate_versions cv USING(crate_id)
+ let mut query = conn.prepare_cached(r#"SELECT c.origin, ac.invited_by_github_id, ac.invited_at, max(cv.created)
+ FROM author_crates ac
+ JOIN crate_versions cv USING(crate_id)
+ JOIN crates c ON c.id = ac.crate_id
WHERE ac.github_id = ?1
GROUP BY ac.crate_id
+ LIMIT 2000
"#)?;
let q = query.query_map(&[&github_id], |row| {
- let crate_id: u32 = row.get_unwrap(0);
+ let origin = Origin::from_str(row.get_raw(0).as_str().unwrap());
let invited_by_github_id: Option<u32> = row.get_unwrap(1);
let invited_at = row.get_raw(2).as_str().ok().and_then(|d| DateTime::parse_from_rfc3339(d).ok());
let latest_timestamp: u32 = row.get_unwrap(3);
Ok(CrateOwnerRow {
- crate_id,
+ origin,
invited_by_github_id,
invited_at,
- latest_version: DateTime::from_utc(NaiveDateTime::from_timestamp(latest_timestamp as _, 0), FixedOffset::east(0)),
+ latest_release: DateTime::from_utc(NaiveDateTime::from_timestamp(latest_timestamp as _, 0), FixedOffset::east(0)),
})
})?;
Ok(q.filter_map(|x| x.ok()).collect())
@@ -1142,11 +1145,12 @@ impl KeywordInsert {
}
}
+#[derive(Debug)]
pub struct CrateOwnerRow {
- crate_id: u32,
- invited_by_github_id: Option<u32>,
- invited_at: Option<DateTime<FixedOffset>>,
- latest_version: DateTime<FixedOffset>,
+ pub origin: Origin,
+ pub invited_by_github_id: Option<u32>,
+ pub invited_at: Option<DateTime<FixedOffset>>,
+ pub latest_release: DateTime<FixedOffset>,
}
#[inline]