Skip to content

Commit

Permalink
bbn: refactor to use MemberRequest
Browse files Browse the repository at this point in the history
  • Loading branch information
bouzuya committed Jul 23, 2021
1 parent 3bb0005 commit 045a83a
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 13 deletions.
@@ -1,4 +1,6 @@
SELECT member_requests.entry_id
SELECT member_requests.id,
member_requests.at,
member_requests.entry_id
FROM member_requests
LEFT OUTER JOIN member_request_results ON member_request_results.member_request_id = member_requests.id
WHERE member_request_results.member_request_id IS NULL
Expand Down
14 changes: 11 additions & 3 deletions bbn/src/command/hatena_blog/download.rs
Expand Up @@ -233,13 +233,21 @@ async fn download_impl(

let _indexing_id = indexing(&hatena_blog_repository, &hatena_blog_client).await?;

for hatena_blog_entry_id in hatena_blog_repository.find_incomplete_entry_ids().await? {
let response = hatena_blog_client.get_entry(&hatena_blog_entry_id).await?;
for member_request in hatena_blog_repository
.find_incomplete_member_requests()
.await?
{
let response = hatena_blog_client
.get_entry(&member_request.hatena_blog_entry_id)
.await?;
let body = response.to_string();
hatena_blog_repository
.create_member_response(Timestamp::now()?, body)
.await?;
println!("downloaded member id: {}", hatena_blog_entry_id);
println!(
"downloaded member id: {}",
member_request.hatena_blog_entry_id
);
sleep(Duration::from_secs(1)).await;
}

Expand Down
26 changes: 17 additions & 9 deletions bbn/src/hatena_blog/hatena_blog_repository.rs
@@ -1,7 +1,8 @@
use crate::{
data::Timestamp,
hatena_blog::{
HatenaBlogEntry, HatenaBlogEntryId, Indexing, IndexingId, MemberRequestId, MemberResponseId,
HatenaBlogEntry, HatenaBlogEntryId, Indexing, IndexingId, MemberRequest, MemberRequestId,
MemberResponseId,
},
};
use anyhow::Context as _;
Expand Down Expand Up @@ -229,14 +230,21 @@ impl HatenaBlogRepository {
)
}

pub async fn find_incomplete_entry_ids(&self) -> anyhow::Result<Vec<HatenaBlogEntryId>> {
let rows: Vec<(String,)> =
sqlx::query_as(include_str!("../../sql/find_incomplete_entry_ids.sql"))
.fetch_all(&self.pool)
.await?;
rows.iter()
.map(|(id,)| HatenaBlogEntryId::from_str(id.as_str()).context("entry id from str"))
.collect::<anyhow::Result<Vec<HatenaBlogEntryId>>>()
pub async fn find_incomplete_member_requests(&self) -> anyhow::Result<Vec<MemberRequest>> {
let rows: Vec<(i64, i64, String)> = sqlx::query_as(include_str!(
"../../sql/find_incomplete_member_requests.sql"
))
.fetch_all(&self.pool)
.await?;
rows.into_iter()
.map(|(id, at, entry_id)| -> anyhow::Result<MemberRequest> {
Ok(MemberRequest {
id: MemberRequestId::from(id),
at: Timestamp::from(at),
hatena_blog_entry_id: HatenaBlogEntryId::from_str(entry_id.as_str())?,
})
})
.collect::<anyhow::Result<Vec<MemberRequest>>>()
}

pub async fn find_last_successful_indexing_started_at(
Expand Down

0 comments on commit 045a83a

Please sign in to comment.