twitter_v2/api/
compliance.rs

1use super::TwitterApi;
2use crate::api_result::ApiResult;
3use crate::authorization::Authorization;
4use crate::data::{ComplianceJob, ComplianceJobKind};
5use crate::id::IntoNumericId;
6use crate::query::{ComplianceJobKindQuery, GetComplianceJobsRequestBuilder, UrlQueryExt};
7use crate::requests::ComplianceJobBuilder;
8use reqwest::Method;
9
10impl<A> TwitterApi<A>
11where
12    A: Authorization,
13{
14    pub fn get_compliance_jobs(
15        &self,
16        kind: impl IntoIterator<Item = ComplianceJobKindQuery>,
17    ) -> GetComplianceJobsRequestBuilder<A, Vec<ComplianceJob>, ()> {
18        let mut url = self.url("compliance/jobs").unwrap();
19        url.append_query_seq("type", kind);
20        GetComplianceJobsRequestBuilder::new(self, url)
21    }
22    pub async fn get_compliance_job(
23        &self,
24        id: impl IntoNumericId,
25    ) -> ApiResult<A, ComplianceJob, ()> {
26        self.send(self.request(Method::GET, self.url(format!("compliance/job/{id}"))?))
27            .await
28    }
29    pub fn post_compliance_job(&self, kind: ComplianceJobKind) -> ComplianceJobBuilder<A> {
30        ComplianceJobBuilder::new(self, self.url("compliance/jobs").unwrap(), kind)
31    }
32}