#[async_trait::async_trait]
pub trait CaseAttachmentService: std::fmt::Debug + Send + Sync {
async fn list_attachments(
&self,
req: crate::model::ListAttachmentsRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListAttachmentsResponse>>;
}
#[async_trait::async_trait]
impl<T: super::CaseAttachmentService> CaseAttachmentService for T {
async fn list_attachments(
&self,
req: crate::model::ListAttachmentsRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListAttachmentsResponse>> {
T::list_attachments(self, req, options).await
}
}
#[async_trait::async_trait]
pub trait CaseService: std::fmt::Debug + Send + Sync {
async fn get_case(
&self,
req: crate::model::GetCaseRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Case>>;
async fn list_cases(
&self,
req: crate::model::ListCasesRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListCasesResponse>>;
async fn search_cases(
&self,
req: crate::model::SearchCasesRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::SearchCasesResponse>>;
async fn create_case(
&self,
req: crate::model::CreateCaseRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Case>>;
async fn update_case(
&self,
req: crate::model::UpdateCaseRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Case>>;
async fn escalate_case(
&self,
req: crate::model::EscalateCaseRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Case>>;
async fn close_case(
&self,
req: crate::model::CloseCaseRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Case>>;
async fn search_case_classifications(
&self,
req: crate::model::SearchCaseClassificationsRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::SearchCaseClassificationsResponse>>;
}
#[async_trait::async_trait]
impl<T: super::CaseService> CaseService for T {
async fn get_case(
&self,
req: crate::model::GetCaseRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Case>> {
T::get_case(self, req, options).await
}
async fn list_cases(
&self,
req: crate::model::ListCasesRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListCasesResponse>> {
T::list_cases(self, req, options).await
}
async fn search_cases(
&self,
req: crate::model::SearchCasesRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::SearchCasesResponse>> {
T::search_cases(self, req, options).await
}
async fn create_case(
&self,
req: crate::model::CreateCaseRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Case>> {
T::create_case(self, req, options).await
}
async fn update_case(
&self,
req: crate::model::UpdateCaseRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Case>> {
T::update_case(self, req, options).await
}
async fn escalate_case(
&self,
req: crate::model::EscalateCaseRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Case>> {
T::escalate_case(self, req, options).await
}
async fn close_case(
&self,
req: crate::model::CloseCaseRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Case>> {
T::close_case(self, req, options).await
}
async fn search_case_classifications(
&self,
req: crate::model::SearchCaseClassificationsRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::SearchCaseClassificationsResponse>> {
T::search_case_classifications(self, req, options).await
}
}
#[async_trait::async_trait]
pub trait CommentService: std::fmt::Debug + Send + Sync {
async fn list_comments(
&self,
req: crate::model::ListCommentsRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListCommentsResponse>>;
async fn create_comment(
&self,
req: crate::model::CreateCommentRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Comment>>;
}
#[async_trait::async_trait]
impl<T: super::CommentService> CommentService for T {
async fn list_comments(
&self,
req: crate::model::ListCommentsRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListCommentsResponse>> {
T::list_comments(self, req, options).await
}
async fn create_comment(
&self,
req: crate::model::CreateCommentRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Comment>> {
T::create_comment(self, req, options).await
}
}