create & getall for tags
This commit is contained in:
@@ -33,6 +33,8 @@ pub fn api_router() -> Router {
|
||||
.route("/api/sessions/{id}", get(sessions::get_by_id))
|
||||
.route("/api/sessions/{id}/revoke", post(sessions::revoke_by_id))
|
||||
//
|
||||
.route("/api/tags", get(tags::get_all))
|
||||
.route("/api/tags", post(tags::create))
|
||||
.route("/api/tags/{id}", get(tags::get_by_id))
|
||||
.route("/api/tags/#{name}", get(tags::get_by_name))
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ use axum::{
|
||||
http::HeaderMap,
|
||||
response::{IntoResponse, Response},
|
||||
};
|
||||
use serde::Deserialize;
|
||||
use uuid::Uuid;
|
||||
|
||||
use crate::{
|
||||
@@ -15,6 +16,11 @@ use crate::{
|
||||
},
|
||||
};
|
||||
|
||||
pub async fn get_all(headers: HeaderMap) -> Result<Response, CompositeError> {
|
||||
User::authenticate(&headers)?.required()?;
|
||||
Ok(Json(Tag::get_all()?).into_response())
|
||||
}
|
||||
|
||||
pub async fn get_by_id(
|
||||
Path(id): Path<Uuid>,
|
||||
headers: HeaderMap,
|
||||
@@ -30,3 +36,15 @@ pub async fn get_by_name(
|
||||
User::authenticate(&headers)?.required()?;
|
||||
Ok(Json(Tag::get_by_name(name)?).into_response())
|
||||
}
|
||||
|
||||
#[derive(Deserialize)]
|
||||
pub struct NewTag {
|
||||
name: TagName,
|
||||
}
|
||||
pub async fn create(
|
||||
headers: HeaderMap,
|
||||
Json(form): Json<NewTag>,
|
||||
) -> Result<Response, CompositeError> {
|
||||
User::authenticate(&headers)?.required()?;
|
||||
Ok(Json(Tag::create(form.name)?).into_response())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user