Refactor blog module and remove blog-related functionality

- Removed blog router and associated API endpoints.
- Deleted blog persistence functions and related query parameters.
- Removed blog schemas and models from the codebase.
- Introduced common crate for shared types, including DateTimeWithTimeZoneWrapper.
- Added Thought and Follow models with corresponding migrations.
- Updated dependencies in Cargo.toml files to reflect changes.
- Adjusted tests to remove references to the blog module.
This commit is contained in:
2025-09-05 18:10:58 +02:00
parent e5747eaaf3
commit 912259ef54
32 changed files with 543 additions and 333 deletions

View File

@@ -1,30 +0,0 @@
use axum::{http::StatusCode, Router};
use http_body_util::BodyExt;
use serde_json::Value;
use utils::testing::{make_get_request, make_post_request};
pub(super) async fn test_post_blogs(app: Router) {
let response = make_post_request(
app,
"/blogs",
r#"{"author_id": 1, "title": "title", "content": "test"}"#.to_owned(),
)
.await;
assert_eq!(response.status(), StatusCode::CREATED);
}
pub(super) async fn test_get_blogs(app: Router) {
let response = make_get_request(app, "/blogs").await;
assert_eq!(response.status(), StatusCode::OK);
let body = response.into_body().collect().await.unwrap().to_bytes();
let result: Value = serde_json::from_slice(&body).unwrap();
assert_eq!(result["blogs"].as_array().unwrap().len(), 1);
let blog = &result["blogs"][0];
assert_eq!(blog["author_id"], 1);
assert_eq!(blog["title"], "title");
assert_eq!(blog["content"], "test");
}

View File

@@ -1,11 +1,9 @@
use api::setup_router;
use utils::testing::setup_test_db;
mod blog;
mod root;
mod user;
use blog::*;
use root::*;
use user::*;
@@ -30,15 +28,3 @@ async fn user_main() {
test_post_users_error(app.clone()).await;
test_get_users(app).await;
}
#[tokio::test]
async fn blog_main() {
let db = setup_test_db("sqlite::blog?mode=memory&cache=shared")
.await
.expect("Set up db failed!");
let app = setup_router(db);
test_post_users(app.clone()).await;
test_post_blogs(app.clone()).await;
test_get_blogs(app).await;
}

View File

@@ -1,22 +0,0 @@
use sea_orm::{DatabaseConnection, Unchanged};
use app::persistence::blog::create_blog;
use models::domains::blog;
use models::params::blog::CreateBlogParams;
pub(super) async fn test_blog(db: &DatabaseConnection) {
let params = CreateBlogParams {
author_id: 1,
title: "title".to_string(),
content: "test".to_string(),
};
let blog = create_blog(db, params).await.expect("Create blog failed!");
let expected = blog::ActiveModel {
id: Unchanged(1),
author_id: Unchanged(1),
title: Unchanged("title".to_owned()),
content: Unchanged("test".to_owned()),
};
assert_eq!(blog, expected);
}

View File

@@ -1,9 +1,7 @@
use utils::testing::setup_test_db;
mod blog;
mod user;
use blog::test_blog;
use user::test_user;
#[tokio::test]
@@ -14,13 +12,3 @@ async fn user_main() {
test_user(&db).await;
}
#[tokio::test]
async fn blog_main() {
let db = setup_test_db("sqlite::memory:")
.await
.expect("Set up db failed!");
test_user(&db).await;
test_blog(&db).await;
}