use http::Method;
use crate::{
api::{ProjectId, TermId},
auth::Authenticated,
query::DefaultModel,
Endpoint,
};
#[derive(Clone, Debug, Eq, Ord, Hash, PartialEq, PartialOrd)]
pub struct DeleteTerm {
pub project_id: ProjectId,
pub term_id: TermId,
}
impl DeleteTerm {
#[must_use]
pub const fn new(project_id: ProjectId, term_id: TermId) -> Self {
Self {
project_id,
term_id,
}
}
}
impl Endpoint for DeleteTerm {
type AccessControl = Authenticated;
fn method(&self) -> Method {
Method::DELETE
}
fn endpoint(&self) -> std::borrow::Cow<'static, str> {
format!("projects/{}/terms/{}", self.project_id, self.term_id).into()
}
}
impl DefaultModel for DeleteTerm {
type Model = ();
fn map(data: serde_json::Value) -> Result<Self::Model, serde_json::Error> {
serde_json::from_value(data)
}
}