tencentcloud_sms/api/template/delete_sms_template/
request.rs1use super::response::{DeleteSmsTemplateResponse, DeleteTemplateStatus, ResponseBody};
2use crate::SmsResult;
3use crate::api::common::ApiRequest;
4use crate::logging::{debug, error, info};
5use serde::Serialize;
6use typed_builder::TypedBuilder;
7use validator::Validate;
8
9#[derive(Debug, Clone, Serialize, TypedBuilder, Validate)]
10#[serde(rename_all = "PascalCase")]
11pub struct DeleteSmsTemplateRequest {
12 #[validate(range(min = 1, message = "TemplateId必须大于0"))]
13 template_id: u64,
14}
15
16impl ApiRequest for DeleteSmsTemplateRequest {
17 type Response = DeleteSmsTemplateResponse;
18 type Output = DeleteTemplateStatus;
19 const ACTION: &'static str = "DeleteSmsTemplate";
20
21 fn parse_response(response_text: &str) -> SmsResult<Self::Response> {
22 serde_json::from_str(response_text).map_err(Into::into)
23 }
24
25 fn handle_response(response: Self::Response) -> SmsResult<Self::Output> {
26 match response.response {
27 ResponseBody::Success(success) => {
28 debug!("API 返回成功响应,request_id: {}", success.request_id);
29 info!("模板删除成功");
30 Ok(success.delete_template_status)
31 }
32 ResponseBody::Error(api_error) => {
33 error!(
34 "API 返回错误响应,request_id: {}, 错误码: {}",
35 api_error.request_id, api_error.error.code
36 );
37 Err(crate::api::common::classify_error(
38 &api_error.error.code,
39 &api_error.error.message,
40 api_error.request_id,
41 ))
42 }
43 }
44 }
45}