add: pages api

add: entries base
add: entries api
This commit is contained in:
trisua 2025-03-24 19:55:08 -04:00
parent 38dbf10130
commit daa223d529
8 changed files with 389 additions and 8 deletions

View file

@ -1,12 +1,41 @@
pub mod auth;
pub mod journal;
use axum::{
Router,
routing::{get, post},
routing::{delete, get, post},
};
use serde::Deserialize;
use tetratto_core::model::journal::{JournalPageReadAccess, JournalPageWriteAccess};
pub fn routes() -> Router {
Router::new()
// journal pages
.route("/pages", post(journal::pages::create_request))
.route("/pages/{id}", delete(journal::pages::delete_request))
.route(
"/pages/{id}/title",
post(journal::pages::update_title_request),
)
.route(
"/pages/{id}/prompt",
post(journal::pages::update_prompt_request),
)
.route(
"/pages/{id}/access/read",
post(journal::pages::update_read_access_request),
)
.route(
"/pages/{id}/access/write",
post(journal::pages::update_write_access_request),
)
// journal entries
.route("/entries", post(journal::entries::create_request))
.route("/entries/{id}", delete(journal::entries::delete_request))
.route(
"/entries/{id}/content",
post(journal::entries::update_content_request),
)
// auth
// global
.route("/auth/register", post(auth::register_request))
@ -36,3 +65,40 @@ pub struct AuthProps {
pub username: String,
pub password: String,
}
#[derive(Deserialize)]
pub struct CreateJournalPage {
pub title: String,
pub prompt: String,
}
#[derive(Deserialize)]
pub struct UpdateJournalPageTitle {
pub title: String,
}
#[derive(Deserialize)]
pub struct UpdateJournalPagePrompt {
pub prompt: String,
}
#[derive(Deserialize)]
pub struct UpdateJournalPageReadAccess {
pub access: JournalPageReadAccess,
}
#[derive(Deserialize)]
pub struct UpdateJournalPageWriteAccess {
pub access: JournalPageWriteAccess,
}
#[derive(Deserialize)]
pub struct CreateJournalEntry {
pub content: String,
pub journal: usize,
}
#[derive(Deserialize)]
pub struct UpdateJournalEntryContent {
pub content: String,
}