WIP: Get Feeds

This commit is contained in:
Julia Lange 2026-05-12 21:07:10 -07:00
parent b089f62bcd
commit 8a62724334
Signed by: Julia
SSH key fingerprint: SHA256:5DJcfxa5/fKCYn57dcabJa2vN2e6eT0pBerYi5SUbto
2 changed files with 39 additions and 0 deletions

View file

@ -0,0 +1,37 @@
use axum::{Json, extract::State, http::HeaderMap};
use koucha::db::User as DbUser;
use reqwest::StatusCode;
use serde::{Serialize, Deserialize};
use crate::{
AppState, routes::{ApiError, ApiResult, ApiResponse}, types::User
};
#[derive(Deserialize)]
pub struct Input { }
#[derive(Serialize, Deserialize)]
pub struct Output {
users: Vec<User>,
}
pub async fn handler(
headers: HeaderMap,
State(state): State<AppState>,
Json(_body): Json<Input>,
) -> ApiResult<Output> {
let dbusers = DbUser::get_all(state.adapter.get_pool())
.await.map_err(|_e| {
// TODO: Logging
ApiError {
status: StatusCode::INTERNAL_SERVER_ERROR,
error: "InternalError",
message: "Error getting all users from DB.".to_string(),
}
})?;
let users: Vec<User> = dbusers.iter().map(|u| User {
name: u.name().to_string(),
}).collect();
Ok(ApiResponse(StatusCode::OK, Output { users }))
}

View file

@ -11,6 +11,7 @@ use axum::{
};
use reqwest::StatusCode;
mod get_feeds;
mod create_session;
mod get_users;
mod new_user;
@ -30,6 +31,7 @@ pub struct ApiError {
pub fn router() -> Router<AppState> {
Router::new()
.route("/create_session", post(create_session::handler))
.route("/get_feeds", get(get_feeds::handler))
.route("/get_users", get(get_users::handler))
.route("/new_user", post(new_user::handler))
}