WIP: Get Feeds
This commit is contained in:
parent
b089f62bcd
commit
8a62724334
2 changed files with 39 additions and 0 deletions
37
koucha/src/bin/webapi/routes/get_feeds.rs
Normal file
37
koucha/src/bin/webapi/routes/get_feeds.rs
Normal 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 }))
|
||||
}
|
||||
|
|
@ -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))
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue