added cors to public, modified import_posts task, updated task log sql queries

This commit is contained in:
2024-11-27 00:33:59 -05:00
parent a42f827cf7
commit 2d00604c6f
4 changed files with 55 additions and 17 deletions

View File

@ -1,10 +1,10 @@
use std::fs;
use std::path;
use serde::Deserialize;
use serde::Deserializer;
use crate::utils::task_log;
use serde::{Deserialize, Deserializer};
pub fn register<'a>(pool: &'a sqlx::Pool<sqlx::Postgres>) {
pub fn register(pool: &sqlx::Pool<sqlx::Postgres>) {
let p = pool.clone();
tokio::spawn(async move {
import_posts("/app", &p).await;
@ -13,6 +13,7 @@ pub fn register<'a>(pool: &'a sqlx::Pool<sqlx::Postgres>) {
async fn import_posts(dir_path: &str, pool: &sqlx::Pool<sqlx::Postgres>) {
println!("hello from import_posts");
let task = task_log::start(1, pool).await.unwrap();
let entries = fs::read_dir(dir_path).unwrap();
let options = MarkdownOptions {
@ -41,7 +42,11 @@ async fn import_posts(dir_path: &str, pool: &sqlx::Pool<sqlx::Postgres>) {
);
let file_md_contents = process_read_file(file_path, &options);
let content = markdown::to_html(&file_md_contents);
let metadata = crate::utils::front_matter::YamlFrontMatter::parse::<MarkdownMetadata>(&content).unwrap();
let metadata =
crate::utils::front_matter::YamlFrontMatter::parse::<MarkdownMetadata>(
&content,
)
.unwrap();
let title = metadata.metadata.title;
sqlx::query_as::<_, InsertPosts>(
@ -57,6 +62,10 @@ async fn import_posts(dir_path: &str, pool: &sqlx::Pool<sqlx::Postgres>) {
}
}
}
task_log::update(task.task_id, String::from("Completed"), pool)
.await
.unwrap();
}
fn process_read_file<P: AsRef<path::Path>>(path: P, md_opts: &MarkdownOptions) -> String {
@ -92,7 +101,7 @@ struct MarkdownMetadata {
fn deserialize_datetime<'de, D>(deserializer: D) -> Result<chrono::DateTime<chrono::Utc>, D::Error>
where
D: serde::Deserializer<'de>,
D: Deserializer<'de>,
{
let s = String::deserialize(deserializer)?;
chrono::DateTime::parse_from_rfc3339(&s)