#![allow(clippy::ptr_arg)]
use std::collections::{BTreeSet, HashMap};
use tokio::time::sleep;
#[derive(Clone)]
pub struct Partners<C> {
pub client: common::Client<C>,
pub auth: Box<dyn common::GetToken>,
_user_agent: String,
_base_url: String,
_root_url: String,
}
impl<C> common::Hub for Partners<C> {}
impl<'a, C> Partners<C> {
pub fn new<A: 'static + common::GetToken>(client: common::Client<C>, auth: A) -> Partners<C> {
Partners {
client,
auth: Box::new(auth),
_user_agent: "google-api-rust-client/7.0.0".to_string(),
_base_url: "https://partners.googleapis.com/".to_string(),
_root_url: "https://partners.googleapis.com/".to_string(),
}
}
pub fn analytics(&'a self) -> AnalyticMethods<'a, C> {
AnalyticMethods { hub: self }
}
pub fn client_messages(&'a self) -> ClientMessageMethods<'a, C> {
ClientMessageMethods { hub: self }
}
pub fn companies(&'a self) -> CompanyMethods<'a, C> {
CompanyMethods { hub: self }
}
pub fn leads(&'a self) -> LeadMethods<'a, C> {
LeadMethods { hub: self }
}
pub fn methods(&'a self) -> MethodMethods<'a, C> {
MethodMethods { hub: self }
}
pub fn offers(&'a self) -> OfferMethods<'a, C> {
OfferMethods { hub: self }
}
pub fn user_events(&'a self) -> UserEventMethods<'a, C> {
UserEventMethods { hub: self }
}
pub fn user_states(&'a self) -> UserStateMethods<'a, C> {
UserStateMethods { hub: self }
}
pub fn users(&'a self) -> UserMethods<'a, C> {
UserMethods { hub: self }
}
pub fn user_agent(&mut self, agent_name: String) -> String {
std::mem::replace(&mut self._user_agent, agent_name)
}
pub fn base_url(&mut self, new_base_url: String) -> String {
std::mem::replace(&mut self._base_url, new_base_url)
}
pub fn root_url(&mut self, new_root_url: String) -> String {
std::mem::replace(&mut self._root_url, new_root_url)
}
}
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[serde_with::serde_as]
#[derive(Default, Clone, Debug, serde::Serialize, serde::Deserialize)]
pub struct Empty {
_never_set: Option<bool>,
}
impl common::ResponseResult for Empty {}
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[serde_with::serde_as]
#[derive(Default, Clone, Debug, serde::Serialize, serde::Deserialize)]
pub struct TrafficSource {
#[serde(rename = "trafficSourceId")]
pub traffic_source_id: Option<String>,
#[serde(rename = "trafficSubId")]
pub traffic_sub_id: Option<String>,
}
impl common::Part for TrafficSource {}
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[serde_with::serde_as]
#[derive(Default, Clone, Debug, serde::Serialize, serde::Deserialize)]
pub struct RequestMetadata {
pub locale: Option<String>,
#[serde(rename = "userOverrides")]
pub user_overrides: Option<UserOverrides>,
#[serde(rename = "partnersSessionId")]
pub partners_session_id: Option<String>,
#[serde(rename = "experimentIds")]
pub experiment_ids: Option<Vec<String>>,
#[serde(rename = "trafficSource")]
pub traffic_source: Option<TrafficSource>,
}
impl common::Part for RequestMetadata {}
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[serde_with::serde_as]
#[derive(Default, Clone, Debug, serde::Serialize, serde::Deserialize)]
pub struct CreateLeadRequest {
#[serde(rename = "requestMetadata")]
pub request_metadata: Option<RequestMetadata>,
pub lead: Option<Lead>,
#[serde(rename = "recaptchaChallenge")]
pub recaptcha_challenge: Option<RecaptchaChallenge>,
}
impl common::RequestValue for CreateLeadRequest {}
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[serde_with::serde_as]
#[derive(Default, Clone, Debug, serde::Serialize, serde::Deserialize)]
pub struct EventData {
pub key: Option<String>,
pub values: Option<Vec<String>>,
}
impl common::Part for EventData {}
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[serde_with::serde_as]
#[derive(Default, Clone, Debug, serde::Serialize, serde::Deserialize)]
pub struct ExamStatus {
pub warning: Option<bool>,
pub expiration: Option<chrono::DateTime<chrono::offset::Utc>>,
#[serde(rename = "lastPassed")]
pub last_passed: Option<chrono::DateTime<chrono::offset::Utc>>,
#[serde(rename = "examType")]
pub exam_type: Option<String>,
pub passed: Option<bool>,
pub taken: Option<chrono::DateTime<chrono::offset::Utc>>,
}
impl common::Part for ExamStatus {}
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[serde_with::serde_as]
#[derive(Default, Clone, Debug, serde::Serialize, serde::Deserialize)]
pub struct ListOffersResponse {
#[serde(rename = "responseMetadata")]
pub response_metadata: Option<ResponseMetadata>,
#[serde(rename = "noOfferReason")]
pub no_offer_reason: Option<String>,
#[serde(rename = "availableOffers")]
pub available_offers: Option<Vec<AvailableOffer>>,
}
impl common::ResponseResult for ListOffersResponse {}
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[serde_with::serde_as]
#[derive(Default, Clone, Debug, serde::Serialize, serde::Deserialize)]
pub struct CountryOfferInfo {
#[serde(rename = "offerCountryCode")]
pub offer_country_code: Option<String>,
#[serde(rename = "spendXAmount")]
pub spend_x_amount: Option<String>,
#[serde(rename = "offerType")]
pub offer_type: Option<String>,
#[serde(rename = "getYAmount")]
pub get_y_amount: Option<String>,
}
impl common::Part for CountryOfferInfo {}
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[serde_with::serde_as]
#[derive(Default, Clone, Debug, serde::Serialize, serde::Deserialize)]
pub struct ListCompaniesResponse {
#[serde(rename = "responseMetadata")]
pub response_metadata: Option<ResponseMetadata>,
pub companies: Option<Vec<Company>>,
#[serde(rename = "nextPageToken")]
pub next_page_token: Option<String>,
}
impl common::ResponseResult for ListCompaniesResponse {}
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[serde_with::serde_as]
#[derive(Default, Clone, Debug, serde::Serialize, serde::Deserialize)]
pub struct OfferCustomer {
#[serde(rename = "adwordsUrl")]
pub adwords_url: Option<String>,
#[serde(rename = "offerType")]
pub offer_type: Option<String>,
#[serde(rename = "externalCid")]
#[serde_as(as = "Option<serde_with::DisplayFromStr>")]
pub external_cid: Option<i64>,
#[serde(rename = "countryCode")]
pub country_code: Option<String>,
#[serde(rename = "creationTime")]
pub creation_time: Option<chrono::DateTime<chrono::offset::Utc>>,
#[serde(rename = "eligibilityDaysLeft")]
pub eligibility_days_left: Option<i32>,
#[serde(rename = "getYAmount")]
pub get_y_amount: Option<String>,
pub name: Option<String>,
#[serde(rename = "spendXAmount")]
pub spend_x_amount: Option<String>,
}
impl common::Part for OfferCustomer {}
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[serde_with::serde_as]
#[derive(Default, Clone, Debug, serde::Serialize, serde::Deserialize)]
pub struct CertificationStatus {
#[serde(rename = "type")]
pub type_: Option<String>,
#[serde(rename = "userCount")]
pub user_count: Option<i32>,
#[serde(rename = "isCertified")]
pub is_certified: Option<bool>,
#[serde(rename = "examStatuses")]
pub exam_statuses: Option<Vec<CertificationExamStatus>>,
}
impl common::Part for CertificationStatus {}
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[serde_with::serde_as]
#[derive(Default, Clone, Debug, serde::Serialize, serde::Deserialize)]
pub struct LocalizedCompanyInfo {
#[serde(rename = "languageCode")]
pub language_code: Option<String>,
#[serde(rename = "countryCodes")]
pub country_codes: Option<Vec<String>>,
pub overview: Option<String>,
#[serde(rename = "displayName")]
pub display_name: Option<String>,
}
impl common::Part for LocalizedCompanyInfo {}
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[serde_with::serde_as]
#[derive(Default, Clone, Debug, serde::Serialize, serde::Deserialize)]
pub struct LogUserEventResponse {
#[serde(rename = "responseMetadata")]
pub response_metadata: Option<ResponseMetadata>,
}
impl common::ResponseResult for LogUserEventResponse {}
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[serde_with::serde_as]
#[derive(Default, Clone, Debug, serde::Serialize, serde::Deserialize)]
pub struct ListOffersHistoryResponse {
#[serde(rename = "canShowEntireCompany")]
pub can_show_entire_company: Option<bool>,
#[serde(rename = "totalResults")]
pub total_results: Option<i32>,
#[serde(rename = "showingEntireCompany")]
pub showing_entire_company: Option<bool>,
pub offers: Option<Vec<HistoricalOffer>>,
#[serde(rename = "nextPageToken")]
pub next_page_token: Option<String>,
#[serde(rename = "responseMetadata")]
pub response_metadata: Option<ResponseMetadata>,
}
impl common::ResponseResult for ListOffersHistoryResponse {}
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[serde_with::serde_as]
#[derive(Default, Clone, Debug, serde::Serialize, serde::Deserialize)]
pub struct LogMessageResponse {
#[serde(rename = "responseMetadata")]
pub response_metadata: Option<ResponseMetadata>,
}
impl common::ResponseResult for LogMessageResponse {}
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[serde_with::serde_as]
#[derive(Default, Clone, Debug, serde::Serialize, serde::Deserialize)]
pub struct SpecializationStatus {
#[serde(rename = "badgeSpecialization")]
pub badge_specialization: Option<String>,
#[serde(rename = "badgeSpecializationState")]
pub badge_specialization_state: Option<String>,
}
impl common::Part for SpecializationStatus {}
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[serde_with::serde_as]
#[derive(Default, Clone, Debug, serde::Serialize, serde::Deserialize)]
pub struct Certification {
#[serde(rename = "lastAchieved")]
pub last_achieved: Option<chrono::DateTime<chrono::offset::Utc>>,
pub achieved: Option<bool>,
pub expiration: Option<chrono::DateTime<chrono::offset::Utc>>,
pub warning: Option<bool>,
#[serde(rename = "certificationType")]
pub certification_type: Option<String>,
}
impl common::Part for Certification {}
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[serde_with::serde_as]
#[derive(Default, Clone, Debug, serde::Serialize, serde::Deserialize)]
pub struct User {
pub profile: Option<UserProfile>,
#[serde(rename = "availableAdwordsManagerAccounts")]
pub available_adwords_manager_accounts: Option<Vec<AdWordsManagerAccountInfo>>,
#[serde(rename = "internalId")]
pub internal_id: Option<String>,
#[serde(rename = "examStatus")]
pub exam_status: Option<Vec<ExamStatus>>,
pub id: Option<String>,
#[serde(rename = "publicProfile")]
pub public_profile: Option<PublicProfile>,
#[serde(rename = "companyVerificationEmail")]
pub company_verification_email: Option<String>,
pub company: Option<CompanyRelation>,
#[serde(rename = "lastAccessTime")]
pub last_access_time: Option<chrono::DateTime<chrono::offset::Utc>>,
#[serde(rename = "primaryEmails")]
pub primary_emails: Option<Vec<String>>,
#[serde(rename = "certificationStatus")]
pub certification_status: Option<Vec<Certification>>,
#[serde(rename = "afaInfoShared")]
pub afa_info_shared: Option<bool>,
}
impl common::Resource for User {}
impl common::ResponseResult for User {}
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[serde_with::serde_as]
#[derive(Default, Clone, Debug, serde::Serialize, serde::Deserialize)]
pub struct ListAnalyticsResponse {
#[serde(rename = "nextPageToken")]
pub next_page_token: Option<String>,
#[serde(rename = "responseMetadata")]
pub response_metadata: Option<ResponseMetadata>,
#[serde(rename = "analyticsSummary")]
pub analytics_summary: Option<AnalyticsSummary>,
pub analytics: Option<Vec<Analytics>>,
}
impl common::ResponseResult for ListAnalyticsResponse {}
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[serde_with::serde_as]
#[derive(Default, Clone, Debug, serde::Serialize, serde::Deserialize)]
pub struct ListLeadsResponse {
#[serde(rename = "nextPageToken")]
pub next_page_token: Option<String>,
#[serde(rename = "responseMetadata")]
pub response_metadata: Option<ResponseMetadata>,
#[serde(rename = "totalSize")]
pub total_size: Option<i32>,
pub leads: Option<Vec<Lead>>,
}
impl common::ResponseResult for ListLeadsResponse {}
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[serde_with::serde_as]
#[derive(Default, Clone, Debug, serde::Serialize, serde::Deserialize)]
pub struct Company {
#[serde(rename = "profileStatus")]
pub profile_status: Option<String>,
#[serde(rename = "primaryLanguageCode")]
pub primary_language_code: Option<String>,
pub locations: Option<Vec<Location>>,
#[serde(rename = "convertedMinMonthlyBudget")]
pub converted_min_monthly_budget: Option<Money>,
pub industries: Option<Vec<String>>,
#[serde(rename = "websiteUrl")]
pub website_url: Option<String>,
#[serde(rename = "additionalWebsites")]
pub additional_websites: Option<Vec<String>>,
#[serde(rename = "primaryAdwordsManagerAccountId")]
#[serde_as(as = "Option<serde_with::DisplayFromStr>")]
pub primary_adwords_manager_account_id: Option<i64>,
#[serde(rename = "badgeAuthorityInAwn")]
pub badge_authority_in_awn: Option<bool>,
pub name: Option<String>,
#[serde(rename = "localizedInfos")]
pub localized_infos: Option<Vec<LocalizedCompanyInfo>>,
#[serde(rename = "certificationStatuses")]
pub certification_statuses: Option<Vec<CertificationStatus>>,
pub id: Option<String>,
#[serde(rename = "publicProfile")]
pub public_profile: Option<PublicProfile>,
#[serde(rename = "originalMinMonthlyBudget")]
pub original_min_monthly_budget: Option<Money>,
pub services: Option<Vec<String>>,
#[serde(rename = "primaryLocation")]
pub primary_location: Option<Location>,
pub ranks: Option<Vec<Rank>>,
#[serde(rename = "specializationStatus")]
pub specialization_status: Option<Vec<SpecializationStatus>>,
#[serde(rename = "badgeTier")]
pub badge_tier: Option<String>,
#[serde(rename = "autoApprovalEmailDomains")]
pub auto_approval_email_domains: Option<Vec<String>>,
#[serde(rename = "companyTypes")]
pub company_types: Option<Vec<String>>,
}
impl common::RequestValue for Company {}
impl common::ResponseResult for Company {}
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[serde_with::serde_as]
#[derive(Default, Clone, Debug, serde::Serialize, serde::Deserialize)]
pub struct CreateLeadResponse {
pub lead: Option<Lead>,
#[serde(rename = "recaptchaStatus")]
pub recaptcha_status: Option<String>,
#[serde(rename = "responseMetadata")]
pub response_metadata: Option<ResponseMetadata>,
}
impl common::ResponseResult for CreateLeadResponse {}
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[serde_with::serde_as]
#[derive(Default, Clone, Debug, serde::Serialize, serde::Deserialize)]
pub struct GetCompanyResponse {
#[serde(rename = "responseMetadata")]
pub response_metadata: Option<ResponseMetadata>,
pub company: Option<Company>,
}
impl common::ResponseResult for GetCompanyResponse {}
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[serde_with::serde_as]
#[derive(Default, Clone, Debug, serde::Serialize, serde::Deserialize)]
pub struct Location {
#[serde(rename = "administrativeArea")]
pub administrative_area: Option<String>,
pub locality: Option<String>,
#[serde(rename = "latLng")]
pub lat_lng: Option<LatLng>,
#[serde(rename = "regionCode")]
pub region_code: Option<String>,
#[serde(rename = "dependentLocality")]
pub dependent_locality: Option<String>,
pub address: Option<String>,
#[serde(rename = "postalCode")]
pub postal_code: Option<String>,
#[serde(rename = "sortingCode")]
pub sorting_code: Option<String>,
#[serde(rename = "languageCode")]
pub language_code: Option<String>,
#[serde(rename = "addressLine")]
pub address_line: Option<Vec<String>>,
}
impl common::Part for Location {}
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[serde_with::serde_as]
#[derive(Default, Clone, Debug, serde::Serialize, serde::Deserialize)]
pub struct CertificationExamStatus {
#[serde(rename = "numberUsersPass")]
pub number_users_pass: Option<i32>,
#[serde(rename = "type")]
pub type_: Option<String>,
}
impl common::Part for CertificationExamStatus {}
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[serde_with::serde_as]
#[derive(Default, Clone, Debug, serde::Serialize, serde::Deserialize)]
pub struct OptIns {
#[serde(rename = "marketComm")]
pub market_comm: Option<bool>,
#[serde(rename = "specialOffers")]
pub special_offers: Option<bool>,
#[serde(rename = "performanceSuggestions")]
pub performance_suggestions: Option<bool>,
#[serde(rename = "physicalMail")]
pub physical_mail: Option<bool>,
#[serde(rename = "phoneContact")]
pub phone_contact: Option<bool>,
}
impl common::Part for OptIns {}
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[serde_with::serde_as]
#[derive(Default, Clone, Debug, serde::Serialize, serde::Deserialize)]
pub struct Rank {
pub value: Option<f64>,
#[serde(rename = "type")]
pub type_: Option<String>,
}
impl common::Part for Rank {}
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[serde_with::serde_as]
#[derive(Default, Clone, Debug, serde::Serialize, serde::Deserialize)]
pub struct GetPartnersStatusResponse {
#[serde(rename = "responseMetadata")]
pub response_metadata: Option<ResponseMetadata>,
}
impl common::ResponseResult for GetPartnersStatusResponse {}
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[serde_with::serde_as]
#[derive(Default, Clone, Debug, serde::Serialize, serde::Deserialize)]
pub struct UserProfile {
pub channels: Option<Vec<String>>,
#[serde(rename = "profilePublic")]
pub profile_public: Option<bool>,
#[serde(rename = "jobFunctions")]
pub job_functions: Option<Vec<String>>,
#[serde(rename = "givenName")]
pub given_name: Option<String>,
pub address: Option<Location>,
pub industries: Option<Vec<String>>,
#[serde(rename = "emailOptIns")]
pub email_opt_ins: Option<OptIns>,
#[serde(rename = "familyName")]
pub family_name: Option<String>,
pub languages: Option<Vec<String>>,
pub markets: Option<Vec<String>>,
#[serde(rename = "migrateToAfa")]
pub migrate_to_afa: Option<bool>,
#[serde(rename = "adwordsManagerAccount")]
#[serde_as(as = "Option<serde_with::DisplayFromStr>")]
pub adwords_manager_account: Option<i64>,
#[serde(rename = "phoneNumber")]
pub phone_number: Option<String>,
#[serde(rename = "primaryCountryCode")]
pub primary_country_code: Option<String>,
#[serde(rename = "emailAddress")]
pub email_address: Option<String>,
}
impl common::RequestValue for UserProfile {}
impl common::ResponseResult for UserProfile {}
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[serde_with::serde_as]
#[derive(Default, Clone, Debug, serde::Serialize, serde::Deserialize)]
pub struct HistoricalOffer {
#[serde(rename = "creationTime")]
pub creation_time: Option<chrono::DateTime<chrono::offset::Utc>>,
pub status: Option<String>,
#[serde(rename = "clientEmail")]
pub client_email: Option<String>,
#[serde(rename = "clientId")]
#[serde_as(as = "Option<serde_with::DisplayFromStr>")]
pub client_id: Option<i64>,
#[serde(rename = "clientName")]
pub client_name: Option<String>,
#[serde(rename = "lastModifiedTime")]
pub last_modified_time: Option<chrono::DateTime<chrono::offset::Utc>>,
#[serde(rename = "adwordsUrl")]
pub adwords_url: Option<String>,
#[serde(rename = "offerType")]
pub offer_type: Option<String>,
#[serde(rename = "senderName")]
pub sender_name: Option<String>,
#[serde(rename = "offerCountryCode")]
pub offer_country_code: Option<String>,
#[serde(rename = "expirationTime")]
pub expiration_time: Option<chrono::DateTime<chrono::offset::Utc>>,
#[serde(rename = "offerCode")]
pub offer_code: Option<String>,
}
impl common::Part for HistoricalOffer {}
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[serde_with::serde_as]
#[derive(Default, Clone, Debug, serde::Serialize, serde::Deserialize)]
pub struct LogUserEventRequest {
pub url: Option<String>,
#[serde(rename = "requestMetadata")]
pub request_metadata: Option<RequestMetadata>,
#[serde(rename = "eventDatas")]
pub event_datas: Option<Vec<EventData>>,
#[serde(rename = "eventScope")]
pub event_scope: Option<String>,
#[serde(rename = "eventCategory")]
pub event_category: Option<String>,
pub lead: Option<Lead>,
#[serde(rename = "eventAction")]
pub event_action: Option<String>,
}
impl common::RequestValue for LogUserEventRequest {}
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[serde_with::serde_as]
#[derive(Default, Clone, Debug, serde::Serialize, serde::Deserialize)]
pub struct UserOverrides {
#[serde(rename = "ipAddress")]
pub ip_address: Option<String>,
#[serde(rename = "userId")]
pub user_id: Option<String>,
}
impl common::Part for UserOverrides {}
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[serde_with::serde_as]
#[derive(Default, Clone, Debug, serde::Serialize, serde::Deserialize)]
pub struct AnalyticsDataPoint {
#[serde(rename = "eventLocations")]
pub event_locations: Option<Vec<LatLng>>,
#[serde(rename = "eventCount")]
pub event_count: Option<i32>,
}
impl common::Part for AnalyticsDataPoint {}
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[serde_with::serde_as]
#[derive(Default, Clone, Debug, serde::Serialize, serde::Deserialize)]
pub struct Analytics {
#[serde(rename = "eventDate")]
pub event_date: Option<Date>,
#[serde(rename = "profileViews")]
pub profile_views: Option<AnalyticsDataPoint>,
#[serde(rename = "searchViews")]
pub search_views: Option<AnalyticsDataPoint>,
pub contacts: Option<AnalyticsDataPoint>,
}
impl common::Part for Analytics {}
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[serde_with::serde_as]
#[derive(Default, Clone, Debug, serde::Serialize, serde::Deserialize)]
pub struct AdWordsManagerAccountInfo {
#[serde_as(as = "Option<serde_with::DisplayFromStr>")]
pub id: Option<i64>,
#[serde(rename = "customerName")]
pub customer_name: Option<String>,
}
impl common::Part for AdWordsManagerAccountInfo {}
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[serde_with::serde_as]
#[derive(Default, Clone, Debug, serde::Serialize, serde::Deserialize)]
pub struct PublicProfile {
#[serde(rename = "profileImage")]
pub profile_image: Option<String>,
#[serde(rename = "displayName")]
pub display_name: Option<String>,
#[serde(rename = "displayImageUrl")]
pub display_image_url: Option<String>,
pub id: Option<String>,
pub url: Option<String>,
}
impl common::Part for PublicProfile {}
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[serde_with::serde_as]
#[derive(Default, Clone, Debug, serde::Serialize, serde::Deserialize)]
pub struct ResponseMetadata {
#[serde(rename = "debugInfo")]
pub debug_info: Option<DebugInfo>,
}
impl common::Part for ResponseMetadata {}
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[serde_with::serde_as]
#[derive(Default, Clone, Debug, serde::Serialize, serde::Deserialize)]
pub struct RecaptchaChallenge {
pub id: Option<String>,
pub response: Option<String>,
}
impl common::Part for RecaptchaChallenge {}
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[serde_with::serde_as]
#[derive(Default, Clone, Debug, serde::Serialize, serde::Deserialize)]
pub struct AvailableOffer {
#[serde(rename = "offerLevel")]
pub offer_level: Option<String>,
pub name: Option<String>,
#[serde_as(as = "Option<serde_with::DisplayFromStr>")]
pub id: Option<i64>,
#[serde(rename = "qualifiedCustomersComplete")]
pub qualified_customers_complete: Option<bool>,
#[serde(rename = "countryOfferInfos")]
pub country_offer_infos: Option<Vec<CountryOfferInfo>>,
#[serde(rename = "offerType")]
pub offer_type: Option<String>,
#[serde(rename = "maxAccountAge")]
pub max_account_age: Option<i32>,
#[serde(rename = "qualifiedCustomer")]
pub qualified_customer: Option<Vec<OfferCustomer>>,
pub terms: Option<String>,
#[serde(rename = "showSpecialOfferCopy")]
pub show_special_offer_copy: Option<bool>,
pub available: Option<i32>,
pub description: Option<String>,
}
impl common::Part for AvailableOffer {}
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[serde_with::serde_as]
#[derive(Default, Clone, Debug, serde::Serialize, serde::Deserialize)]
pub struct LatLng {
pub latitude: Option<f64>,
pub longitude: Option<f64>,
}
impl common::Part for LatLng {}
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[serde_with::serde_as]
#[derive(Default, Clone, Debug, serde::Serialize, serde::Deserialize)]
pub struct Money {
#[serde(rename = "currencyCode")]
pub currency_code: Option<String>,
pub nanos: Option<i32>,
#[serde_as(as = "Option<serde_with::DisplayFromStr>")]
pub units: Option<i64>,
}
impl common::Part for Money {}
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[serde_with::serde_as]
#[derive(Default, Clone, Debug, serde::Serialize, serde::Deserialize)]
pub struct AnalyticsSummary {
#[serde(rename = "profileViewsCount")]
pub profile_views_count: Option<i32>,
#[serde(rename = "searchViewsCount")]
pub search_views_count: Option<i32>,
#[serde(rename = "contactsCount")]
pub contacts_count: Option<i32>,
}
impl common::Part for AnalyticsSummary {}
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[serde_with::serde_as]
#[derive(Default, Clone, Debug, serde::Serialize, serde::Deserialize)]
pub struct LogMessageRequest {
#[serde(rename = "clientInfo")]
pub client_info: Option<HashMap<String, String>>,
#[serde(rename = "requestMetadata")]
pub request_metadata: Option<RequestMetadata>,
pub level: Option<String>,
pub details: Option<String>,
}
impl common::RequestValue for LogMessageRequest {}
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[serde_with::serde_as]
#[derive(Default, Clone, Debug, serde::Serialize, serde::Deserialize)]
pub struct Lead {
#[serde(rename = "minMonthlyBudget")]
pub min_monthly_budget: Option<Money>,
#[serde(rename = "givenName")]
pub given_name: Option<String>,
#[serde(rename = "languageCode")]
pub language_code: Option<String>,
#[serde(rename = "websiteUrl")]
pub website_url: Option<String>,
pub state: Option<String>,
#[serde(rename = "gpsMotivations")]
pub gps_motivations: Option<Vec<String>>,
pub email: Option<String>,
#[serde(rename = "familyName")]
pub family_name: Option<String>,
pub id: Option<String>,
pub comments: Option<String>,
#[serde(rename = "phoneNumber")]
pub phone_number: Option<String>,
#[serde(rename = "adwordsCustomerId")]
#[serde_as(as = "Option<serde_with::DisplayFromStr>")]
pub adwords_customer_id: Option<i64>,
#[serde(rename = "createTime")]
pub create_time: Option<chrono::DateTime<chrono::offset::Utc>>,
#[serde(rename = "marketingOptIn")]
pub marketing_opt_in: Option<bool>,
#[serde(rename = "type")]
pub type_: Option<String>,
}
impl common::RequestValue for Lead {}
impl common::Resource for Lead {}
impl common::ResponseResult for Lead {}
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[serde_with::serde_as]
#[derive(Default, Clone, Debug, serde::Serialize, serde::Deserialize)]
pub struct DebugInfo {
#[serde(rename = "serverInfo")]
pub server_info: Option<String>,
#[serde(rename = "serverTraceInfo")]
pub server_trace_info: Option<String>,
#[serde(rename = "serviceUrl")]
pub service_url: Option<String>,
}
impl common::Part for DebugInfo {}
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[serde_with::serde_as]
#[derive(Default, Clone, Debug, serde::Serialize, serde::Deserialize)]
pub struct ListUserStatesResponse {
#[serde(rename = "responseMetadata")]
pub response_metadata: Option<ResponseMetadata>,
#[serde(rename = "userStates")]
pub user_states: Option<Vec<String>>,
}
impl common::ResponseResult for ListUserStatesResponse {}
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[serde_with::serde_as]
#[derive(Default, Clone, Debug, serde::Serialize, serde::Deserialize)]
pub struct CompanyRelation {
#[serde(rename = "companyAdmin")]
pub company_admin: Option<bool>,
pub address: Option<String>,
#[serde(rename = "isPending")]
pub is_pending: Option<bool>,
#[serde(rename = "creationTime")]
pub creation_time: Option<chrono::DateTime<chrono::offset::Utc>>,
#[serde(rename = "primaryAddress")]
pub primary_address: Option<Location>,
pub state: Option<String>,
pub name: Option<String>,
#[serde(rename = "managerAccount")]
#[serde_as(as = "Option<serde_with::DisplayFromStr>")]
pub manager_account: Option<i64>,
pub segment: Option<Vec<String>>,
#[serde(rename = "internalCompanyId")]
pub internal_company_id: Option<String>,
#[serde(rename = "badgeTier")]
pub badge_tier: Option<String>,
#[serde(rename = "specializationStatus")]
pub specialization_status: Option<Vec<SpecializationStatus>>,
#[serde(rename = "phoneNumber")]
pub phone_number: Option<String>,
pub website: Option<String>,
#[serde(rename = "primaryCountryCode")]
pub primary_country_code: Option<String>,
#[serde(rename = "companyId")]
pub company_id: Option<String>,
#[serde(rename = "primaryLanguageCode")]
pub primary_language_code: Option<String>,
#[serde(rename = "logoUrl")]
pub logo_url: Option<String>,
#[serde(rename = "resolvedTimestamp")]
pub resolved_timestamp: Option<chrono::DateTime<chrono::offset::Utc>>,
}
impl common::RequestValue for CompanyRelation {}
impl common::ResponseResult for CompanyRelation {}
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[serde_with::serde_as]
#[derive(Default, Clone, Debug, serde::Serialize, serde::Deserialize)]
pub struct Date {
pub year: Option<i32>,
pub day: Option<i32>,
pub month: Option<i32>,
}
impl common::Part for Date {}
pub struct UserEventMethods<'a, C>
where
C: 'a,
{
hub: &'a Partners<C>,
}
impl<'a, C> common::MethodsBuilder for UserEventMethods<'a, C> {}
impl<'a, C> UserEventMethods<'a, C> {
pub fn log(&self, request: LogUserEventRequest) -> UserEventLogCall<'a, C> {
UserEventLogCall {
hub: self.hub,
_request: request,
_delegate: Default::default(),
_additional_params: Default::default(),
}
}
}
pub struct ClientMessageMethods<'a, C>
where
C: 'a,
{
hub: &'a Partners<C>,
}
impl<'a, C> common::MethodsBuilder for ClientMessageMethods<'a, C> {}
impl<'a, C> ClientMessageMethods<'a, C> {
pub fn log(&self, request: LogMessageRequest) -> ClientMessageLogCall<'a, C> {
ClientMessageLogCall {
hub: self.hub,
_request: request,
_delegate: Default::default(),
_additional_params: Default::default(),
}
}
}
pub struct LeadMethods<'a, C>
where
C: 'a,
{
hub: &'a Partners<C>,
}
impl<'a, C> common::MethodsBuilder for LeadMethods<'a, C> {}
impl<'a, C> LeadMethods<'a, C> {
pub fn list(&self) -> LeadListCall<'a, C> {
LeadListCall {
hub: self.hub,
_request_metadata_user_overrides_user_id: Default::default(),
_request_metadata_user_overrides_ip_address: Default::default(),
_request_metadata_traffic_source_traffic_sub_id: Default::default(),
_request_metadata_traffic_source_traffic_source_id: Default::default(),
_request_metadata_partners_session_id: Default::default(),
_request_metadata_locale: Default::default(),
_request_metadata_experiment_ids: Default::default(),
_page_token: Default::default(),
_page_size: Default::default(),
_order_by: Default::default(),
_delegate: Default::default(),
_additional_params: Default::default(),
}
}
}
pub struct OfferMethods<'a, C>
where
C: 'a,
{
hub: &'a Partners<C>,
}
impl<'a, C> common::MethodsBuilder for OfferMethods<'a, C> {}
impl<'a, C> OfferMethods<'a, C> {
pub fn history_list(&self) -> OfferHistoryListCall<'a, C> {
OfferHistoryListCall {
hub: self.hub,
_request_metadata_user_overrides_user_id: Default::default(),
_request_metadata_user_overrides_ip_address: Default::default(),
_request_metadata_traffic_source_traffic_sub_id: Default::default(),
_request_metadata_traffic_source_traffic_source_id: Default::default(),
_request_metadata_partners_session_id: Default::default(),
_request_metadata_locale: Default::default(),
_request_metadata_experiment_ids: Default::default(),
_page_token: Default::default(),
_page_size: Default::default(),
_order_by: Default::default(),
_entire_company: Default::default(),
_delegate: Default::default(),
_additional_params: Default::default(),
}
}
pub fn list(&self) -> OfferListCall<'a, C> {
OfferListCall {
hub: self.hub,
_request_metadata_user_overrides_user_id: Default::default(),
_request_metadata_user_overrides_ip_address: Default::default(),
_request_metadata_traffic_source_traffic_sub_id: Default::default(),
_request_metadata_traffic_source_traffic_source_id: Default::default(),
_request_metadata_partners_session_id: Default::default(),
_request_metadata_locale: Default::default(),
_request_metadata_experiment_ids: Default::default(),
_delegate: Default::default(),
_additional_params: Default::default(),
}
}
}
pub struct AnalyticMethods<'a, C>
where
C: 'a,
{
hub: &'a Partners<C>,
}
impl<'a, C> common::MethodsBuilder for AnalyticMethods<'a, C> {}
impl<'a, C> AnalyticMethods<'a, C> {
pub fn list(&self) -> AnalyticListCall<'a, C> {
AnalyticListCall {
hub: self.hub,
_request_metadata_user_overrides_user_id: Default::default(),
_request_metadata_user_overrides_ip_address: Default::default(),
_request_metadata_traffic_source_traffic_sub_id: Default::default(),
_request_metadata_traffic_source_traffic_source_id: Default::default(),
_request_metadata_partners_session_id: Default::default(),
_request_metadata_locale: Default::default(),
_request_metadata_experiment_ids: Default::default(),
_page_token: Default::default(),
_page_size: Default::default(),
_delegate: Default::default(),
_additional_params: Default::default(),
}
}
}
pub struct UserStateMethods<'a, C>
where
C: 'a,
{
hub: &'a Partners<C>,
}
impl<'a, C> common::MethodsBuilder for UserStateMethods<'a, C> {}
impl<'a, C> UserStateMethods<'a, C> {
pub fn list(&self) -> UserStateListCall<'a, C> {
UserStateListCall {
hub: self.hub,
_request_metadata_user_overrides_user_id: Default::default(),
_request_metadata_user_overrides_ip_address: Default::default(),
_request_metadata_traffic_source_traffic_sub_id: Default::default(),
_request_metadata_traffic_source_traffic_source_id: Default::default(),
_request_metadata_partners_session_id: Default::default(),
_request_metadata_locale: Default::default(),
_request_metadata_experiment_ids: Default::default(),
_delegate: Default::default(),
_additional_params: Default::default(),
}
}
}
pub struct MethodMethods<'a, C>
where
C: 'a,
{
hub: &'a Partners<C>,
}
impl<'a, C> common::MethodsBuilder for MethodMethods<'a, C> {}
impl<'a, C> MethodMethods<'a, C> {
pub fn update_leads(&self, request: Lead) -> MethodUpdateLeadCall<'a, C> {
MethodUpdateLeadCall {
hub: self.hub,
_request: request,
_update_mask: Default::default(),
_request_metadata_user_overrides_user_id: Default::default(),
_request_metadata_user_overrides_ip_address: Default::default(),
_request_metadata_traffic_source_traffic_sub_id: Default::default(),
_request_metadata_traffic_source_traffic_source_id: Default::default(),
_request_metadata_partners_session_id: Default::default(),
_request_metadata_locale: Default::default(),
_request_metadata_experiment_ids: Default::default(),
_delegate: Default::default(),
_additional_params: Default::default(),
}
}
pub fn update_companies(&self, request: Company) -> MethodUpdateCompanyCall<'a, C> {
MethodUpdateCompanyCall {
hub: self.hub,
_request: request,
_update_mask: Default::default(),
_request_metadata_user_overrides_user_id: Default::default(),
_request_metadata_user_overrides_ip_address: Default::default(),
_request_metadata_traffic_source_traffic_sub_id: Default::default(),
_request_metadata_traffic_source_traffic_source_id: Default::default(),
_request_metadata_partners_session_id: Default::default(),
_request_metadata_locale: Default::default(),
_request_metadata_experiment_ids: Default::default(),
_delegate: Default::default(),
_additional_params: Default::default(),
}
}
pub fn get_partnersstatus(&self) -> MethodGetPartnersstatuCall<'a, C> {
MethodGetPartnersstatuCall {
hub: self.hub,
_request_metadata_user_overrides_user_id: Default::default(),
_request_metadata_user_overrides_ip_address: Default::default(),
_request_metadata_traffic_source_traffic_sub_id: Default::default(),
_request_metadata_traffic_source_traffic_source_id: Default::default(),
_request_metadata_partners_session_id: Default::default(),
_request_metadata_locale: Default::default(),
_request_metadata_experiment_ids: Default::default(),
_delegate: Default::default(),
_additional_params: Default::default(),
}
}
}
pub struct CompanyMethods<'a, C>
where
C: 'a,
{
hub: &'a Partners<C>,
}
impl<'a, C> common::MethodsBuilder for CompanyMethods<'a, C> {}
impl<'a, C> CompanyMethods<'a, C> {
pub fn leads_create(
&self,
request: CreateLeadRequest,
company_id: &str,
) -> CompanyLeadCreateCall<'a, C> {
CompanyLeadCreateCall {
hub: self.hub,
_request: request,
_company_id: company_id.to_string(),
_delegate: Default::default(),
_additional_params: Default::default(),
}
}
pub fn get(&self, company_id: &str) -> CompanyGetCall<'a, C> {
CompanyGetCall {
hub: self.hub,
_company_id: company_id.to_string(),
_view: Default::default(),
_request_metadata_user_overrides_user_id: Default::default(),
_request_metadata_user_overrides_ip_address: Default::default(),
_request_metadata_traffic_source_traffic_sub_id: Default::default(),
_request_metadata_traffic_source_traffic_source_id: Default::default(),
_request_metadata_partners_session_id: Default::default(),
_request_metadata_locale: Default::default(),
_request_metadata_experiment_ids: Default::default(),
_order_by: Default::default(),
_currency_code: Default::default(),
_address: Default::default(),
_delegate: Default::default(),
_additional_params: Default::default(),
}
}
pub fn list(&self) -> CompanyListCall<'a, C> {
CompanyListCall {
hub: self.hub,
_website_url: Default::default(),
_view: Default::default(),
_specializations: Default::default(),
_services: Default::default(),
_request_metadata_user_overrides_user_id: Default::default(),
_request_metadata_user_overrides_ip_address: Default::default(),
_request_metadata_traffic_source_traffic_sub_id: Default::default(),
_request_metadata_traffic_source_traffic_source_id: Default::default(),
_request_metadata_partners_session_id: Default::default(),
_request_metadata_locale: Default::default(),
_request_metadata_experiment_ids: Default::default(),
_page_token: Default::default(),
_page_size: Default::default(),
_order_by: Default::default(),
_min_monthly_budget_units: Default::default(),
_min_monthly_budget_nanos: Default::default(),
_min_monthly_budget_currency_code: Default::default(),
_max_monthly_budget_units: Default::default(),
_max_monthly_budget_nanos: Default::default(),
_max_monthly_budget_currency_code: Default::default(),
_language_codes: Default::default(),
_industries: Default::default(),
_gps_motivations: Default::default(),
_company_name: Default::default(),
_address: Default::default(),
_delegate: Default::default(),
_additional_params: Default::default(),
}
}
}
pub struct UserMethods<'a, C>
where
C: 'a,
{
hub: &'a Partners<C>,
}
impl<'a, C> common::MethodsBuilder for UserMethods<'a, C> {}
impl<'a, C> UserMethods<'a, C> {
pub fn update_profile(&self, request: UserProfile) -> UserUpdateProfileCall<'a, C> {
UserUpdateProfileCall {
hub: self.hub,
_request: request,
_request_metadata_user_overrides_user_id: Default::default(),
_request_metadata_user_overrides_ip_address: Default::default(),
_request_metadata_traffic_source_traffic_sub_id: Default::default(),
_request_metadata_traffic_source_traffic_source_id: Default::default(),
_request_metadata_partners_session_id: Default::default(),
_request_metadata_locale: Default::default(),
_request_metadata_experiment_ids: Default::default(),
_delegate: Default::default(),
_additional_params: Default::default(),
}
}
pub fn create_company_relation(
&self,
request: CompanyRelation,
user_id: &str,
) -> UserCreateCompanyRelationCall<'a, C> {
UserCreateCompanyRelationCall {
hub: self.hub,
_request: request,
_user_id: user_id.to_string(),
_request_metadata_user_overrides_user_id: Default::default(),
_request_metadata_user_overrides_ip_address: Default::default(),
_request_metadata_traffic_source_traffic_sub_id: Default::default(),
_request_metadata_traffic_source_traffic_source_id: Default::default(),
_request_metadata_partners_session_id: Default::default(),
_request_metadata_locale: Default::default(),
_request_metadata_experiment_ids: Default::default(),
_delegate: Default::default(),
_additional_params: Default::default(),
}
}
pub fn delete_company_relation(&self, user_id: &str) -> UserDeleteCompanyRelationCall<'a, C> {
UserDeleteCompanyRelationCall {
hub: self.hub,
_user_id: user_id.to_string(),
_request_metadata_user_overrides_user_id: Default::default(),
_request_metadata_user_overrides_ip_address: Default::default(),
_request_metadata_traffic_source_traffic_sub_id: Default::default(),
_request_metadata_traffic_source_traffic_source_id: Default::default(),
_request_metadata_partners_session_id: Default::default(),
_request_metadata_locale: Default::default(),
_request_metadata_experiment_ids: Default::default(),
_delegate: Default::default(),
_additional_params: Default::default(),
}
}
pub fn get(&self, user_id: &str) -> UserGetCall<'a, C> {
UserGetCall {
hub: self.hub,
_user_id: user_id.to_string(),
_user_view: Default::default(),
_request_metadata_user_overrides_user_id: Default::default(),
_request_metadata_user_overrides_ip_address: Default::default(),
_request_metadata_traffic_source_traffic_sub_id: Default::default(),
_request_metadata_traffic_source_traffic_source_id: Default::default(),
_request_metadata_partners_session_id: Default::default(),
_request_metadata_locale: Default::default(),
_request_metadata_experiment_ids: Default::default(),
_delegate: Default::default(),
_additional_params: Default::default(),
}
}
}
pub struct UserEventLogCall<'a, C>
where
C: 'a,
{
hub: &'a Partners<C>,
_request: LogUserEventRequest,
_delegate: Option<&'a mut dyn common::Delegate>,
_additional_params: HashMap<String, String>,
}
impl<'a, C> common::CallBuilder for UserEventLogCall<'a, C> {}
impl<'a, C> UserEventLogCall<'a, C>
where
C: common::Connector,
{
pub async fn doit(mut self) -> common::Result<(common::Response, LogUserEventResponse)> {
use std::borrow::Cow;
use std::io::{Read, Seek};
use common::{url::Params, ToParts};
use hyper::header::{AUTHORIZATION, CONTENT_LENGTH, CONTENT_TYPE, LOCATION, USER_AGENT};
let mut dd = common::DefaultDelegate;
let mut dlg: &mut dyn common::Delegate = self._delegate.unwrap_or(&mut dd);
dlg.begin(common::MethodInfo {
id: "partners.userEvents.log",
http_method: hyper::Method::POST,
});
for &field in ["alt"].iter() {
if self._additional_params.contains_key(field) {
dlg.finished(false);
return Err(common::Error::FieldClash(field));
}
}
let mut params = Params::with_capacity(3 + self._additional_params.len());
params.extend(self._additional_params.iter());
params.push("alt", "json");
let mut url = self.hub._base_url.clone() + "v2/userEvents:log";
match dlg.api_key() {
Some(value) => params.push("key", value),
None => {
dlg.finished(false);
return Err(common::Error::MissingAPIKey);
}
}
let url = params.parse_with_url(&url);
let mut json_mime_type = mime::APPLICATION_JSON;
let mut request_value_reader = {
let mut value = serde_json::value::to_value(&self._request).expect("serde to work");
common::remove_json_null_values(&mut value);
let mut dst = std::io::Cursor::new(Vec::with_capacity(128));
serde_json::to_writer(&mut dst, &value).unwrap();
dst
};
let request_size = request_value_reader
.seek(std::io::SeekFrom::End(0))
.unwrap();
request_value_reader
.seek(std::io::SeekFrom::Start(0))
.unwrap();
loop {
request_value_reader
.seek(std::io::SeekFrom::Start(0))
.unwrap();
let mut req_result = {
let client = &self.hub.client;
dlg.pre_request();
let mut req_builder = hyper::Request::builder()
.method(hyper::Method::POST)
.uri(url.as_str())
.header(USER_AGENT, self.hub._user_agent.clone());
let request = req_builder
.header(CONTENT_TYPE, json_mime_type.to_string())
.header(CONTENT_LENGTH, request_size as u64)
.body(common::to_body(
request_value_reader.get_ref().clone().into(),
));
client.request(request.unwrap()).await
};
match req_result {
Err(err) => {
if let common::Retry::After(d) = dlg.http_error(&err) {
sleep(d).await;
continue;
}
dlg.finished(false);
return Err(common::Error::HttpError(err));
}
Ok(res) => {
let (mut parts, body) = res.into_parts();
let mut body = common::Body::new(body);
if !parts.status.is_success() {
let bytes = common::to_bytes(body).await.unwrap_or_default();
let error = serde_json::from_str(&common::to_string(&bytes));
let response = common::to_response(parts, bytes.into());
if let common::Retry::After(d) =
dlg.http_failure(&response, error.as_ref().ok())
{
sleep(d).await;
continue;
}
dlg.finished(false);
return Err(match error {
Ok(value) => common::Error::BadRequest(value),
_ => common::Error::Failure(response),
});
}
let response = {
let bytes = common::to_bytes(body).await.unwrap_or_default();
let encoded = common::to_string(&bytes);
match serde_json::from_str(&encoded) {
Ok(decoded) => (common::to_response(parts, bytes.into()), decoded),
Err(error) => {
dlg.response_json_decode_error(&encoded, &error);
return Err(common::Error::JsonDecodeError(
encoded.to_string(),
error,
));
}
}
};
dlg.finished(true);
return Ok(response);
}
}
}
}
pub fn request(mut self, new_value: LogUserEventRequest) -> UserEventLogCall<'a, C> {
self._request = new_value;
self
}
pub fn delegate(mut self, new_value: &'a mut dyn common::Delegate) -> UserEventLogCall<'a, C> {
self._delegate = Some(new_value);
self
}
pub fn param<T>(mut self, name: T, value: T) -> UserEventLogCall<'a, C>
where
T: AsRef<str>,
{
self._additional_params
.insert(name.as_ref().to_string(), value.as_ref().to_string());
self
}
}
pub struct ClientMessageLogCall<'a, C>
where
C: 'a,
{
hub: &'a Partners<C>,
_request: LogMessageRequest,
_delegate: Option<&'a mut dyn common::Delegate>,
_additional_params: HashMap<String, String>,
}
impl<'a, C> common::CallBuilder for ClientMessageLogCall<'a, C> {}
impl<'a, C> ClientMessageLogCall<'a, C>
where
C: common::Connector,
{
pub async fn doit(mut self) -> common::Result<(common::Response, LogMessageResponse)> {
use std::borrow::Cow;
use std::io::{Read, Seek};
use common::{url::Params, ToParts};
use hyper::header::{AUTHORIZATION, CONTENT_LENGTH, CONTENT_TYPE, LOCATION, USER_AGENT};
let mut dd = common::DefaultDelegate;
let mut dlg: &mut dyn common::Delegate = self._delegate.unwrap_or(&mut dd);
dlg.begin(common::MethodInfo {
id: "partners.clientMessages.log",
http_method: hyper::Method::POST,
});
for &field in ["alt"].iter() {
if self._additional_params.contains_key(field) {
dlg.finished(false);
return Err(common::Error::FieldClash(field));
}
}
let mut params = Params::with_capacity(3 + self._additional_params.len());
params.extend(self._additional_params.iter());
params.push("alt", "json");
let mut url = self.hub._base_url.clone() + "v2/clientMessages:log";
match dlg.api_key() {
Some(value) => params.push("key", value),
None => {
dlg.finished(false);
return Err(common::Error::MissingAPIKey);
}
}
let url = params.parse_with_url(&url);
let mut json_mime_type = mime::APPLICATION_JSON;
let mut request_value_reader = {
let mut value = serde_json::value::to_value(&self._request).expect("serde to work");
common::remove_json_null_values(&mut value);
let mut dst = std::io::Cursor::new(Vec::with_capacity(128));
serde_json::to_writer(&mut dst, &value).unwrap();
dst
};
let request_size = request_value_reader
.seek(std::io::SeekFrom::End(0))
.unwrap();
request_value_reader
.seek(std::io::SeekFrom::Start(0))
.unwrap();
loop {
request_value_reader
.seek(std::io::SeekFrom::Start(0))
.unwrap();
let mut req_result = {
let client = &self.hub.client;
dlg.pre_request();
let mut req_builder = hyper::Request::builder()
.method(hyper::Method::POST)
.uri(url.as_str())
.header(USER_AGENT, self.hub._user_agent.clone());
let request = req_builder
.header(CONTENT_TYPE, json_mime_type.to_string())
.header(CONTENT_LENGTH, request_size as u64)
.body(common::to_body(
request_value_reader.get_ref().clone().into(),
));
client.request(request.unwrap()).await
};
match req_result {
Err(err) => {
if let common::Retry::After(d) = dlg.http_error(&err) {
sleep(d).await;
continue;
}
dlg.finished(false);
return Err(common::Error::HttpError(err));
}
Ok(res) => {
let (mut parts, body) = res.into_parts();
let mut body = common::Body::new(body);
if !parts.status.is_success() {
let bytes = common::to_bytes(body).await.unwrap_or_default();
let error = serde_json::from_str(&common::to_string(&bytes));
let response = common::to_response(parts, bytes.into());
if let common::Retry::After(d) =
dlg.http_failure(&response, error.as_ref().ok())
{
sleep(d).await;
continue;
}
dlg.finished(false);
return Err(match error {
Ok(value) => common::Error::BadRequest(value),
_ => common::Error::Failure(response),
});
}
let response = {
let bytes = common::to_bytes(body).await.unwrap_or_default();
let encoded = common::to_string(&bytes);
match serde_json::from_str(&encoded) {
Ok(decoded) => (common::to_response(parts, bytes.into()), decoded),
Err(error) => {
dlg.response_json_decode_error(&encoded, &error);
return Err(common::Error::JsonDecodeError(
encoded.to_string(),
error,
));
}
}
};
dlg.finished(true);
return Ok(response);
}
}
}
}
pub fn request(mut self, new_value: LogMessageRequest) -> ClientMessageLogCall<'a, C> {
self._request = new_value;
self
}
pub fn delegate(
mut self,
new_value: &'a mut dyn common::Delegate,
) -> ClientMessageLogCall<'a, C> {
self._delegate = Some(new_value);
self
}
pub fn param<T>(mut self, name: T, value: T) -> ClientMessageLogCall<'a, C>
where
T: AsRef<str>,
{
self._additional_params
.insert(name.as_ref().to_string(), value.as_ref().to_string());
self
}
}
pub struct LeadListCall<'a, C>
where
C: 'a,
{
hub: &'a Partners<C>,
_request_metadata_user_overrides_user_id: Option<String>,
_request_metadata_user_overrides_ip_address: Option<String>,
_request_metadata_traffic_source_traffic_sub_id: Option<String>,
_request_metadata_traffic_source_traffic_source_id: Option<String>,
_request_metadata_partners_session_id: Option<String>,
_request_metadata_locale: Option<String>,
_request_metadata_experiment_ids: Vec<String>,
_page_token: Option<String>,
_page_size: Option<i32>,
_order_by: Option<String>,
_delegate: Option<&'a mut dyn common::Delegate>,
_additional_params: HashMap<String, String>,
}
impl<'a, C> common::CallBuilder for LeadListCall<'a, C> {}
impl<'a, C> LeadListCall<'a, C>
where
C: common::Connector,
{
pub async fn doit(mut self) -> common::Result<(common::Response, ListLeadsResponse)> {
use std::borrow::Cow;
use std::io::{Read, Seek};
use common::{url::Params, ToParts};
use hyper::header::{AUTHORIZATION, CONTENT_LENGTH, CONTENT_TYPE, LOCATION, USER_AGENT};
let mut dd = common::DefaultDelegate;
let mut dlg: &mut dyn common::Delegate = self._delegate.unwrap_or(&mut dd);
dlg.begin(common::MethodInfo {
id: "partners.leads.list",
http_method: hyper::Method::GET,
});
for &field in [
"alt",
"requestMetadata.userOverrides.userId",
"requestMetadata.userOverrides.ipAddress",
"requestMetadata.trafficSource.trafficSubId",
"requestMetadata.trafficSource.trafficSourceId",
"requestMetadata.partnersSessionId",
"requestMetadata.locale",
"requestMetadata.experimentIds",
"pageToken",
"pageSize",
"orderBy",
]
.iter()
{
if self._additional_params.contains_key(field) {
dlg.finished(false);
return Err(common::Error::FieldClash(field));
}
}
let mut params = Params::with_capacity(12 + self._additional_params.len());
if let Some(value) = self._request_metadata_user_overrides_user_id.as_ref() {
params.push("requestMetadata.userOverrides.userId", value);
}
if let Some(value) = self._request_metadata_user_overrides_ip_address.as_ref() {
params.push("requestMetadata.userOverrides.ipAddress", value);
}
if let Some(value) = self
._request_metadata_traffic_source_traffic_sub_id
.as_ref()
{
params.push("requestMetadata.trafficSource.trafficSubId", value);
}
if let Some(value) = self
._request_metadata_traffic_source_traffic_source_id
.as_ref()
{
params.push("requestMetadata.trafficSource.trafficSourceId", value);
}
if let Some(value) = self._request_metadata_partners_session_id.as_ref() {
params.push("requestMetadata.partnersSessionId", value);
}
if let Some(value) = self._request_metadata_locale.as_ref() {
params.push("requestMetadata.locale", value);
}
if !self._request_metadata_experiment_ids.is_empty() {
for f in self._request_metadata_experiment_ids.iter() {
params.push("requestMetadata.experimentIds", f);
}
}
if let Some(value) = self._page_token.as_ref() {
params.push("pageToken", value);
}
if let Some(value) = self._page_size.as_ref() {
params.push("pageSize", value.to_string());
}
if let Some(value) = self._order_by.as_ref() {
params.push("orderBy", value);
}
params.extend(self._additional_params.iter());
params.push("alt", "json");
let mut url = self.hub._base_url.clone() + "v2/leads";
match dlg.api_key() {
Some(value) => params.push("key", value),
None => {
dlg.finished(false);
return Err(common::Error::MissingAPIKey);
}
}
let url = params.parse_with_url(&url);
loop {
let mut req_result = {
let client = &self.hub.client;
dlg.pre_request();
let mut req_builder = hyper::Request::builder()
.method(hyper::Method::GET)
.uri(url.as_str())
.header(USER_AGENT, self.hub._user_agent.clone());
let request = req_builder
.header(CONTENT_LENGTH, 0_u64)
.body(common::to_body::<String>(None));
client.request(request.unwrap()).await
};
match req_result {
Err(err) => {
if let common::Retry::After(d) = dlg.http_error(&err) {
sleep(d).await;
continue;
}
dlg.finished(false);
return Err(common::Error::HttpError(err));
}
Ok(res) => {
let (mut parts, body) = res.into_parts();
let mut body = common::Body::new(body);
if !parts.status.is_success() {
let bytes = common::to_bytes(body).await.unwrap_or_default();
let error = serde_json::from_str(&common::to_string(&bytes));
let response = common::to_response(parts, bytes.into());
if let common::Retry::After(d) =
dlg.http_failure(&response, error.as_ref().ok())
{
sleep(d).await;
continue;
}
dlg.finished(false);
return Err(match error {
Ok(value) => common::Error::BadRequest(value),
_ => common::Error::Failure(response),
});
}
let response = {
let bytes = common::to_bytes(body).await.unwrap_or_default();
let encoded = common::to_string(&bytes);
match serde_json::from_str(&encoded) {
Ok(decoded) => (common::to_response(parts, bytes.into()), decoded),
Err(error) => {
dlg.response_json_decode_error(&encoded, &error);
return Err(common::Error::JsonDecodeError(
encoded.to_string(),
error,
));
}
}
};
dlg.finished(true);
return Ok(response);
}
}
}
}
pub fn request_metadata_user_overrides_user_id(
mut self,
new_value: &str,
) -> LeadListCall<'a, C> {
self._request_metadata_user_overrides_user_id = Some(new_value.to_string());
self
}
pub fn request_metadata_user_overrides_ip_address(
mut self,
new_value: &str,
) -> LeadListCall<'a, C> {
self._request_metadata_user_overrides_ip_address = Some(new_value.to_string());
self
}
pub fn request_metadata_traffic_source_traffic_sub_id(
mut self,
new_value: &str,
) -> LeadListCall<'a, C> {
self._request_metadata_traffic_source_traffic_sub_id = Some(new_value.to_string());
self
}
pub fn request_metadata_traffic_source_traffic_source_id(
mut self,
new_value: &str,
) -> LeadListCall<'a, C> {
self._request_metadata_traffic_source_traffic_source_id = Some(new_value.to_string());
self
}
pub fn request_metadata_partners_session_id(mut self, new_value: &str) -> LeadListCall<'a, C> {
self._request_metadata_partners_session_id = Some(new_value.to_string());
self
}
pub fn request_metadata_locale(mut self, new_value: &str) -> LeadListCall<'a, C> {
self._request_metadata_locale = Some(new_value.to_string());
self
}
pub fn add_request_metadata_experiment_ids(mut self, new_value: &str) -> LeadListCall<'a, C> {
self._request_metadata_experiment_ids
.push(new_value.to_string());
self
}
pub fn page_token(mut self, new_value: &str) -> LeadListCall<'a, C> {
self._page_token = Some(new_value.to_string());
self
}
pub fn page_size(mut self, new_value: i32) -> LeadListCall<'a, C> {
self._page_size = Some(new_value);
self
}
pub fn order_by(mut self, new_value: &str) -> LeadListCall<'a, C> {
self._order_by = Some(new_value.to_string());
self
}
pub fn delegate(mut self, new_value: &'a mut dyn common::Delegate) -> LeadListCall<'a, C> {
self._delegate = Some(new_value);
self
}
pub fn param<T>(mut self, name: T, value: T) -> LeadListCall<'a, C>
where
T: AsRef<str>,
{
self._additional_params
.insert(name.as_ref().to_string(), value.as_ref().to_string());
self
}
}
pub struct OfferHistoryListCall<'a, C>
where
C: 'a,
{
hub: &'a Partners<C>,
_request_metadata_user_overrides_user_id: Option<String>,
_request_metadata_user_overrides_ip_address: Option<String>,
_request_metadata_traffic_source_traffic_sub_id: Option<String>,
_request_metadata_traffic_source_traffic_source_id: Option<String>,
_request_metadata_partners_session_id: Option<String>,
_request_metadata_locale: Option<String>,
_request_metadata_experiment_ids: Vec<String>,
_page_token: Option<String>,
_page_size: Option<i32>,
_order_by: Option<String>,
_entire_company: Option<bool>,
_delegate: Option<&'a mut dyn common::Delegate>,
_additional_params: HashMap<String, String>,
}
impl<'a, C> common::CallBuilder for OfferHistoryListCall<'a, C> {}
impl<'a, C> OfferHistoryListCall<'a, C>
where
C: common::Connector,
{
pub async fn doit(mut self) -> common::Result<(common::Response, ListOffersHistoryResponse)> {
use std::borrow::Cow;
use std::io::{Read, Seek};
use common::{url::Params, ToParts};
use hyper::header::{AUTHORIZATION, CONTENT_LENGTH, CONTENT_TYPE, LOCATION, USER_AGENT};
let mut dd = common::DefaultDelegate;
let mut dlg: &mut dyn common::Delegate = self._delegate.unwrap_or(&mut dd);
dlg.begin(common::MethodInfo {
id: "partners.offers.history.list",
http_method: hyper::Method::GET,
});
for &field in [
"alt",
"requestMetadata.userOverrides.userId",
"requestMetadata.userOverrides.ipAddress",
"requestMetadata.trafficSource.trafficSubId",
"requestMetadata.trafficSource.trafficSourceId",
"requestMetadata.partnersSessionId",
"requestMetadata.locale",
"requestMetadata.experimentIds",
"pageToken",
"pageSize",
"orderBy",
"entireCompany",
]
.iter()
{
if self._additional_params.contains_key(field) {
dlg.finished(false);
return Err(common::Error::FieldClash(field));
}
}
let mut params = Params::with_capacity(13 + self._additional_params.len());
if let Some(value) = self._request_metadata_user_overrides_user_id.as_ref() {
params.push("requestMetadata.userOverrides.userId", value);
}
if let Some(value) = self._request_metadata_user_overrides_ip_address.as_ref() {
params.push("requestMetadata.userOverrides.ipAddress", value);
}
if let Some(value) = self
._request_metadata_traffic_source_traffic_sub_id
.as_ref()
{
params.push("requestMetadata.trafficSource.trafficSubId", value);
}
if let Some(value) = self
._request_metadata_traffic_source_traffic_source_id
.as_ref()
{
params.push("requestMetadata.trafficSource.trafficSourceId", value);
}
if let Some(value) = self._request_metadata_partners_session_id.as_ref() {
params.push("requestMetadata.partnersSessionId", value);
}
if let Some(value) = self._request_metadata_locale.as_ref() {
params.push("requestMetadata.locale", value);
}
if !self._request_metadata_experiment_ids.is_empty() {
for f in self._request_metadata_experiment_ids.iter() {
params.push("requestMetadata.experimentIds", f);
}
}
if let Some(value) = self._page_token.as_ref() {
params.push("pageToken", value);
}
if let Some(value) = self._page_size.as_ref() {
params.push("pageSize", value.to_string());
}
if let Some(value) = self._order_by.as_ref() {
params.push("orderBy", value);
}
if let Some(value) = self._entire_company.as_ref() {
params.push("entireCompany", value.to_string());
}
params.extend(self._additional_params.iter());
params.push("alt", "json");
let mut url = self.hub._base_url.clone() + "v2/offers/history";
match dlg.api_key() {
Some(value) => params.push("key", value),
None => {
dlg.finished(false);
return Err(common::Error::MissingAPIKey);
}
}
let url = params.parse_with_url(&url);
loop {
let mut req_result = {
let client = &self.hub.client;
dlg.pre_request();
let mut req_builder = hyper::Request::builder()
.method(hyper::Method::GET)
.uri(url.as_str())
.header(USER_AGENT, self.hub._user_agent.clone());
let request = req_builder
.header(CONTENT_LENGTH, 0_u64)
.body(common::to_body::<String>(None));
client.request(request.unwrap()).await
};
match req_result {
Err(err) => {
if let common::Retry::After(d) = dlg.http_error(&err) {
sleep(d).await;
continue;
}
dlg.finished(false);
return Err(common::Error::HttpError(err));
}
Ok(res) => {
let (mut parts, body) = res.into_parts();
let mut body = common::Body::new(body);
if !parts.status.is_success() {
let bytes = common::to_bytes(body).await.unwrap_or_default();
let error = serde_json::from_str(&common::to_string(&bytes));
let response = common::to_response(parts, bytes.into());
if let common::Retry::After(d) =
dlg.http_failure(&response, error.as_ref().ok())
{
sleep(d).await;
continue;
}
dlg.finished(false);
return Err(match error {
Ok(value) => common::Error::BadRequest(value),
_ => common::Error::Failure(response),
});
}
let response = {
let bytes = common::to_bytes(body).await.unwrap_or_default();
let encoded = common::to_string(&bytes);
match serde_json::from_str(&encoded) {
Ok(decoded) => (common::to_response(parts, bytes.into()), decoded),
Err(error) => {
dlg.response_json_decode_error(&encoded, &error);
return Err(common::Error::JsonDecodeError(
encoded.to_string(),
error,
));
}
}
};
dlg.finished(true);
return Ok(response);
}
}
}
}
pub fn request_metadata_user_overrides_user_id(
mut self,
new_value: &str,
) -> OfferHistoryListCall<'a, C> {
self._request_metadata_user_overrides_user_id = Some(new_value.to_string());
self
}
pub fn request_metadata_user_overrides_ip_address(
mut self,
new_value: &str,
) -> OfferHistoryListCall<'a, C> {
self._request_metadata_user_overrides_ip_address = Some(new_value.to_string());
self
}
pub fn request_metadata_traffic_source_traffic_sub_id(
mut self,
new_value: &str,
) -> OfferHistoryListCall<'a, C> {
self._request_metadata_traffic_source_traffic_sub_id = Some(new_value.to_string());
self
}
pub fn request_metadata_traffic_source_traffic_source_id(
mut self,
new_value: &str,
) -> OfferHistoryListCall<'a, C> {
self._request_metadata_traffic_source_traffic_source_id = Some(new_value.to_string());
self
}
pub fn request_metadata_partners_session_id(
mut self,
new_value: &str,
) -> OfferHistoryListCall<'a, C> {
self._request_metadata_partners_session_id = Some(new_value.to_string());
self
}
pub fn request_metadata_locale(mut self, new_value: &str) -> OfferHistoryListCall<'a, C> {
self._request_metadata_locale = Some(new_value.to_string());
self
}
pub fn add_request_metadata_experiment_ids(
mut self,
new_value: &str,
) -> OfferHistoryListCall<'a, C> {
self._request_metadata_experiment_ids
.push(new_value.to_string());
self
}
pub fn page_token(mut self, new_value: &str) -> OfferHistoryListCall<'a, C> {
self._page_token = Some(new_value.to_string());
self
}
pub fn page_size(mut self, new_value: i32) -> OfferHistoryListCall<'a, C> {
self._page_size = Some(new_value);
self
}
pub fn order_by(mut self, new_value: &str) -> OfferHistoryListCall<'a, C> {
self._order_by = Some(new_value.to_string());
self
}
pub fn entire_company(mut self, new_value: bool) -> OfferHistoryListCall<'a, C> {
self._entire_company = Some(new_value);
self
}
pub fn delegate(
mut self,
new_value: &'a mut dyn common::Delegate,
) -> OfferHistoryListCall<'a, C> {
self._delegate = Some(new_value);
self
}
pub fn param<T>(mut self, name: T, value: T) -> OfferHistoryListCall<'a, C>
where
T: AsRef<str>,
{
self._additional_params
.insert(name.as_ref().to_string(), value.as_ref().to_string());
self
}
}
pub struct OfferListCall<'a, C>
where
C: 'a,
{
hub: &'a Partners<C>,
_request_metadata_user_overrides_user_id: Option<String>,
_request_metadata_user_overrides_ip_address: Option<String>,
_request_metadata_traffic_source_traffic_sub_id: Option<String>,
_request_metadata_traffic_source_traffic_source_id: Option<String>,
_request_metadata_partners_session_id: Option<String>,
_request_metadata_locale: Option<String>,
_request_metadata_experiment_ids: Vec<String>,
_delegate: Option<&'a mut dyn common::Delegate>,
_additional_params: HashMap<String, String>,
}
impl<'a, C> common::CallBuilder for OfferListCall<'a, C> {}
impl<'a, C> OfferListCall<'a, C>
where
C: common::Connector,
{
pub async fn doit(mut self) -> common::Result<(common::Response, ListOffersResponse)> {
use std::borrow::Cow;
use std::io::{Read, Seek};
use common::{url::Params, ToParts};
use hyper::header::{AUTHORIZATION, CONTENT_LENGTH, CONTENT_TYPE, LOCATION, USER_AGENT};
let mut dd = common::DefaultDelegate;
let mut dlg: &mut dyn common::Delegate = self._delegate.unwrap_or(&mut dd);
dlg.begin(common::MethodInfo {
id: "partners.offers.list",
http_method: hyper::Method::GET,
});
for &field in [
"alt",
"requestMetadata.userOverrides.userId",
"requestMetadata.userOverrides.ipAddress",
"requestMetadata.trafficSource.trafficSubId",
"requestMetadata.trafficSource.trafficSourceId",
"requestMetadata.partnersSessionId",
"requestMetadata.locale",
"requestMetadata.experimentIds",
]
.iter()
{
if self._additional_params.contains_key(field) {
dlg.finished(false);
return Err(common::Error::FieldClash(field));
}
}
let mut params = Params::with_capacity(9 + self._additional_params.len());
if let Some(value) = self._request_metadata_user_overrides_user_id.as_ref() {
params.push("requestMetadata.userOverrides.userId", value);
}
if let Some(value) = self._request_metadata_user_overrides_ip_address.as_ref() {
params.push("requestMetadata.userOverrides.ipAddress", value);
}
if let Some(value) = self
._request_metadata_traffic_source_traffic_sub_id
.as_ref()
{
params.push("requestMetadata.trafficSource.trafficSubId", value);
}
if let Some(value) = self
._request_metadata_traffic_source_traffic_source_id
.as_ref()
{
params.push("requestMetadata.trafficSource.trafficSourceId", value);
}
if let Some(value) = self._request_metadata_partners_session_id.as_ref() {
params.push("requestMetadata.partnersSessionId", value);
}
if let Some(value) = self._request_metadata_locale.as_ref() {
params.push("requestMetadata.locale", value);
}
if !self._request_metadata_experiment_ids.is_empty() {
for f in self._request_metadata_experiment_ids.iter() {
params.push("requestMetadata.experimentIds", f);
}
}
params.extend(self._additional_params.iter());
params.push("alt", "json");
let mut url = self.hub._base_url.clone() + "v2/offers";
match dlg.api_key() {
Some(value) => params.push("key", value),
None => {
dlg.finished(false);
return Err(common::Error::MissingAPIKey);
}
}
let url = params.parse_with_url(&url);
loop {
let mut req_result = {
let client = &self.hub.client;
dlg.pre_request();
let mut req_builder = hyper::Request::builder()
.method(hyper::Method::GET)
.uri(url.as_str())
.header(USER_AGENT, self.hub._user_agent.clone());
let request = req_builder
.header(CONTENT_LENGTH, 0_u64)
.body(common::to_body::<String>(None));
client.request(request.unwrap()).await
};
match req_result {
Err(err) => {
if let common::Retry::After(d) = dlg.http_error(&err) {
sleep(d).await;
continue;
}
dlg.finished(false);
return Err(common::Error::HttpError(err));
}
Ok(res) => {
let (mut parts, body) = res.into_parts();
let mut body = common::Body::new(body);
if !parts.status.is_success() {
let bytes = common::to_bytes(body).await.unwrap_or_default();
let error = serde_json::from_str(&common::to_string(&bytes));
let response = common::to_response(parts, bytes.into());
if let common::Retry::After(d) =
dlg.http_failure(&response, error.as_ref().ok())
{
sleep(d).await;
continue;
}
dlg.finished(false);
return Err(match error {
Ok(value) => common::Error::BadRequest(value),
_ => common::Error::Failure(response),
});
}
let response = {
let bytes = common::to_bytes(body).await.unwrap_or_default();
let encoded = common::to_string(&bytes);
match serde_json::from_str(&encoded) {
Ok(decoded) => (common::to_response(parts, bytes.into()), decoded),
Err(error) => {
dlg.response_json_decode_error(&encoded, &error);
return Err(common::Error::JsonDecodeError(
encoded.to_string(),
error,
));
}
}
};
dlg.finished(true);
return Ok(response);
}
}
}
}
pub fn request_metadata_user_overrides_user_id(
mut self,
new_value: &str,
) -> OfferListCall<'a, C> {
self._request_metadata_user_overrides_user_id = Some(new_value.to_string());
self
}
pub fn request_metadata_user_overrides_ip_address(
mut self,
new_value: &str,
) -> OfferListCall<'a, C> {
self._request_metadata_user_overrides_ip_address = Some(new_value.to_string());
self
}
pub fn request_metadata_traffic_source_traffic_sub_id(
mut self,
new_value: &str,
) -> OfferListCall<'a, C> {
self._request_metadata_traffic_source_traffic_sub_id = Some(new_value.to_string());
self
}
pub fn request_metadata_traffic_source_traffic_source_id(
mut self,
new_value: &str,
) -> OfferListCall<'a, C> {
self._request_metadata_traffic_source_traffic_source_id = Some(new_value.to_string());
self
}
pub fn request_metadata_partners_session_id(mut self, new_value: &str) -> OfferListCall<'a, C> {
self._request_metadata_partners_session_id = Some(new_value.to_string());
self
}
pub fn request_metadata_locale(mut self, new_value: &str) -> OfferListCall<'a, C> {
self._request_metadata_locale = Some(new_value.to_string());
self
}
pub fn add_request_metadata_experiment_ids(mut self, new_value: &str) -> OfferListCall<'a, C> {
self._request_metadata_experiment_ids
.push(new_value.to_string());
self
}
pub fn delegate(mut self, new_value: &'a mut dyn common::Delegate) -> OfferListCall<'a, C> {
self._delegate = Some(new_value);
self
}
pub fn param<T>(mut self, name: T, value: T) -> OfferListCall<'a, C>
where
T: AsRef<str>,
{
self._additional_params
.insert(name.as_ref().to_string(), value.as_ref().to_string());
self
}
}
pub struct AnalyticListCall<'a, C>
where
C: 'a,
{
hub: &'a Partners<C>,
_request_metadata_user_overrides_user_id: Option<String>,
_request_metadata_user_overrides_ip_address: Option<String>,
_request_metadata_traffic_source_traffic_sub_id: Option<String>,
_request_metadata_traffic_source_traffic_source_id: Option<String>,
_request_metadata_partners_session_id: Option<String>,
_request_metadata_locale: Option<String>,
_request_metadata_experiment_ids: Vec<String>,
_page_token: Option<String>,
_page_size: Option<i32>,
_delegate: Option<&'a mut dyn common::Delegate>,
_additional_params: HashMap<String, String>,
}
impl<'a, C> common::CallBuilder for AnalyticListCall<'a, C> {}
impl<'a, C> AnalyticListCall<'a, C>
where
C: common::Connector,
{
pub async fn doit(mut self) -> common::Result<(common::Response, ListAnalyticsResponse)> {
use std::borrow::Cow;
use std::io::{Read, Seek};
use common::{url::Params, ToParts};
use hyper::header::{AUTHORIZATION, CONTENT_LENGTH, CONTENT_TYPE, LOCATION, USER_AGENT};
let mut dd = common::DefaultDelegate;
let mut dlg: &mut dyn common::Delegate = self._delegate.unwrap_or(&mut dd);
dlg.begin(common::MethodInfo {
id: "partners.analytics.list",
http_method: hyper::Method::GET,
});
for &field in [
"alt",
"requestMetadata.userOverrides.userId",
"requestMetadata.userOverrides.ipAddress",
"requestMetadata.trafficSource.trafficSubId",
"requestMetadata.trafficSource.trafficSourceId",
"requestMetadata.partnersSessionId",
"requestMetadata.locale",
"requestMetadata.experimentIds",
"pageToken",
"pageSize",
]
.iter()
{
if self._additional_params.contains_key(field) {
dlg.finished(false);
return Err(common::Error::FieldClash(field));
}
}
let mut params = Params::with_capacity(11 + self._additional_params.len());
if let Some(value) = self._request_metadata_user_overrides_user_id.as_ref() {
params.push("requestMetadata.userOverrides.userId", value);
}
if let Some(value) = self._request_metadata_user_overrides_ip_address.as_ref() {
params.push("requestMetadata.userOverrides.ipAddress", value);
}
if let Some(value) = self
._request_metadata_traffic_source_traffic_sub_id
.as_ref()
{
params.push("requestMetadata.trafficSource.trafficSubId", value);
}
if let Some(value) = self
._request_metadata_traffic_source_traffic_source_id
.as_ref()
{
params.push("requestMetadata.trafficSource.trafficSourceId", value);
}
if let Some(value) = self._request_metadata_partners_session_id.as_ref() {
params.push("requestMetadata.partnersSessionId", value);
}
if let Some(value) = self._request_metadata_locale.as_ref() {
params.push("requestMetadata.locale", value);
}
if !self._request_metadata_experiment_ids.is_empty() {
for f in self._request_metadata_experiment_ids.iter() {
params.push("requestMetadata.experimentIds", f);
}
}
if let Some(value) = self._page_token.as_ref() {
params.push("pageToken", value);
}
if let Some(value) = self._page_size.as_ref() {
params.push("pageSize", value.to_string());
}
params.extend(self._additional_params.iter());
params.push("alt", "json");
let mut url = self.hub._base_url.clone() + "v2/analytics";
match dlg.api_key() {
Some(value) => params.push("key", value),
None => {
dlg.finished(false);
return Err(common::Error::MissingAPIKey);
}
}
let url = params.parse_with_url(&url);
loop {
let mut req_result = {
let client = &self.hub.client;
dlg.pre_request();
let mut req_builder = hyper::Request::builder()
.method(hyper::Method::GET)
.uri(url.as_str())
.header(USER_AGENT, self.hub._user_agent.clone());
let request = req_builder
.header(CONTENT_LENGTH, 0_u64)
.body(common::to_body::<String>(None));
client.request(request.unwrap()).await
};
match req_result {
Err(err) => {
if let common::Retry::After(d) = dlg.http_error(&err) {
sleep(d).await;
continue;
}
dlg.finished(false);
return Err(common::Error::HttpError(err));
}
Ok(res) => {
let (mut parts, body) = res.into_parts();
let mut body = common::Body::new(body);
if !parts.status.is_success() {
let bytes = common::to_bytes(body).await.unwrap_or_default();
let error = serde_json::from_str(&common::to_string(&bytes));
let response = common::to_response(parts, bytes.into());
if let common::Retry::After(d) =
dlg.http_failure(&response, error.as_ref().ok())
{
sleep(d).await;
continue;
}
dlg.finished(false);
return Err(match error {
Ok(value) => common::Error::BadRequest(value),
_ => common::Error::Failure(response),
});
}
let response = {
let bytes = common::to_bytes(body).await.unwrap_or_default();
let encoded = common::to_string(&bytes);
match serde_json::from_str(&encoded) {
Ok(decoded) => (common::to_response(parts, bytes.into()), decoded),
Err(error) => {
dlg.response_json_decode_error(&encoded, &error);
return Err(common::Error::JsonDecodeError(
encoded.to_string(),
error,
));
}
}
};
dlg.finished(true);
return Ok(response);
}
}
}
}
pub fn request_metadata_user_overrides_user_id(
mut self,
new_value: &str,
) -> AnalyticListCall<'a, C> {
self._request_metadata_user_overrides_user_id = Some(new_value.to_string());
self
}
pub fn request_metadata_user_overrides_ip_address(
mut self,
new_value: &str,
) -> AnalyticListCall<'a, C> {
self._request_metadata_user_overrides_ip_address = Some(new_value.to_string());
self
}
pub fn request_metadata_traffic_source_traffic_sub_id(
mut self,
new_value: &str,
) -> AnalyticListCall<'a, C> {
self._request_metadata_traffic_source_traffic_sub_id = Some(new_value.to_string());
self
}
pub fn request_metadata_traffic_source_traffic_source_id(
mut self,
new_value: &str,
) -> AnalyticListCall<'a, C> {
self._request_metadata_traffic_source_traffic_source_id = Some(new_value.to_string());
self
}
pub fn request_metadata_partners_session_id(
mut self,
new_value: &str,
) -> AnalyticListCall<'a, C> {
self._request_metadata_partners_session_id = Some(new_value.to_string());
self
}
pub fn request_metadata_locale(mut self, new_value: &str) -> AnalyticListCall<'a, C> {
self._request_metadata_locale = Some(new_value.to_string());
self
}
pub fn add_request_metadata_experiment_ids(
mut self,
new_value: &str,
) -> AnalyticListCall<'a, C> {
self._request_metadata_experiment_ids
.push(new_value.to_string());
self
}
pub fn page_token(mut self, new_value: &str) -> AnalyticListCall<'a, C> {
self._page_token = Some(new_value.to_string());
self
}
pub fn page_size(mut self, new_value: i32) -> AnalyticListCall<'a, C> {
self._page_size = Some(new_value);
self
}
pub fn delegate(mut self, new_value: &'a mut dyn common::Delegate) -> AnalyticListCall<'a, C> {
self._delegate = Some(new_value);
self
}
pub fn param<T>(mut self, name: T, value: T) -> AnalyticListCall<'a, C>
where
T: AsRef<str>,
{
self._additional_params
.insert(name.as_ref().to_string(), value.as_ref().to_string());
self
}
}
pub struct UserStateListCall<'a, C>
where
C: 'a,
{
hub: &'a Partners<C>,
_request_metadata_user_overrides_user_id: Option<String>,
_request_metadata_user_overrides_ip_address: Option<String>,
_request_metadata_traffic_source_traffic_sub_id: Option<String>,
_request_metadata_traffic_source_traffic_source_id: Option<String>,
_request_metadata_partners_session_id: Option<String>,
_request_metadata_locale: Option<String>,
_request_metadata_experiment_ids: Vec<String>,
_delegate: Option<&'a mut dyn common::Delegate>,
_additional_params: HashMap<String, String>,
}
impl<'a, C> common::CallBuilder for UserStateListCall<'a, C> {}
impl<'a, C> UserStateListCall<'a, C>
where
C: common::Connector,
{
pub async fn doit(mut self) -> common::Result<(common::Response, ListUserStatesResponse)> {
use std::borrow::Cow;
use std::io::{Read, Seek};
use common::{url::Params, ToParts};
use hyper::header::{AUTHORIZATION, CONTENT_LENGTH, CONTENT_TYPE, LOCATION, USER_AGENT};
let mut dd = common::DefaultDelegate;
let mut dlg: &mut dyn common::Delegate = self._delegate.unwrap_or(&mut dd);
dlg.begin(common::MethodInfo {
id: "partners.userStates.list",
http_method: hyper::Method::GET,
});
for &field in [
"alt",
"requestMetadata.userOverrides.userId",
"requestMetadata.userOverrides.ipAddress",
"requestMetadata.trafficSource.trafficSubId",
"requestMetadata.trafficSource.trafficSourceId",
"requestMetadata.partnersSessionId",
"requestMetadata.locale",
"requestMetadata.experimentIds",
]
.iter()
{
if self._additional_params.contains_key(field) {
dlg.finished(false);
return Err(common::Error::FieldClash(field));
}
}
let mut params = Params::with_capacity(9 + self._additional_params.len());
if let Some(value) = self._request_metadata_user_overrides_user_id.as_ref() {
params.push("requestMetadata.userOverrides.userId", value);
}
if let Some(value) = self._request_metadata_user_overrides_ip_address.as_ref() {
params.push("requestMetadata.userOverrides.ipAddress", value);
}
if let Some(value) = self
._request_metadata_traffic_source_traffic_sub_id
.as_ref()
{
params.push("requestMetadata.trafficSource.trafficSubId", value);
}
if let Some(value) = self
._request_metadata_traffic_source_traffic_source_id
.as_ref()
{
params.push("requestMetadata.trafficSource.trafficSourceId", value);
}
if let Some(value) = self._request_metadata_partners_session_id.as_ref() {
params.push("requestMetadata.partnersSessionId", value);
}
if let Some(value) = self._request_metadata_locale.as_ref() {
params.push("requestMetadata.locale", value);
}
if !self._request_metadata_experiment_ids.is_empty() {
for f in self._request_metadata_experiment_ids.iter() {
params.push("requestMetadata.experimentIds", f);
}
}
params.extend(self._additional_params.iter());
params.push("alt", "json");
let mut url = self.hub._base_url.clone() + "v2/userStates";
match dlg.api_key() {
Some(value) => params.push("key", value),
None => {
dlg.finished(false);
return Err(common::Error::MissingAPIKey);
}
}
let url = params.parse_with_url(&url);
loop {
let mut req_result = {
let client = &self.hub.client;
dlg.pre_request();
let mut req_builder = hyper::Request::builder()
.method(hyper::Method::GET)
.uri(url.as_str())
.header(USER_AGENT, self.hub._user_agent.clone());
let request = req_builder
.header(CONTENT_LENGTH, 0_u64)
.body(common::to_body::<String>(None));
client.request(request.unwrap()).await
};
match req_result {
Err(err) => {
if let common::Retry::After(d) = dlg.http_error(&err) {
sleep(d).await;
continue;
}
dlg.finished(false);
return Err(common::Error::HttpError(err));
}
Ok(res) => {
let (mut parts, body) = res.into_parts();
let mut body = common::Body::new(body);
if !parts.status.is_success() {
let bytes = common::to_bytes(body).await.unwrap_or_default();
let error = serde_json::from_str(&common::to_string(&bytes));
let response = common::to_response(parts, bytes.into());
if let common::Retry::After(d) =
dlg.http_failure(&response, error.as_ref().ok())
{
sleep(d).await;
continue;
}
dlg.finished(false);
return Err(match error {
Ok(value) => common::Error::BadRequest(value),
_ => common::Error::Failure(response),
});
}
let response = {
let bytes = common::to_bytes(body).await.unwrap_or_default();
let encoded = common::to_string(&bytes);
match serde_json::from_str(&encoded) {
Ok(decoded) => (common::to_response(parts, bytes.into()), decoded),
Err(error) => {
dlg.response_json_decode_error(&encoded, &error);
return Err(common::Error::JsonDecodeError(
encoded.to_string(),
error,
));
}
}
};
dlg.finished(true);
return Ok(response);
}
}
}
}
pub fn request_metadata_user_overrides_user_id(
mut self,
new_value: &str,
) -> UserStateListCall<'a, C> {
self._request_metadata_user_overrides_user_id = Some(new_value.to_string());
self
}
pub fn request_metadata_user_overrides_ip_address(
mut self,
new_value: &str,
) -> UserStateListCall<'a, C> {
self._request_metadata_user_overrides_ip_address = Some(new_value.to_string());
self
}
pub fn request_metadata_traffic_source_traffic_sub_id(
mut self,
new_value: &str,
) -> UserStateListCall<'a, C> {
self._request_metadata_traffic_source_traffic_sub_id = Some(new_value.to_string());
self
}
pub fn request_metadata_traffic_source_traffic_source_id(
mut self,
new_value: &str,
) -> UserStateListCall<'a, C> {
self._request_metadata_traffic_source_traffic_source_id = Some(new_value.to_string());
self
}
pub fn request_metadata_partners_session_id(
mut self,
new_value: &str,
) -> UserStateListCall<'a, C> {
self._request_metadata_partners_session_id = Some(new_value.to_string());
self
}
pub fn request_metadata_locale(mut self, new_value: &str) -> UserStateListCall<'a, C> {
self._request_metadata_locale = Some(new_value.to_string());
self
}
pub fn add_request_metadata_experiment_ids(
mut self,
new_value: &str,
) -> UserStateListCall<'a, C> {
self._request_metadata_experiment_ids
.push(new_value.to_string());
self
}
pub fn delegate(mut self, new_value: &'a mut dyn common::Delegate) -> UserStateListCall<'a, C> {
self._delegate = Some(new_value);
self
}
pub fn param<T>(mut self, name: T, value: T) -> UserStateListCall<'a, C>
where
T: AsRef<str>,
{
self._additional_params
.insert(name.as_ref().to_string(), value.as_ref().to_string());
self
}
}
pub struct MethodUpdateLeadCall<'a, C>
where
C: 'a,
{
hub: &'a Partners<C>,
_request: Lead,
_update_mask: Option<common::FieldMask>,
_request_metadata_user_overrides_user_id: Option<String>,
_request_metadata_user_overrides_ip_address: Option<String>,
_request_metadata_traffic_source_traffic_sub_id: Option<String>,
_request_metadata_traffic_source_traffic_source_id: Option<String>,
_request_metadata_partners_session_id: Option<String>,
_request_metadata_locale: Option<String>,
_request_metadata_experiment_ids: Vec<String>,
_delegate: Option<&'a mut dyn common::Delegate>,
_additional_params: HashMap<String, String>,
}
impl<'a, C> common::CallBuilder for MethodUpdateLeadCall<'a, C> {}
impl<'a, C> MethodUpdateLeadCall<'a, C>
where
C: common::Connector,
{
pub async fn doit(mut self) -> common::Result<(common::Response, Lead)> {
use std::borrow::Cow;
use std::io::{Read, Seek};
use common::{url::Params, ToParts};
use hyper::header::{AUTHORIZATION, CONTENT_LENGTH, CONTENT_TYPE, LOCATION, USER_AGENT};
let mut dd = common::DefaultDelegate;
let mut dlg: &mut dyn common::Delegate = self._delegate.unwrap_or(&mut dd);
dlg.begin(common::MethodInfo {
id: "partners.updateLeads",
http_method: hyper::Method::PATCH,
});
for &field in [
"alt",
"updateMask",
"requestMetadata.userOverrides.userId",
"requestMetadata.userOverrides.ipAddress",
"requestMetadata.trafficSource.trafficSubId",
"requestMetadata.trafficSource.trafficSourceId",
"requestMetadata.partnersSessionId",
"requestMetadata.locale",
"requestMetadata.experimentIds",
]
.iter()
{
if self._additional_params.contains_key(field) {
dlg.finished(false);
return Err(common::Error::FieldClash(field));
}
}
let mut params = Params::with_capacity(11 + self._additional_params.len());
if let Some(value) = self._update_mask.as_ref() {
params.push("updateMask", value.to_string());
}
if let Some(value) = self._request_metadata_user_overrides_user_id.as_ref() {
params.push("requestMetadata.userOverrides.userId", value);
}
if let Some(value) = self._request_metadata_user_overrides_ip_address.as_ref() {
params.push("requestMetadata.userOverrides.ipAddress", value);
}
if let Some(value) = self
._request_metadata_traffic_source_traffic_sub_id
.as_ref()
{
params.push("requestMetadata.trafficSource.trafficSubId", value);
}
if let Some(value) = self
._request_metadata_traffic_source_traffic_source_id
.as_ref()
{
params.push("requestMetadata.trafficSource.trafficSourceId", value);
}
if let Some(value) = self._request_metadata_partners_session_id.as_ref() {
params.push("requestMetadata.partnersSessionId", value);
}
if let Some(value) = self._request_metadata_locale.as_ref() {
params.push("requestMetadata.locale", value);
}
if !self._request_metadata_experiment_ids.is_empty() {
for f in self._request_metadata_experiment_ids.iter() {
params.push("requestMetadata.experimentIds", f);
}
}
params.extend(self._additional_params.iter());
params.push("alt", "json");
let mut url = self.hub._base_url.clone() + "v2/leads";
match dlg.api_key() {
Some(value) => params.push("key", value),
None => {
dlg.finished(false);
return Err(common::Error::MissingAPIKey);
}
}
let url = params.parse_with_url(&url);
let mut json_mime_type = mime::APPLICATION_JSON;
let mut request_value_reader = {
let mut value = serde_json::value::to_value(&self._request).expect("serde to work");
common::remove_json_null_values(&mut value);
let mut dst = std::io::Cursor::new(Vec::with_capacity(128));
serde_json::to_writer(&mut dst, &value).unwrap();
dst
};
let request_size = request_value_reader
.seek(std::io::SeekFrom::End(0))
.unwrap();
request_value_reader
.seek(std::io::SeekFrom::Start(0))
.unwrap();
loop {
request_value_reader
.seek(std::io::SeekFrom::Start(0))
.unwrap();
let mut req_result = {
let client = &self.hub.client;
dlg.pre_request();
let mut req_builder = hyper::Request::builder()
.method(hyper::Method::PATCH)
.uri(url.as_str())
.header(USER_AGENT, self.hub._user_agent.clone());
let request = req_builder
.header(CONTENT_TYPE, json_mime_type.to_string())
.header(CONTENT_LENGTH, request_size as u64)
.body(common::to_body(
request_value_reader.get_ref().clone().into(),
));
client.request(request.unwrap()).await
};
match req_result {
Err(err) => {
if let common::Retry::After(d) = dlg.http_error(&err) {
sleep(d).await;
continue;
}
dlg.finished(false);
return Err(common::Error::HttpError(err));
}
Ok(res) => {
let (mut parts, body) = res.into_parts();
let mut body = common::Body::new(body);
if !parts.status.is_success() {
let bytes = common::to_bytes(body).await.unwrap_or_default();
let error = serde_json::from_str(&common::to_string(&bytes));
let response = common::to_response(parts, bytes.into());
if let common::Retry::After(d) =
dlg.http_failure(&response, error.as_ref().ok())
{
sleep(d).await;
continue;
}
dlg.finished(false);
return Err(match error {
Ok(value) => common::Error::BadRequest(value),
_ => common::Error::Failure(response),
});
}
let response = {
let bytes = common::to_bytes(body).await.unwrap_or_default();
let encoded = common::to_string(&bytes);
match serde_json::from_str(&encoded) {
Ok(decoded) => (common::to_response(parts, bytes.into()), decoded),
Err(error) => {
dlg.response_json_decode_error(&encoded, &error);
return Err(common::Error::JsonDecodeError(
encoded.to_string(),
error,
));
}
}
};
dlg.finished(true);
return Ok(response);
}
}
}
}
pub fn request(mut self, new_value: Lead) -> MethodUpdateLeadCall<'a, C> {
self._request = new_value;
self
}
pub fn update_mask(mut self, new_value: common::FieldMask) -> MethodUpdateLeadCall<'a, C> {
self._update_mask = Some(new_value);
self
}
pub fn request_metadata_user_overrides_user_id(
mut self,
new_value: &str,
) -> MethodUpdateLeadCall<'a, C> {
self._request_metadata_user_overrides_user_id = Some(new_value.to_string());
self
}
pub fn request_metadata_user_overrides_ip_address(
mut self,
new_value: &str,
) -> MethodUpdateLeadCall<'a, C> {
self._request_metadata_user_overrides_ip_address = Some(new_value.to_string());
self
}
pub fn request_metadata_traffic_source_traffic_sub_id(
mut self,
new_value: &str,
) -> MethodUpdateLeadCall<'a, C> {
self._request_metadata_traffic_source_traffic_sub_id = Some(new_value.to_string());
self
}
pub fn request_metadata_traffic_source_traffic_source_id(
mut self,
new_value: &str,
) -> MethodUpdateLeadCall<'a, C> {
self._request_metadata_traffic_source_traffic_source_id = Some(new_value.to_string());
self
}
pub fn request_metadata_partners_session_id(
mut self,
new_value: &str,
) -> MethodUpdateLeadCall<'a, C> {
self._request_metadata_partners_session_id = Some(new_value.to_string());
self
}
pub fn request_metadata_locale(mut self, new_value: &str) -> MethodUpdateLeadCall<'a, C> {
self._request_metadata_locale = Some(new_value.to_string());
self
}
pub fn add_request_metadata_experiment_ids(
mut self,
new_value: &str,
) -> MethodUpdateLeadCall<'a, C> {
self._request_metadata_experiment_ids
.push(new_value.to_string());
self
}
pub fn delegate(
mut self,
new_value: &'a mut dyn common::Delegate,
) -> MethodUpdateLeadCall<'a, C> {
self._delegate = Some(new_value);
self
}
pub fn param<T>(mut self, name: T, value: T) -> MethodUpdateLeadCall<'a, C>
where
T: AsRef<str>,
{
self._additional_params
.insert(name.as_ref().to_string(), value.as_ref().to_string());
self
}
}
pub struct MethodUpdateCompanyCall<'a, C>
where
C: 'a,
{
hub: &'a Partners<C>,
_request: Company,
_update_mask: Option<common::FieldMask>,
_request_metadata_user_overrides_user_id: Option<String>,
_request_metadata_user_overrides_ip_address: Option<String>,
_request_metadata_traffic_source_traffic_sub_id: Option<String>,
_request_metadata_traffic_source_traffic_source_id: Option<String>,
_request_metadata_partners_session_id: Option<String>,
_request_metadata_locale: Option<String>,
_request_metadata_experiment_ids: Vec<String>,
_delegate: Option<&'a mut dyn common::Delegate>,
_additional_params: HashMap<String, String>,
}
impl<'a, C> common::CallBuilder for MethodUpdateCompanyCall<'a, C> {}
impl<'a, C> MethodUpdateCompanyCall<'a, C>
where
C: common::Connector,
{
pub async fn doit(mut self) -> common::Result<(common::Response, Company)> {
use std::borrow::Cow;
use std::io::{Read, Seek};
use common::{url::Params, ToParts};
use hyper::header::{AUTHORIZATION, CONTENT_LENGTH, CONTENT_TYPE, LOCATION, USER_AGENT};
let mut dd = common::DefaultDelegate;
let mut dlg: &mut dyn common::Delegate = self._delegate.unwrap_or(&mut dd);
dlg.begin(common::MethodInfo {
id: "partners.updateCompanies",
http_method: hyper::Method::PATCH,
});
for &field in [
"alt",
"updateMask",
"requestMetadata.userOverrides.userId",
"requestMetadata.userOverrides.ipAddress",
"requestMetadata.trafficSource.trafficSubId",
"requestMetadata.trafficSource.trafficSourceId",
"requestMetadata.partnersSessionId",
"requestMetadata.locale",
"requestMetadata.experimentIds",
]
.iter()
{
if self._additional_params.contains_key(field) {
dlg.finished(false);
return Err(common::Error::FieldClash(field));
}
}
let mut params = Params::with_capacity(11 + self._additional_params.len());
if let Some(value) = self._update_mask.as_ref() {
params.push("updateMask", value.to_string());
}
if let Some(value) = self._request_metadata_user_overrides_user_id.as_ref() {
params.push("requestMetadata.userOverrides.userId", value);
}
if let Some(value) = self._request_metadata_user_overrides_ip_address.as_ref() {
params.push("requestMetadata.userOverrides.ipAddress", value);
}
if let Some(value) = self
._request_metadata_traffic_source_traffic_sub_id
.as_ref()
{
params.push("requestMetadata.trafficSource.trafficSubId", value);
}
if let Some(value) = self
._request_metadata_traffic_source_traffic_source_id
.as_ref()
{
params.push("requestMetadata.trafficSource.trafficSourceId", value);
}
if let Some(value) = self._request_metadata_partners_session_id.as_ref() {
params.push("requestMetadata.partnersSessionId", value);
}
if let Some(value) = self._request_metadata_locale.as_ref() {
params.push("requestMetadata.locale", value);
}
if !self._request_metadata_experiment_ids.is_empty() {
for f in self._request_metadata_experiment_ids.iter() {
params.push("requestMetadata.experimentIds", f);
}
}
params.extend(self._additional_params.iter());
params.push("alt", "json");
let mut url = self.hub._base_url.clone() + "v2/companies";
match dlg.api_key() {
Some(value) => params.push("key", value),
None => {
dlg.finished(false);
return Err(common::Error::MissingAPIKey);
}
}
let url = params.parse_with_url(&url);
let mut json_mime_type = mime::APPLICATION_JSON;
let mut request_value_reader = {
let mut value = serde_json::value::to_value(&self._request).expect("serde to work");
common::remove_json_null_values(&mut value);
let mut dst = std::io::Cursor::new(Vec::with_capacity(128));
serde_json::to_writer(&mut dst, &value).unwrap();
dst
};
let request_size = request_value_reader
.seek(std::io::SeekFrom::End(0))
.unwrap();
request_value_reader
.seek(std::io::SeekFrom::Start(0))
.unwrap();
loop {
request_value_reader
.seek(std::io::SeekFrom::Start(0))
.unwrap();
let mut req_result = {
let client = &self.hub.client;
dlg.pre_request();
let mut req_builder = hyper::Request::builder()
.method(hyper::Method::PATCH)
.uri(url.as_str())
.header(USER_AGENT, self.hub._user_agent.clone());
let request = req_builder
.header(CONTENT_TYPE, json_mime_type.to_string())
.header(CONTENT_LENGTH, request_size as u64)
.body(common::to_body(
request_value_reader.get_ref().clone().into(),
));
client.request(request.unwrap()).await
};
match req_result {
Err(err) => {
if let common::Retry::After(d) = dlg.http_error(&err) {
sleep(d).await;
continue;
}
dlg.finished(false);
return Err(common::Error::HttpError(err));
}
Ok(res) => {
let (mut parts, body) = res.into_parts();
let mut body = common::Body::new(body);
if !parts.status.is_success() {
let bytes = common::to_bytes(body).await.unwrap_or_default();
let error = serde_json::from_str(&common::to_string(&bytes));
let response = common::to_response(parts, bytes.into());
if let common::Retry::After(d) =
dlg.http_failure(&response, error.as_ref().ok())
{
sleep(d).await;
continue;
}
dlg.finished(false);
return Err(match error {
Ok(value) => common::Error::BadRequest(value),
_ => common::Error::Failure(response),
});
}
let response = {
let bytes = common::to_bytes(body).await.unwrap_or_default();
let encoded = common::to_string(&bytes);
match serde_json::from_str(&encoded) {
Ok(decoded) => (common::to_response(parts, bytes.into()), decoded),
Err(error) => {
dlg.response_json_decode_error(&encoded, &error);
return Err(common::Error::JsonDecodeError(
encoded.to_string(),
error,
));
}
}
};
dlg.finished(true);
return Ok(response);
}
}
}
}
pub fn request(mut self, new_value: Company) -> MethodUpdateCompanyCall<'a, C> {
self._request = new_value;
self
}
pub fn update_mask(mut self, new_value: common::FieldMask) -> MethodUpdateCompanyCall<'a, C> {
self._update_mask = Some(new_value);
self
}
pub fn request_metadata_user_overrides_user_id(
mut self,
new_value: &str,
) -> MethodUpdateCompanyCall<'a, C> {
self._request_metadata_user_overrides_user_id = Some(new_value.to_string());
self
}
pub fn request_metadata_user_overrides_ip_address(
mut self,
new_value: &str,
) -> MethodUpdateCompanyCall<'a, C> {
self._request_metadata_user_overrides_ip_address = Some(new_value.to_string());
self
}
pub fn request_metadata_traffic_source_traffic_sub_id(
mut self,
new_value: &str,
) -> MethodUpdateCompanyCall<'a, C> {
self._request_metadata_traffic_source_traffic_sub_id = Some(new_value.to_string());
self
}
pub fn request_metadata_traffic_source_traffic_source_id(
mut self,
new_value: &str,
) -> MethodUpdateCompanyCall<'a, C> {
self._request_metadata_traffic_source_traffic_source_id = Some(new_value.to_string());
self
}
pub fn request_metadata_partners_session_id(
mut self,
new_value: &str,
) -> MethodUpdateCompanyCall<'a, C> {
self._request_metadata_partners_session_id = Some(new_value.to_string());
self
}
pub fn request_metadata_locale(mut self, new_value: &str) -> MethodUpdateCompanyCall<'a, C> {
self._request_metadata_locale = Some(new_value.to_string());
self
}
pub fn add_request_metadata_experiment_ids(
mut self,
new_value: &str,
) -> MethodUpdateCompanyCall<'a, C> {
self._request_metadata_experiment_ids
.push(new_value.to_string());
self
}
pub fn delegate(
mut self,
new_value: &'a mut dyn common::Delegate,
) -> MethodUpdateCompanyCall<'a, C> {
self._delegate = Some(new_value);
self
}
pub fn param<T>(mut self, name: T, value: T) -> MethodUpdateCompanyCall<'a, C>
where
T: AsRef<str>,
{
self._additional_params
.insert(name.as_ref().to_string(), value.as_ref().to_string());
self
}
}
pub struct MethodGetPartnersstatuCall<'a, C>
where
C: 'a,
{
hub: &'a Partners<C>,
_request_metadata_user_overrides_user_id: Option<String>,
_request_metadata_user_overrides_ip_address: Option<String>,
_request_metadata_traffic_source_traffic_sub_id: Option<String>,
_request_metadata_traffic_source_traffic_source_id: Option<String>,
_request_metadata_partners_session_id: Option<String>,
_request_metadata_locale: Option<String>,
_request_metadata_experiment_ids: Vec<String>,
_delegate: Option<&'a mut dyn common::Delegate>,
_additional_params: HashMap<String, String>,
}
impl<'a, C> common::CallBuilder for MethodGetPartnersstatuCall<'a, C> {}
impl<'a, C> MethodGetPartnersstatuCall<'a, C>
where
C: common::Connector,
{
pub async fn doit(mut self) -> common::Result<(common::Response, GetPartnersStatusResponse)> {
use std::borrow::Cow;
use std::io::{Read, Seek};
use common::{url::Params, ToParts};
use hyper::header::{AUTHORIZATION, CONTENT_LENGTH, CONTENT_TYPE, LOCATION, USER_AGENT};
let mut dd = common::DefaultDelegate;
let mut dlg: &mut dyn common::Delegate = self._delegate.unwrap_or(&mut dd);
dlg.begin(common::MethodInfo {
id: "partners.getPartnersstatus",
http_method: hyper::Method::GET,
});
for &field in [
"alt",
"requestMetadata.userOverrides.userId",
"requestMetadata.userOverrides.ipAddress",
"requestMetadata.trafficSource.trafficSubId",
"requestMetadata.trafficSource.trafficSourceId",
"requestMetadata.partnersSessionId",
"requestMetadata.locale",
"requestMetadata.experimentIds",
]
.iter()
{
if self._additional_params.contains_key(field) {
dlg.finished(false);
return Err(common::Error::FieldClash(field));
}
}
let mut params = Params::with_capacity(9 + self._additional_params.len());
if let Some(value) = self._request_metadata_user_overrides_user_id.as_ref() {
params.push("requestMetadata.userOverrides.userId", value);
}
if let Some(value) = self._request_metadata_user_overrides_ip_address.as_ref() {
params.push("requestMetadata.userOverrides.ipAddress", value);
}
if let Some(value) = self
._request_metadata_traffic_source_traffic_sub_id
.as_ref()
{
params.push("requestMetadata.trafficSource.trafficSubId", value);
}
if let Some(value) = self
._request_metadata_traffic_source_traffic_source_id
.as_ref()
{
params.push("requestMetadata.trafficSource.trafficSourceId", value);
}
if let Some(value) = self._request_metadata_partners_session_id.as_ref() {
params.push("requestMetadata.partnersSessionId", value);
}
if let Some(value) = self._request_metadata_locale.as_ref() {
params.push("requestMetadata.locale", value);
}
if !self._request_metadata_experiment_ids.is_empty() {
for f in self._request_metadata_experiment_ids.iter() {
params.push("requestMetadata.experimentIds", f);
}
}
params.extend(self._additional_params.iter());
params.push("alt", "json");
let mut url = self.hub._base_url.clone() + "v2/partnersstatus";
match dlg.api_key() {
Some(value) => params.push("key", value),
None => {
dlg.finished(false);
return Err(common::Error::MissingAPIKey);
}
}
let url = params.parse_with_url(&url);
loop {
let mut req_result = {
let client = &self.hub.client;
dlg.pre_request();
let mut req_builder = hyper::Request::builder()
.method(hyper::Method::GET)
.uri(url.as_str())
.header(USER_AGENT, self.hub._user_agent.clone());
let request = req_builder
.header(CONTENT_LENGTH, 0_u64)
.body(common::to_body::<String>(None));
client.request(request.unwrap()).await
};
match req_result {
Err(err) => {
if let common::Retry::After(d) = dlg.http_error(&err) {
sleep(d).await;
continue;
}
dlg.finished(false);
return Err(common::Error::HttpError(err));
}
Ok(res) => {
let (mut parts, body) = res.into_parts();
let mut body = common::Body::new(body);
if !parts.status.is_success() {
let bytes = common::to_bytes(body).await.unwrap_or_default();
let error = serde_json::from_str(&common::to_string(&bytes));
let response = common::to_response(parts, bytes.into());
if let common::Retry::After(d) =
dlg.http_failure(&response, error.as_ref().ok())
{
sleep(d).await;
continue;
}
dlg.finished(false);
return Err(match error {
Ok(value) => common::Error::BadRequest(value),
_ => common::Error::Failure(response),
});
}
let response = {
let bytes = common::to_bytes(body).await.unwrap_or_default();
let encoded = common::to_string(&bytes);
match serde_json::from_str(&encoded) {
Ok(decoded) => (common::to_response(parts, bytes.into()), decoded),
Err(error) => {
dlg.response_json_decode_error(&encoded, &error);
return Err(common::Error::JsonDecodeError(
encoded.to_string(),
error,
));
}
}
};
dlg.finished(true);
return Ok(response);
}
}
}
}
pub fn request_metadata_user_overrides_user_id(
mut self,
new_value: &str,
) -> MethodGetPartnersstatuCall<'a, C> {
self._request_metadata_user_overrides_user_id = Some(new_value.to_string());
self
}
pub fn request_metadata_user_overrides_ip_address(
mut self,
new_value: &str,
) -> MethodGetPartnersstatuCall<'a, C> {
self._request_metadata_user_overrides_ip_address = Some(new_value.to_string());
self
}
pub fn request_metadata_traffic_source_traffic_sub_id(
mut self,
new_value: &str,
) -> MethodGetPartnersstatuCall<'a, C> {
self._request_metadata_traffic_source_traffic_sub_id = Some(new_value.to_string());
self
}
pub fn request_metadata_traffic_source_traffic_source_id(
mut self,
new_value: &str,
) -> MethodGetPartnersstatuCall<'a, C> {
self._request_metadata_traffic_source_traffic_source_id = Some(new_value.to_string());
self
}
pub fn request_metadata_partners_session_id(
mut self,
new_value: &str,
) -> MethodGetPartnersstatuCall<'a, C> {
self._request_metadata_partners_session_id = Some(new_value.to_string());
self
}
pub fn request_metadata_locale(mut self, new_value: &str) -> MethodGetPartnersstatuCall<'a, C> {
self._request_metadata_locale = Some(new_value.to_string());
self
}
pub fn add_request_metadata_experiment_ids(
mut self,
new_value: &str,
) -> MethodGetPartnersstatuCall<'a, C> {
self._request_metadata_experiment_ids
.push(new_value.to_string());
self
}
pub fn delegate(
mut self,
new_value: &'a mut dyn common::Delegate,
) -> MethodGetPartnersstatuCall<'a, C> {
self._delegate = Some(new_value);
self
}
pub fn param<T>(mut self, name: T, value: T) -> MethodGetPartnersstatuCall<'a, C>
where
T: AsRef<str>,
{
self._additional_params
.insert(name.as_ref().to_string(), value.as_ref().to_string());
self
}
}
pub struct CompanyLeadCreateCall<'a, C>
where
C: 'a,
{
hub: &'a Partners<C>,
_request: CreateLeadRequest,
_company_id: String,
_delegate: Option<&'a mut dyn common::Delegate>,
_additional_params: HashMap<String, String>,
}
impl<'a, C> common::CallBuilder for CompanyLeadCreateCall<'a, C> {}
impl<'a, C> CompanyLeadCreateCall<'a, C>
where
C: common::Connector,
{
pub async fn doit(mut self) -> common::Result<(common::Response, CreateLeadResponse)> {
use std::borrow::Cow;
use std::io::{Read, Seek};
use common::{url::Params, ToParts};
use hyper::header::{AUTHORIZATION, CONTENT_LENGTH, CONTENT_TYPE, LOCATION, USER_AGENT};
let mut dd = common::DefaultDelegate;
let mut dlg: &mut dyn common::Delegate = self._delegate.unwrap_or(&mut dd);
dlg.begin(common::MethodInfo {
id: "partners.companies.leads.create",
http_method: hyper::Method::POST,
});
for &field in ["alt", "companyId"].iter() {
if self._additional_params.contains_key(field) {
dlg.finished(false);
return Err(common::Error::FieldClash(field));
}
}
let mut params = Params::with_capacity(4 + self._additional_params.len());
params.push("companyId", self._company_id);
params.extend(self._additional_params.iter());
params.push("alt", "json");
let mut url = self.hub._base_url.clone() + "v2/companies/{companyId}/leads";
match dlg.api_key() {
Some(value) => params.push("key", value),
None => {
dlg.finished(false);
return Err(common::Error::MissingAPIKey);
}
}
#[allow(clippy::single_element_loop)]
for &(find_this, param_name) in [("{companyId}", "companyId")].iter() {
url = params.uri_replacement(url, param_name, find_this, false);
}
{
let to_remove = ["companyId"];
params.remove_params(&to_remove);
}
let url = params.parse_with_url(&url);
let mut json_mime_type = mime::APPLICATION_JSON;
let mut request_value_reader = {
let mut value = serde_json::value::to_value(&self._request).expect("serde to work");
common::remove_json_null_values(&mut value);
let mut dst = std::io::Cursor::new(Vec::with_capacity(128));
serde_json::to_writer(&mut dst, &value).unwrap();
dst
};
let request_size = request_value_reader
.seek(std::io::SeekFrom::End(0))
.unwrap();
request_value_reader
.seek(std::io::SeekFrom::Start(0))
.unwrap();
loop {
request_value_reader
.seek(std::io::SeekFrom::Start(0))
.unwrap();
let mut req_result = {
let client = &self.hub.client;
dlg.pre_request();
let mut req_builder = hyper::Request::builder()
.method(hyper::Method::POST)
.uri(url.as_str())
.header(USER_AGENT, self.hub._user_agent.clone());
let request = req_builder
.header(CONTENT_TYPE, json_mime_type.to_string())
.header(CONTENT_LENGTH, request_size as u64)
.body(common::to_body(
request_value_reader.get_ref().clone().into(),
));
client.request(request.unwrap()).await
};
match req_result {
Err(err) => {
if let common::Retry::After(d) = dlg.http_error(&err) {
sleep(d).await;
continue;
}
dlg.finished(false);
return Err(common::Error::HttpError(err));
}
Ok(res) => {
let (mut parts, body) = res.into_parts();
let mut body = common::Body::new(body);
if !parts.status.is_success() {
let bytes = common::to_bytes(body).await.unwrap_or_default();
let error = serde_json::from_str(&common::to_string(&bytes));
let response = common::to_response(parts, bytes.into());
if let common::Retry::After(d) =
dlg.http_failure(&response, error.as_ref().ok())
{
sleep(d).await;
continue;
}
dlg.finished(false);
return Err(match error {
Ok(value) => common::Error::BadRequest(value),
_ => common::Error::Failure(response),
});
}
let response = {
let bytes = common::to_bytes(body).await.unwrap_or_default();
let encoded = common::to_string(&bytes);
match serde_json::from_str(&encoded) {
Ok(decoded) => (common::to_response(parts, bytes.into()), decoded),
Err(error) => {
dlg.response_json_decode_error(&encoded, &error);
return Err(common::Error::JsonDecodeError(
encoded.to_string(),
error,
));
}
}
};
dlg.finished(true);
return Ok(response);
}
}
}
}
pub fn request(mut self, new_value: CreateLeadRequest) -> CompanyLeadCreateCall<'a, C> {
self._request = new_value;
self
}
pub fn company_id(mut self, new_value: &str) -> CompanyLeadCreateCall<'a, C> {
self._company_id = new_value.to_string();
self
}
pub fn delegate(
mut self,
new_value: &'a mut dyn common::Delegate,
) -> CompanyLeadCreateCall<'a, C> {
self._delegate = Some(new_value);
self
}
pub fn param<T>(mut self, name: T, value: T) -> CompanyLeadCreateCall<'a, C>
where
T: AsRef<str>,
{
self._additional_params
.insert(name.as_ref().to_string(), value.as_ref().to_string());
self
}
}
pub struct CompanyGetCall<'a, C>
where
C: 'a,
{
hub: &'a Partners<C>,
_company_id: String,
_view: Option<String>,
_request_metadata_user_overrides_user_id: Option<String>,
_request_metadata_user_overrides_ip_address: Option<String>,
_request_metadata_traffic_source_traffic_sub_id: Option<String>,
_request_metadata_traffic_source_traffic_source_id: Option<String>,
_request_metadata_partners_session_id: Option<String>,
_request_metadata_locale: Option<String>,
_request_metadata_experiment_ids: Vec<String>,
_order_by: Option<String>,
_currency_code: Option<String>,
_address: Option<String>,
_delegate: Option<&'a mut dyn common::Delegate>,
_additional_params: HashMap<String, String>,
}
impl<'a, C> common::CallBuilder for CompanyGetCall<'a, C> {}
impl<'a, C> CompanyGetCall<'a, C>
where
C: common::Connector,
{
pub async fn doit(mut self) -> common::Result<(common::Response, GetCompanyResponse)> {
use std::borrow::Cow;
use std::io::{Read, Seek};
use common::{url::Params, ToParts};
use hyper::header::{AUTHORIZATION, CONTENT_LENGTH, CONTENT_TYPE, LOCATION, USER_AGENT};
let mut dd = common::DefaultDelegate;
let mut dlg: &mut dyn common::Delegate = self._delegate.unwrap_or(&mut dd);
dlg.begin(common::MethodInfo {
id: "partners.companies.get",
http_method: hyper::Method::GET,
});
for &field in [
"alt",
"companyId",
"view",
"requestMetadata.userOverrides.userId",
"requestMetadata.userOverrides.ipAddress",
"requestMetadata.trafficSource.trafficSubId",
"requestMetadata.trafficSource.trafficSourceId",
"requestMetadata.partnersSessionId",
"requestMetadata.locale",
"requestMetadata.experimentIds",
"orderBy",
"currencyCode",
"address",
]
.iter()
{
if self._additional_params.contains_key(field) {
dlg.finished(false);
return Err(common::Error::FieldClash(field));
}
}
let mut params = Params::with_capacity(14 + self._additional_params.len());
params.push("companyId", self._company_id);
if let Some(value) = self._view.as_ref() {
params.push("view", value);
}
if let Some(value) = self._request_metadata_user_overrides_user_id.as_ref() {
params.push("requestMetadata.userOverrides.userId", value);
}
if let Some(value) = self._request_metadata_user_overrides_ip_address.as_ref() {
params.push("requestMetadata.userOverrides.ipAddress", value);
}
if let Some(value) = self
._request_metadata_traffic_source_traffic_sub_id
.as_ref()
{
params.push("requestMetadata.trafficSource.trafficSubId", value);
}
if let Some(value) = self
._request_metadata_traffic_source_traffic_source_id
.as_ref()
{
params.push("requestMetadata.trafficSource.trafficSourceId", value);
}
if let Some(value) = self._request_metadata_partners_session_id.as_ref() {
params.push("requestMetadata.partnersSessionId", value);
}
if let Some(value) = self._request_metadata_locale.as_ref() {
params.push("requestMetadata.locale", value);
}
if !self._request_metadata_experiment_ids.is_empty() {
for f in self._request_metadata_experiment_ids.iter() {
params.push("requestMetadata.experimentIds", f);
}
}
if let Some(value) = self._order_by.as_ref() {
params.push("orderBy", value);
}
if let Some(value) = self._currency_code.as_ref() {
params.push("currencyCode", value);
}
if let Some(value) = self._address.as_ref() {
params.push("address", value);
}
params.extend(self._additional_params.iter());
params.push("alt", "json");
let mut url = self.hub._base_url.clone() + "v2/companies/{companyId}";
match dlg.api_key() {
Some(value) => params.push("key", value),
None => {
dlg.finished(false);
return Err(common::Error::MissingAPIKey);
}
}
#[allow(clippy::single_element_loop)]
for &(find_this, param_name) in [("{companyId}", "companyId")].iter() {
url = params.uri_replacement(url, param_name, find_this, false);
}
{
let to_remove = ["companyId"];
params.remove_params(&to_remove);
}
let url = params.parse_with_url(&url);
loop {
let mut req_result = {
let client = &self.hub.client;
dlg.pre_request();
let mut req_builder = hyper::Request::builder()
.method(hyper::Method::GET)
.uri(url.as_str())
.header(USER_AGENT, self.hub._user_agent.clone());
let request = req_builder
.header(CONTENT_LENGTH, 0_u64)
.body(common::to_body::<String>(None));
client.request(request.unwrap()).await
};
match req_result {
Err(err) => {
if let common::Retry::After(d) = dlg.http_error(&err) {
sleep(d).await;
continue;
}
dlg.finished(false);
return Err(common::Error::HttpError(err));
}
Ok(res) => {
let (mut parts, body) = res.into_parts();
let mut body = common::Body::new(body);
if !parts.status.is_success() {
let bytes = common::to_bytes(body).await.unwrap_or_default();
let error = serde_json::from_str(&common::to_string(&bytes));
let response = common::to_response(parts, bytes.into());
if let common::Retry::After(d) =
dlg.http_failure(&response, error.as_ref().ok())
{
sleep(d).await;
continue;
}
dlg.finished(false);
return Err(match error {
Ok(value) => common::Error::BadRequest(value),
_ => common::Error::Failure(response),
});
}
let response = {
let bytes = common::to_bytes(body).await.unwrap_or_default();
let encoded = common::to_string(&bytes);
match serde_json::from_str(&encoded) {
Ok(decoded) => (common::to_response(parts, bytes.into()), decoded),
Err(error) => {
dlg.response_json_decode_error(&encoded, &error);
return Err(common::Error::JsonDecodeError(
encoded.to_string(),
error,
));
}
}
};
dlg.finished(true);
return Ok(response);
}
}
}
}
pub fn company_id(mut self, new_value: &str) -> CompanyGetCall<'a, C> {
self._company_id = new_value.to_string();
self
}
pub fn view(mut self, new_value: &str) -> CompanyGetCall<'a, C> {
self._view = Some(new_value.to_string());
self
}
pub fn request_metadata_user_overrides_user_id(
mut self,
new_value: &str,
) -> CompanyGetCall<'a, C> {
self._request_metadata_user_overrides_user_id = Some(new_value.to_string());
self
}
pub fn request_metadata_user_overrides_ip_address(
mut self,
new_value: &str,
) -> CompanyGetCall<'a, C> {
self._request_metadata_user_overrides_ip_address = Some(new_value.to_string());
self
}
pub fn request_metadata_traffic_source_traffic_sub_id(
mut self,
new_value: &str,
) -> CompanyGetCall<'a, C> {
self._request_metadata_traffic_source_traffic_sub_id = Some(new_value.to_string());
self
}
pub fn request_metadata_traffic_source_traffic_source_id(
mut self,
new_value: &str,
) -> CompanyGetCall<'a, C> {
self._request_metadata_traffic_source_traffic_source_id = Some(new_value.to_string());
self
}
pub fn request_metadata_partners_session_id(
mut self,
new_value: &str,
) -> CompanyGetCall<'a, C> {
self._request_metadata_partners_session_id = Some(new_value.to_string());
self
}
pub fn request_metadata_locale(mut self, new_value: &str) -> CompanyGetCall<'a, C> {
self._request_metadata_locale = Some(new_value.to_string());
self
}
pub fn add_request_metadata_experiment_ids(mut self, new_value: &str) -> CompanyGetCall<'a, C> {
self._request_metadata_experiment_ids
.push(new_value.to_string());
self
}
pub fn order_by(mut self, new_value: &str) -> CompanyGetCall<'a, C> {
self._order_by = Some(new_value.to_string());
self
}
pub fn currency_code(mut self, new_value: &str) -> CompanyGetCall<'a, C> {
self._currency_code = Some(new_value.to_string());
self
}
pub fn address(mut self, new_value: &str) -> CompanyGetCall<'a, C> {
self._address = Some(new_value.to_string());
self
}
pub fn delegate(mut self, new_value: &'a mut dyn common::Delegate) -> CompanyGetCall<'a, C> {
self._delegate = Some(new_value);
self
}
pub fn param<T>(mut self, name: T, value: T) -> CompanyGetCall<'a, C>
where
T: AsRef<str>,
{
self._additional_params
.insert(name.as_ref().to_string(), value.as_ref().to_string());
self
}
}
pub struct CompanyListCall<'a, C>
where
C: 'a,
{
hub: &'a Partners<C>,
_website_url: Option<String>,
_view: Option<String>,
_specializations: Vec<String>,
_services: Vec<String>,
_request_metadata_user_overrides_user_id: Option<String>,
_request_metadata_user_overrides_ip_address: Option<String>,
_request_metadata_traffic_source_traffic_sub_id: Option<String>,
_request_metadata_traffic_source_traffic_source_id: Option<String>,
_request_metadata_partners_session_id: Option<String>,
_request_metadata_locale: Option<String>,
_request_metadata_experiment_ids: Vec<String>,
_page_token: Option<String>,
_page_size: Option<i32>,
_order_by: Option<String>,
_min_monthly_budget_units: Option<i64>,
_min_monthly_budget_nanos: Option<i32>,
_min_monthly_budget_currency_code: Option<String>,
_max_monthly_budget_units: Option<i64>,
_max_monthly_budget_nanos: Option<i32>,
_max_monthly_budget_currency_code: Option<String>,
_language_codes: Vec<String>,
_industries: Vec<String>,
_gps_motivations: Vec<String>,
_company_name: Option<String>,
_address: Option<String>,
_delegate: Option<&'a mut dyn common::Delegate>,
_additional_params: HashMap<String, String>,
}
impl<'a, C> common::CallBuilder for CompanyListCall<'a, C> {}
impl<'a, C> CompanyListCall<'a, C>
where
C: common::Connector,
{
pub async fn doit(mut self) -> common::Result<(common::Response, ListCompaniesResponse)> {
use std::borrow::Cow;
use std::io::{Read, Seek};
use common::{url::Params, ToParts};
use hyper::header::{AUTHORIZATION, CONTENT_LENGTH, CONTENT_TYPE, LOCATION, USER_AGENT};
let mut dd = common::DefaultDelegate;
let mut dlg: &mut dyn common::Delegate = self._delegate.unwrap_or(&mut dd);
dlg.begin(common::MethodInfo {
id: "partners.companies.list",
http_method: hyper::Method::GET,
});
for &field in [
"alt",
"websiteUrl",
"view",
"specializations",
"services",
"requestMetadata.userOverrides.userId",
"requestMetadata.userOverrides.ipAddress",
"requestMetadata.trafficSource.trafficSubId",
"requestMetadata.trafficSource.trafficSourceId",
"requestMetadata.partnersSessionId",
"requestMetadata.locale",
"requestMetadata.experimentIds",
"pageToken",
"pageSize",
"orderBy",
"minMonthlyBudget.units",
"minMonthlyBudget.nanos",
"minMonthlyBudget.currencyCode",
"maxMonthlyBudget.units",
"maxMonthlyBudget.nanos",
"maxMonthlyBudget.currencyCode",
"languageCodes",
"industries",
"gpsMotivations",
"companyName",
"address",
]
.iter()
{
if self._additional_params.contains_key(field) {
dlg.finished(false);
return Err(common::Error::FieldClash(field));
}
}
let mut params = Params::with_capacity(27 + self._additional_params.len());
if let Some(value) = self._website_url.as_ref() {
params.push("websiteUrl", value);
}
if let Some(value) = self._view.as_ref() {
params.push("view", value);
}
if !self._specializations.is_empty() {
for f in self._specializations.iter() {
params.push("specializations", f);
}
}
if !self._services.is_empty() {
for f in self._services.iter() {
params.push("services", f);
}
}
if let Some(value) = self._request_metadata_user_overrides_user_id.as_ref() {
params.push("requestMetadata.userOverrides.userId", value);
}
if let Some(value) = self._request_metadata_user_overrides_ip_address.as_ref() {
params.push("requestMetadata.userOverrides.ipAddress", value);
}
if let Some(value) = self
._request_metadata_traffic_source_traffic_sub_id
.as_ref()
{
params.push("requestMetadata.trafficSource.trafficSubId", value);
}
if let Some(value) = self
._request_metadata_traffic_source_traffic_source_id
.as_ref()
{
params.push("requestMetadata.trafficSource.trafficSourceId", value);
}
if let Some(value) = self._request_metadata_partners_session_id.as_ref() {
params.push("requestMetadata.partnersSessionId", value);
}
if let Some(value) = self._request_metadata_locale.as_ref() {
params.push("requestMetadata.locale", value);
}
if !self._request_metadata_experiment_ids.is_empty() {
for f in self._request_metadata_experiment_ids.iter() {
params.push("requestMetadata.experimentIds", f);
}
}
if let Some(value) = self._page_token.as_ref() {
params.push("pageToken", value);
}
if let Some(value) = self._page_size.as_ref() {
params.push("pageSize", value.to_string());
}
if let Some(value) = self._order_by.as_ref() {
params.push("orderBy", value);
}
if let Some(value) = self._min_monthly_budget_units.as_ref() {
params.push("minMonthlyBudget.units", value.to_string());
}
if let Some(value) = self._min_monthly_budget_nanos.as_ref() {
params.push("minMonthlyBudget.nanos", value.to_string());
}
if let Some(value) = self._min_monthly_budget_currency_code.as_ref() {
params.push("minMonthlyBudget.currencyCode", value);
}
if let Some(value) = self._max_monthly_budget_units.as_ref() {
params.push("maxMonthlyBudget.units", value.to_string());
}
if let Some(value) = self._max_monthly_budget_nanos.as_ref() {
params.push("maxMonthlyBudget.nanos", value.to_string());
}
if let Some(value) = self._max_monthly_budget_currency_code.as_ref() {
params.push("maxMonthlyBudget.currencyCode", value);
}
if !self._language_codes.is_empty() {
for f in self._language_codes.iter() {
params.push("languageCodes", f);
}
}
if !self._industries.is_empty() {
for f in self._industries.iter() {
params.push("industries", f);
}
}
if !self._gps_motivations.is_empty() {
for f in self._gps_motivations.iter() {
params.push("gpsMotivations", f);
}
}
if let Some(value) = self._company_name.as_ref() {
params.push("companyName", value);
}
if let Some(value) = self._address.as_ref() {
params.push("address", value);
}
params.extend(self._additional_params.iter());
params.push("alt", "json");
let mut url = self.hub._base_url.clone() + "v2/companies";
match dlg.api_key() {
Some(value) => params.push("key", value),
None => {
dlg.finished(false);
return Err(common::Error::MissingAPIKey);
}
}
let url = params.parse_with_url(&url);
loop {
let mut req_result = {
let client = &self.hub.client;
dlg.pre_request();
let mut req_builder = hyper::Request::builder()
.method(hyper::Method::GET)
.uri(url.as_str())
.header(USER_AGENT, self.hub._user_agent.clone());
let request = req_builder
.header(CONTENT_LENGTH, 0_u64)
.body(common::to_body::<String>(None));
client.request(request.unwrap()).await
};
match req_result {
Err(err) => {
if let common::Retry::After(d) = dlg.http_error(&err) {
sleep(d).await;
continue;
}
dlg.finished(false);
return Err(common::Error::HttpError(err));
}
Ok(res) => {
let (mut parts, body) = res.into_parts();
let mut body = common::Body::new(body);
if !parts.status.is_success() {
let bytes = common::to_bytes(body).await.unwrap_or_default();
let error = serde_json::from_str(&common::to_string(&bytes));
let response = common::to_response(parts, bytes.into());
if let common::Retry::After(d) =
dlg.http_failure(&response, error.as_ref().ok())
{
sleep(d).await;
continue;
}
dlg.finished(false);
return Err(match error {
Ok(value) => common::Error::BadRequest(value),
_ => common::Error::Failure(response),
});
}
let response = {
let bytes = common::to_bytes(body).await.unwrap_or_default();
let encoded = common::to_string(&bytes);
match serde_json::from_str(&encoded) {
Ok(decoded) => (common::to_response(parts, bytes.into()), decoded),
Err(error) => {
dlg.response_json_decode_error(&encoded, &error);
return Err(common::Error::JsonDecodeError(
encoded.to_string(),
error,
));
}
}
};
dlg.finished(true);
return Ok(response);
}
}
}
}
pub fn website_url(mut self, new_value: &str) -> CompanyListCall<'a, C> {
self._website_url = Some(new_value.to_string());
self
}
pub fn view(mut self, new_value: &str) -> CompanyListCall<'a, C> {
self._view = Some(new_value.to_string());
self
}
pub fn add_specializations(mut self, new_value: &str) -> CompanyListCall<'a, C> {
self._specializations.push(new_value.to_string());
self
}
pub fn add_services(mut self, new_value: &str) -> CompanyListCall<'a, C> {
self._services.push(new_value.to_string());
self
}
pub fn request_metadata_user_overrides_user_id(
mut self,
new_value: &str,
) -> CompanyListCall<'a, C> {
self._request_metadata_user_overrides_user_id = Some(new_value.to_string());
self
}
pub fn request_metadata_user_overrides_ip_address(
mut self,
new_value: &str,
) -> CompanyListCall<'a, C> {
self._request_metadata_user_overrides_ip_address = Some(new_value.to_string());
self
}
pub fn request_metadata_traffic_source_traffic_sub_id(
mut self,
new_value: &str,
) -> CompanyListCall<'a, C> {
self._request_metadata_traffic_source_traffic_sub_id = Some(new_value.to_string());
self
}
pub fn request_metadata_traffic_source_traffic_source_id(
mut self,
new_value: &str,
) -> CompanyListCall<'a, C> {
self._request_metadata_traffic_source_traffic_source_id = Some(new_value.to_string());
self
}
pub fn request_metadata_partners_session_id(
mut self,
new_value: &str,
) -> CompanyListCall<'a, C> {
self._request_metadata_partners_session_id = Some(new_value.to_string());
self
}
pub fn request_metadata_locale(mut self, new_value: &str) -> CompanyListCall<'a, C> {
self._request_metadata_locale = Some(new_value.to_string());
self
}
pub fn add_request_metadata_experiment_ids(
mut self,
new_value: &str,
) -> CompanyListCall<'a, C> {
self._request_metadata_experiment_ids
.push(new_value.to_string());
self
}
pub fn page_token(mut self, new_value: &str) -> CompanyListCall<'a, C> {
self._page_token = Some(new_value.to_string());
self
}
pub fn page_size(mut self, new_value: i32) -> CompanyListCall<'a, C> {
self._page_size = Some(new_value);
self
}
pub fn order_by(mut self, new_value: &str) -> CompanyListCall<'a, C> {
self._order_by = Some(new_value.to_string());
self
}
pub fn min_monthly_budget_units(mut self, new_value: i64) -> CompanyListCall<'a, C> {
self._min_monthly_budget_units = Some(new_value);
self
}
pub fn min_monthly_budget_nanos(mut self, new_value: i32) -> CompanyListCall<'a, C> {
self._min_monthly_budget_nanos = Some(new_value);
self
}
pub fn min_monthly_budget_currency_code(mut self, new_value: &str) -> CompanyListCall<'a, C> {
self._min_monthly_budget_currency_code = Some(new_value.to_string());
self
}
pub fn max_monthly_budget_units(mut self, new_value: i64) -> CompanyListCall<'a, C> {
self._max_monthly_budget_units = Some(new_value);
self
}
pub fn max_monthly_budget_nanos(mut self, new_value: i32) -> CompanyListCall<'a, C> {
self._max_monthly_budget_nanos = Some(new_value);
self
}
pub fn max_monthly_budget_currency_code(mut self, new_value: &str) -> CompanyListCall<'a, C> {
self._max_monthly_budget_currency_code = Some(new_value.to_string());
self
}
pub fn add_language_codes(mut self, new_value: &str) -> CompanyListCall<'a, C> {
self._language_codes.push(new_value.to_string());
self
}
pub fn add_industries(mut self, new_value: &str) -> CompanyListCall<'a, C> {
self._industries.push(new_value.to_string());
self
}
pub fn add_gps_motivations(mut self, new_value: &str) -> CompanyListCall<'a, C> {
self._gps_motivations.push(new_value.to_string());
self
}
pub fn company_name(mut self, new_value: &str) -> CompanyListCall<'a, C> {
self._company_name = Some(new_value.to_string());
self
}
pub fn address(mut self, new_value: &str) -> CompanyListCall<'a, C> {
self._address = Some(new_value.to_string());
self
}
pub fn delegate(mut self, new_value: &'a mut dyn common::Delegate) -> CompanyListCall<'a, C> {
self._delegate = Some(new_value);
self
}
pub fn param<T>(mut self, name: T, value: T) -> CompanyListCall<'a, C>
where
T: AsRef<str>,
{
self._additional_params
.insert(name.as_ref().to_string(), value.as_ref().to_string());
self
}
}
pub struct UserUpdateProfileCall<'a, C>
where
C: 'a,
{
hub: &'a Partners<C>,
_request: UserProfile,
_request_metadata_user_overrides_user_id: Option<String>,
_request_metadata_user_overrides_ip_address: Option<String>,
_request_metadata_traffic_source_traffic_sub_id: Option<String>,
_request_metadata_traffic_source_traffic_source_id: Option<String>,
_request_metadata_partners_session_id: Option<String>,
_request_metadata_locale: Option<String>,
_request_metadata_experiment_ids: Vec<String>,
_delegate: Option<&'a mut dyn common::Delegate>,
_additional_params: HashMap<String, String>,
}
impl<'a, C> common::CallBuilder for UserUpdateProfileCall<'a, C> {}
impl<'a, C> UserUpdateProfileCall<'a, C>
where
C: common::Connector,
{
pub async fn doit(mut self) -> common::Result<(common::Response, UserProfile)> {
use std::borrow::Cow;
use std::io::{Read, Seek};
use common::{url::Params, ToParts};
use hyper::header::{AUTHORIZATION, CONTENT_LENGTH, CONTENT_TYPE, LOCATION, USER_AGENT};
let mut dd = common::DefaultDelegate;
let mut dlg: &mut dyn common::Delegate = self._delegate.unwrap_or(&mut dd);
dlg.begin(common::MethodInfo {
id: "partners.users.updateProfile",
http_method: hyper::Method::PATCH,
});
for &field in [
"alt",
"requestMetadata.userOverrides.userId",
"requestMetadata.userOverrides.ipAddress",
"requestMetadata.trafficSource.trafficSubId",
"requestMetadata.trafficSource.trafficSourceId",
"requestMetadata.partnersSessionId",
"requestMetadata.locale",
"requestMetadata.experimentIds",
]
.iter()
{
if self._additional_params.contains_key(field) {
dlg.finished(false);
return Err(common::Error::FieldClash(field));
}
}
let mut params = Params::with_capacity(10 + self._additional_params.len());
if let Some(value) = self._request_metadata_user_overrides_user_id.as_ref() {
params.push("requestMetadata.userOverrides.userId", value);
}
if let Some(value) = self._request_metadata_user_overrides_ip_address.as_ref() {
params.push("requestMetadata.userOverrides.ipAddress", value);
}
if let Some(value) = self
._request_metadata_traffic_source_traffic_sub_id
.as_ref()
{
params.push("requestMetadata.trafficSource.trafficSubId", value);
}
if let Some(value) = self
._request_metadata_traffic_source_traffic_source_id
.as_ref()
{
params.push("requestMetadata.trafficSource.trafficSourceId", value);
}
if let Some(value) = self._request_metadata_partners_session_id.as_ref() {
params.push("requestMetadata.partnersSessionId", value);
}
if let Some(value) = self._request_metadata_locale.as_ref() {
params.push("requestMetadata.locale", value);
}
if !self._request_metadata_experiment_ids.is_empty() {
for f in self._request_metadata_experiment_ids.iter() {
params.push("requestMetadata.experimentIds", f);
}
}
params.extend(self._additional_params.iter());
params.push("alt", "json");
let mut url = self.hub._base_url.clone() + "v2/users/profile";
match dlg.api_key() {
Some(value) => params.push("key", value),
None => {
dlg.finished(false);
return Err(common::Error::MissingAPIKey);
}
}
let url = params.parse_with_url(&url);
let mut json_mime_type = mime::APPLICATION_JSON;
let mut request_value_reader = {
let mut value = serde_json::value::to_value(&self._request).expect("serde to work");
common::remove_json_null_values(&mut value);
let mut dst = std::io::Cursor::new(Vec::with_capacity(128));
serde_json::to_writer(&mut dst, &value).unwrap();
dst
};
let request_size = request_value_reader
.seek(std::io::SeekFrom::End(0))
.unwrap();
request_value_reader
.seek(std::io::SeekFrom::Start(0))
.unwrap();
loop {
request_value_reader
.seek(std::io::SeekFrom::Start(0))
.unwrap();
let mut req_result = {
let client = &self.hub.client;
dlg.pre_request();
let mut req_builder = hyper::Request::builder()
.method(hyper::Method::PATCH)
.uri(url.as_str())
.header(USER_AGENT, self.hub._user_agent.clone());
let request = req_builder
.header(CONTENT_TYPE, json_mime_type.to_string())
.header(CONTENT_LENGTH, request_size as u64)
.body(common::to_body(
request_value_reader.get_ref().clone().into(),
));
client.request(request.unwrap()).await
};
match req_result {
Err(err) => {
if let common::Retry::After(d) = dlg.http_error(&err) {
sleep(d).await;
continue;
}
dlg.finished(false);
return Err(common::Error::HttpError(err));
}
Ok(res) => {
let (mut parts, body) = res.into_parts();
let mut body = common::Body::new(body);
if !parts.status.is_success() {
let bytes = common::to_bytes(body).await.unwrap_or_default();
let error = serde_json::from_str(&common::to_string(&bytes));
let response = common::to_response(parts, bytes.into());
if let common::Retry::After(d) =
dlg.http_failure(&response, error.as_ref().ok())
{
sleep(d).await;
continue;
}
dlg.finished(false);
return Err(match error {
Ok(value) => common::Error::BadRequest(value),
_ => common::Error::Failure(response),
});
}
let response = {
let bytes = common::to_bytes(body).await.unwrap_or_default();
let encoded = common::to_string(&bytes);
match serde_json::from_str(&encoded) {
Ok(decoded) => (common::to_response(parts, bytes.into()), decoded),
Err(error) => {
dlg.response_json_decode_error(&encoded, &error);
return Err(common::Error::JsonDecodeError(
encoded.to_string(),
error,
));
}
}
};
dlg.finished(true);
return Ok(response);
}
}
}
}
pub fn request(mut self, new_value: UserProfile) -> UserUpdateProfileCall<'a, C> {
self._request = new_value;
self
}
pub fn request_metadata_user_overrides_user_id(
mut self,
new_value: &str,
) -> UserUpdateProfileCall<'a, C> {
self._request_metadata_user_overrides_user_id = Some(new_value.to_string());
self
}
pub fn request_metadata_user_overrides_ip_address(
mut self,
new_value: &str,
) -> UserUpdateProfileCall<'a, C> {
self._request_metadata_user_overrides_ip_address = Some(new_value.to_string());
self
}
pub fn request_metadata_traffic_source_traffic_sub_id(
mut self,
new_value: &str,
) -> UserUpdateProfileCall<'a, C> {
self._request_metadata_traffic_source_traffic_sub_id = Some(new_value.to_string());
self
}
pub fn request_metadata_traffic_source_traffic_source_id(
mut self,
new_value: &str,
) -> UserUpdateProfileCall<'a, C> {
self._request_metadata_traffic_source_traffic_source_id = Some(new_value.to_string());
self
}
pub fn request_metadata_partners_session_id(
mut self,
new_value: &str,
) -> UserUpdateProfileCall<'a, C> {
self._request_metadata_partners_session_id = Some(new_value.to_string());
self
}
pub fn request_metadata_locale(mut self, new_value: &str) -> UserUpdateProfileCall<'a, C> {
self._request_metadata_locale = Some(new_value.to_string());
self
}
pub fn add_request_metadata_experiment_ids(
mut self,
new_value: &str,
) -> UserUpdateProfileCall<'a, C> {
self._request_metadata_experiment_ids
.push(new_value.to_string());
self
}
pub fn delegate(
mut self,
new_value: &'a mut dyn common::Delegate,
) -> UserUpdateProfileCall<'a, C> {
self._delegate = Some(new_value);
self
}
pub fn param<T>(mut self, name: T, value: T) -> UserUpdateProfileCall<'a, C>
where
T: AsRef<str>,
{
self._additional_params
.insert(name.as_ref().to_string(), value.as_ref().to_string());
self
}
}
pub struct UserCreateCompanyRelationCall<'a, C>
where
C: 'a,
{
hub: &'a Partners<C>,
_request: CompanyRelation,
_user_id: String,
_request_metadata_user_overrides_user_id: Option<String>,
_request_metadata_user_overrides_ip_address: Option<String>,
_request_metadata_traffic_source_traffic_sub_id: Option<String>,
_request_metadata_traffic_source_traffic_source_id: Option<String>,
_request_metadata_partners_session_id: Option<String>,
_request_metadata_locale: Option<String>,
_request_metadata_experiment_ids: Vec<String>,
_delegate: Option<&'a mut dyn common::Delegate>,
_additional_params: HashMap<String, String>,
}
impl<'a, C> common::CallBuilder for UserCreateCompanyRelationCall<'a, C> {}
impl<'a, C> UserCreateCompanyRelationCall<'a, C>
where
C: common::Connector,
{
pub async fn doit(mut self) -> common::Result<(common::Response, CompanyRelation)> {
use std::borrow::Cow;
use std::io::{Read, Seek};
use common::{url::Params, ToParts};
use hyper::header::{AUTHORIZATION, CONTENT_LENGTH, CONTENT_TYPE, LOCATION, USER_AGENT};
let mut dd = common::DefaultDelegate;
let mut dlg: &mut dyn common::Delegate = self._delegate.unwrap_or(&mut dd);
dlg.begin(common::MethodInfo {
id: "partners.users.createCompanyRelation",
http_method: hyper::Method::PUT,
});
for &field in [
"alt",
"userId",
"requestMetadata.userOverrides.userId",
"requestMetadata.userOverrides.ipAddress",
"requestMetadata.trafficSource.trafficSubId",
"requestMetadata.trafficSource.trafficSourceId",
"requestMetadata.partnersSessionId",
"requestMetadata.locale",
"requestMetadata.experimentIds",
]
.iter()
{
if self._additional_params.contains_key(field) {
dlg.finished(false);
return Err(common::Error::FieldClash(field));
}
}
let mut params = Params::with_capacity(11 + self._additional_params.len());
params.push("userId", self._user_id);
if let Some(value) = self._request_metadata_user_overrides_user_id.as_ref() {
params.push("requestMetadata.userOverrides.userId", value);
}
if let Some(value) = self._request_metadata_user_overrides_ip_address.as_ref() {
params.push("requestMetadata.userOverrides.ipAddress", value);
}
if let Some(value) = self
._request_metadata_traffic_source_traffic_sub_id
.as_ref()
{
params.push("requestMetadata.trafficSource.trafficSubId", value);
}
if let Some(value) = self
._request_metadata_traffic_source_traffic_source_id
.as_ref()
{
params.push("requestMetadata.trafficSource.trafficSourceId", value);
}
if let Some(value) = self._request_metadata_partners_session_id.as_ref() {
params.push("requestMetadata.partnersSessionId", value);
}
if let Some(value) = self._request_metadata_locale.as_ref() {
params.push("requestMetadata.locale", value);
}
if !self._request_metadata_experiment_ids.is_empty() {
for f in self._request_metadata_experiment_ids.iter() {
params.push("requestMetadata.experimentIds", f);
}
}
params.extend(self._additional_params.iter());
params.push("alt", "json");
let mut url = self.hub._base_url.clone() + "v2/users/{userId}/companyRelation";
match dlg.api_key() {
Some(value) => params.push("key", value),
None => {
dlg.finished(false);
return Err(common::Error::MissingAPIKey);
}
}
#[allow(clippy::single_element_loop)]
for &(find_this, param_name) in [("{userId}", "userId")].iter() {
url = params.uri_replacement(url, param_name, find_this, false);
}
{
let to_remove = ["userId"];
params.remove_params(&to_remove);
}
let url = params.parse_with_url(&url);
let mut json_mime_type = mime::APPLICATION_JSON;
let mut request_value_reader = {
let mut value = serde_json::value::to_value(&self._request).expect("serde to work");
common::remove_json_null_values(&mut value);
let mut dst = std::io::Cursor::new(Vec::with_capacity(128));
serde_json::to_writer(&mut dst, &value).unwrap();
dst
};
let request_size = request_value_reader
.seek(std::io::SeekFrom::End(0))
.unwrap();
request_value_reader
.seek(std::io::SeekFrom::Start(0))
.unwrap();
loop {
request_value_reader
.seek(std::io::SeekFrom::Start(0))
.unwrap();
let mut req_result = {
let client = &self.hub.client;
dlg.pre_request();
let mut req_builder = hyper::Request::builder()
.method(hyper::Method::PUT)
.uri(url.as_str())
.header(USER_AGENT, self.hub._user_agent.clone());
let request = req_builder
.header(CONTENT_TYPE, json_mime_type.to_string())
.header(CONTENT_LENGTH, request_size as u64)
.body(common::to_body(
request_value_reader.get_ref().clone().into(),
));
client.request(request.unwrap()).await
};
match req_result {
Err(err) => {
if let common::Retry::After(d) = dlg.http_error(&err) {
sleep(d).await;
continue;
}
dlg.finished(false);
return Err(common::Error::HttpError(err));
}
Ok(res) => {
let (mut parts, body) = res.into_parts();
let mut body = common::Body::new(body);
if !parts.status.is_success() {
let bytes = common::to_bytes(body).await.unwrap_or_default();
let error = serde_json::from_str(&common::to_string(&bytes));
let response = common::to_response(parts, bytes.into());
if let common::Retry::After(d) =
dlg.http_failure(&response, error.as_ref().ok())
{
sleep(d).await;
continue;
}
dlg.finished(false);
return Err(match error {
Ok(value) => common::Error::BadRequest(value),
_ => common::Error::Failure(response),
});
}
let response = {
let bytes = common::to_bytes(body).await.unwrap_or_default();
let encoded = common::to_string(&bytes);
match serde_json::from_str(&encoded) {
Ok(decoded) => (common::to_response(parts, bytes.into()), decoded),
Err(error) => {
dlg.response_json_decode_error(&encoded, &error);
return Err(common::Error::JsonDecodeError(
encoded.to_string(),
error,
));
}
}
};
dlg.finished(true);
return Ok(response);
}
}
}
}
pub fn request(mut self, new_value: CompanyRelation) -> UserCreateCompanyRelationCall<'a, C> {
self._request = new_value;
self
}
pub fn user_id(mut self, new_value: &str) -> UserCreateCompanyRelationCall<'a, C> {
self._user_id = new_value.to_string();
self
}
pub fn request_metadata_user_overrides_user_id(
mut self,
new_value: &str,
) -> UserCreateCompanyRelationCall<'a, C> {
self._request_metadata_user_overrides_user_id = Some(new_value.to_string());
self
}
pub fn request_metadata_user_overrides_ip_address(
mut self,
new_value: &str,
) -> UserCreateCompanyRelationCall<'a, C> {
self._request_metadata_user_overrides_ip_address = Some(new_value.to_string());
self
}
pub fn request_metadata_traffic_source_traffic_sub_id(
mut self,
new_value: &str,
) -> UserCreateCompanyRelationCall<'a, C> {
self._request_metadata_traffic_source_traffic_sub_id = Some(new_value.to_string());
self
}
pub fn request_metadata_traffic_source_traffic_source_id(
mut self,
new_value: &str,
) -> UserCreateCompanyRelationCall<'a, C> {
self._request_metadata_traffic_source_traffic_source_id = Some(new_value.to_string());
self
}
pub fn request_metadata_partners_session_id(
mut self,
new_value: &str,
) -> UserCreateCompanyRelationCall<'a, C> {
self._request_metadata_partners_session_id = Some(new_value.to_string());
self
}
pub fn request_metadata_locale(
mut self,
new_value: &str,
) -> UserCreateCompanyRelationCall<'a, C> {
self._request_metadata_locale = Some(new_value.to_string());
self
}
pub fn add_request_metadata_experiment_ids(
mut self,
new_value: &str,
) -> UserCreateCompanyRelationCall<'a, C> {
self._request_metadata_experiment_ids
.push(new_value.to_string());
self
}
pub fn delegate(
mut self,
new_value: &'a mut dyn common::Delegate,
) -> UserCreateCompanyRelationCall<'a, C> {
self._delegate = Some(new_value);
self
}
pub fn param<T>(mut self, name: T, value: T) -> UserCreateCompanyRelationCall<'a, C>
where
T: AsRef<str>,
{
self._additional_params
.insert(name.as_ref().to_string(), value.as_ref().to_string());
self
}
}
pub struct UserDeleteCompanyRelationCall<'a, C>
where
C: 'a,
{
hub: &'a Partners<C>,
_user_id: String,
_request_metadata_user_overrides_user_id: Option<String>,
_request_metadata_user_overrides_ip_address: Option<String>,
_request_metadata_traffic_source_traffic_sub_id: Option<String>,
_request_metadata_traffic_source_traffic_source_id: Option<String>,
_request_metadata_partners_session_id: Option<String>,
_request_metadata_locale: Option<String>,
_request_metadata_experiment_ids: Vec<String>,
_delegate: Option<&'a mut dyn common::Delegate>,
_additional_params: HashMap<String, String>,
}
impl<'a, C> common::CallBuilder for UserDeleteCompanyRelationCall<'a, C> {}
impl<'a, C> UserDeleteCompanyRelationCall<'a, C>
where
C: common::Connector,
{
pub async fn doit(mut self) -> common::Result<(common::Response, Empty)> {
use std::borrow::Cow;
use std::io::{Read, Seek};
use common::{url::Params, ToParts};
use hyper::header::{AUTHORIZATION, CONTENT_LENGTH, CONTENT_TYPE, LOCATION, USER_AGENT};
let mut dd = common::DefaultDelegate;
let mut dlg: &mut dyn common::Delegate = self._delegate.unwrap_or(&mut dd);
dlg.begin(common::MethodInfo {
id: "partners.users.deleteCompanyRelation",
http_method: hyper::Method::DELETE,
});
for &field in [
"alt",
"userId",
"requestMetadata.userOverrides.userId",
"requestMetadata.userOverrides.ipAddress",
"requestMetadata.trafficSource.trafficSubId",
"requestMetadata.trafficSource.trafficSourceId",
"requestMetadata.partnersSessionId",
"requestMetadata.locale",
"requestMetadata.experimentIds",
]
.iter()
{
if self._additional_params.contains_key(field) {
dlg.finished(false);
return Err(common::Error::FieldClash(field));
}
}
let mut params = Params::with_capacity(10 + self._additional_params.len());
params.push("userId", self._user_id);
if let Some(value) = self._request_metadata_user_overrides_user_id.as_ref() {
params.push("requestMetadata.userOverrides.userId", value);
}
if let Some(value) = self._request_metadata_user_overrides_ip_address.as_ref() {
params.push("requestMetadata.userOverrides.ipAddress", value);
}
if let Some(value) = self
._request_metadata_traffic_source_traffic_sub_id
.as_ref()
{
params.push("requestMetadata.trafficSource.trafficSubId", value);
}
if let Some(value) = self
._request_metadata_traffic_source_traffic_source_id
.as_ref()
{
params.push("requestMetadata.trafficSource.trafficSourceId", value);
}
if let Some(value) = self._request_metadata_partners_session_id.as_ref() {
params.push("requestMetadata.partnersSessionId", value);
}
if let Some(value) = self._request_metadata_locale.as_ref() {
params.push("requestMetadata.locale", value);
}
if !self._request_metadata_experiment_ids.is_empty() {
for f in self._request_metadata_experiment_ids.iter() {
params.push("requestMetadata.experimentIds", f);
}
}
params.extend(self._additional_params.iter());
params.push("alt", "json");
let mut url = self.hub._base_url.clone() + "v2/users/{userId}/companyRelation";
match dlg.api_key() {
Some(value) => params.push("key", value),
None => {
dlg.finished(false);
return Err(common::Error::MissingAPIKey);
}
}
#[allow(clippy::single_element_loop)]
for &(find_this, param_name) in [("{userId}", "userId")].iter() {
url = params.uri_replacement(url, param_name, find_this, false);
}
{
let to_remove = ["userId"];
params.remove_params(&to_remove);
}
let url = params.parse_with_url(&url);
loop {
let mut req_result = {
let client = &self.hub.client;
dlg.pre_request();
let mut req_builder = hyper::Request::builder()
.method(hyper::Method::DELETE)
.uri(url.as_str())
.header(USER_AGENT, self.hub._user_agent.clone());
let request = req_builder
.header(CONTENT_LENGTH, 0_u64)
.body(common::to_body::<String>(None));
client.request(request.unwrap()).await
};
match req_result {
Err(err) => {
if let common::Retry::After(d) = dlg.http_error(&err) {
sleep(d).await;
continue;
}
dlg.finished(false);
return Err(common::Error::HttpError(err));
}
Ok(res) => {
let (mut parts, body) = res.into_parts();
let mut body = common::Body::new(body);
if !parts.status.is_success() {
let bytes = common::to_bytes(body).await.unwrap_or_default();
let error = serde_json::from_str(&common::to_string(&bytes));
let response = common::to_response(parts, bytes.into());
if let common::Retry::After(d) =
dlg.http_failure(&response, error.as_ref().ok())
{
sleep(d).await;
continue;
}
dlg.finished(false);
return Err(match error {
Ok(value) => common::Error::BadRequest(value),
_ => common::Error::Failure(response),
});
}
let response = {
let bytes = common::to_bytes(body).await.unwrap_or_default();
let encoded = common::to_string(&bytes);
match serde_json::from_str(&encoded) {
Ok(decoded) => (common::to_response(parts, bytes.into()), decoded),
Err(error) => {
dlg.response_json_decode_error(&encoded, &error);
return Err(common::Error::JsonDecodeError(
encoded.to_string(),
error,
));
}
}
};
dlg.finished(true);
return Ok(response);
}
}
}
}
pub fn user_id(mut self, new_value: &str) -> UserDeleteCompanyRelationCall<'a, C> {
self._user_id = new_value.to_string();
self
}
pub fn request_metadata_user_overrides_user_id(
mut self,
new_value: &str,
) -> UserDeleteCompanyRelationCall<'a, C> {
self._request_metadata_user_overrides_user_id = Some(new_value.to_string());
self
}
pub fn request_metadata_user_overrides_ip_address(
mut self,
new_value: &str,
) -> UserDeleteCompanyRelationCall<'a, C> {
self._request_metadata_user_overrides_ip_address = Some(new_value.to_string());
self
}
pub fn request_metadata_traffic_source_traffic_sub_id(
mut self,
new_value: &str,
) -> UserDeleteCompanyRelationCall<'a, C> {
self._request_metadata_traffic_source_traffic_sub_id = Some(new_value.to_string());
self
}
pub fn request_metadata_traffic_source_traffic_source_id(
mut self,
new_value: &str,
) -> UserDeleteCompanyRelationCall<'a, C> {
self._request_metadata_traffic_source_traffic_source_id = Some(new_value.to_string());
self
}
pub fn request_metadata_partners_session_id(
mut self,
new_value: &str,
) -> UserDeleteCompanyRelationCall<'a, C> {
self._request_metadata_partners_session_id = Some(new_value.to_string());
self
}
pub fn request_metadata_locale(
mut self,
new_value: &str,
) -> UserDeleteCompanyRelationCall<'a, C> {
self._request_metadata_locale = Some(new_value.to_string());
self
}
pub fn add_request_metadata_experiment_ids(
mut self,
new_value: &str,
) -> UserDeleteCompanyRelationCall<'a, C> {
self._request_metadata_experiment_ids
.push(new_value.to_string());
self
}
pub fn delegate(
mut self,
new_value: &'a mut dyn common::Delegate,
) -> UserDeleteCompanyRelationCall<'a, C> {
self._delegate = Some(new_value);
self
}
pub fn param<T>(mut self, name: T, value: T) -> UserDeleteCompanyRelationCall<'a, C>
where
T: AsRef<str>,
{
self._additional_params
.insert(name.as_ref().to_string(), value.as_ref().to_string());
self
}
}
pub struct UserGetCall<'a, C>
where
C: 'a,
{
hub: &'a Partners<C>,
_user_id: String,
_user_view: Option<String>,
_request_metadata_user_overrides_user_id: Option<String>,
_request_metadata_user_overrides_ip_address: Option<String>,
_request_metadata_traffic_source_traffic_sub_id: Option<String>,
_request_metadata_traffic_source_traffic_source_id: Option<String>,
_request_metadata_partners_session_id: Option<String>,
_request_metadata_locale: Option<String>,
_request_metadata_experiment_ids: Vec<String>,
_delegate: Option<&'a mut dyn common::Delegate>,
_additional_params: HashMap<String, String>,
}
impl<'a, C> common::CallBuilder for UserGetCall<'a, C> {}
impl<'a, C> UserGetCall<'a, C>
where
C: common::Connector,
{
pub async fn doit(mut self) -> common::Result<(common::Response, User)> {
use std::borrow::Cow;
use std::io::{Read, Seek};
use common::{url::Params, ToParts};
use hyper::header::{AUTHORIZATION, CONTENT_LENGTH, CONTENT_TYPE, LOCATION, USER_AGENT};
let mut dd = common::DefaultDelegate;
let mut dlg: &mut dyn common::Delegate = self._delegate.unwrap_or(&mut dd);
dlg.begin(common::MethodInfo {
id: "partners.users.get",
http_method: hyper::Method::GET,
});
for &field in [
"alt",
"userId",
"userView",
"requestMetadata.userOverrides.userId",
"requestMetadata.userOverrides.ipAddress",
"requestMetadata.trafficSource.trafficSubId",
"requestMetadata.trafficSource.trafficSourceId",
"requestMetadata.partnersSessionId",
"requestMetadata.locale",
"requestMetadata.experimentIds",
]
.iter()
{
if self._additional_params.contains_key(field) {
dlg.finished(false);
return Err(common::Error::FieldClash(field));
}
}
let mut params = Params::with_capacity(11 + self._additional_params.len());
params.push("userId", self._user_id);
if let Some(value) = self._user_view.as_ref() {
params.push("userView", value);
}
if let Some(value) = self._request_metadata_user_overrides_user_id.as_ref() {
params.push("requestMetadata.userOverrides.userId", value);
}
if let Some(value) = self._request_metadata_user_overrides_ip_address.as_ref() {
params.push("requestMetadata.userOverrides.ipAddress", value);
}
if let Some(value) = self
._request_metadata_traffic_source_traffic_sub_id
.as_ref()
{
params.push("requestMetadata.trafficSource.trafficSubId", value);
}
if let Some(value) = self
._request_metadata_traffic_source_traffic_source_id
.as_ref()
{
params.push("requestMetadata.trafficSource.trafficSourceId", value);
}
if let Some(value) = self._request_metadata_partners_session_id.as_ref() {
params.push("requestMetadata.partnersSessionId", value);
}
if let Some(value) = self._request_metadata_locale.as_ref() {
params.push("requestMetadata.locale", value);
}
if !self._request_metadata_experiment_ids.is_empty() {
for f in self._request_metadata_experiment_ids.iter() {
params.push("requestMetadata.experimentIds", f);
}
}
params.extend(self._additional_params.iter());
params.push("alt", "json");
let mut url = self.hub._base_url.clone() + "v2/users/{userId}";
match dlg.api_key() {
Some(value) => params.push("key", value),
None => {
dlg.finished(false);
return Err(common::Error::MissingAPIKey);
}
}
#[allow(clippy::single_element_loop)]
for &(find_this, param_name) in [("{userId}", "userId")].iter() {
url = params.uri_replacement(url, param_name, find_this, false);
}
{
let to_remove = ["userId"];
params.remove_params(&to_remove);
}
let url = params.parse_with_url(&url);
loop {
let mut req_result = {
let client = &self.hub.client;
dlg.pre_request();
let mut req_builder = hyper::Request::builder()
.method(hyper::Method::GET)
.uri(url.as_str())
.header(USER_AGENT, self.hub._user_agent.clone());
let request = req_builder
.header(CONTENT_LENGTH, 0_u64)
.body(common::to_body::<String>(None));
client.request(request.unwrap()).await
};
match req_result {
Err(err) => {
if let common::Retry::After(d) = dlg.http_error(&err) {
sleep(d).await;
continue;
}
dlg.finished(false);
return Err(common::Error::HttpError(err));
}
Ok(res) => {
let (mut parts, body) = res.into_parts();
let mut body = common::Body::new(body);
if !parts.status.is_success() {
let bytes = common::to_bytes(body).await.unwrap_or_default();
let error = serde_json::from_str(&common::to_string(&bytes));
let response = common::to_response(parts, bytes.into());
if let common::Retry::After(d) =
dlg.http_failure(&response, error.as_ref().ok())
{
sleep(d).await;
continue;
}
dlg.finished(false);
return Err(match error {
Ok(value) => common::Error::BadRequest(value),
_ => common::Error::Failure(response),
});
}
let response = {
let bytes = common::to_bytes(body).await.unwrap_or_default();
let encoded = common::to_string(&bytes);
match serde_json::from_str(&encoded) {
Ok(decoded) => (common::to_response(parts, bytes.into()), decoded),
Err(error) => {
dlg.response_json_decode_error(&encoded, &error);
return Err(common::Error::JsonDecodeError(
encoded.to_string(),
error,
));
}
}
};
dlg.finished(true);
return Ok(response);
}
}
}
}
pub fn user_id(mut self, new_value: &str) -> UserGetCall<'a, C> {
self._user_id = new_value.to_string();
self
}
pub fn user_view(mut self, new_value: &str) -> UserGetCall<'a, C> {
self._user_view = Some(new_value.to_string());
self
}
pub fn request_metadata_user_overrides_user_id(
mut self,
new_value: &str,
) -> UserGetCall<'a, C> {
self._request_metadata_user_overrides_user_id = Some(new_value.to_string());
self
}
pub fn request_metadata_user_overrides_ip_address(
mut self,
new_value: &str,
) -> UserGetCall<'a, C> {
self._request_metadata_user_overrides_ip_address = Some(new_value.to_string());
self
}
pub fn request_metadata_traffic_source_traffic_sub_id(
mut self,
new_value: &str,
) -> UserGetCall<'a, C> {
self._request_metadata_traffic_source_traffic_sub_id = Some(new_value.to_string());
self
}
pub fn request_metadata_traffic_source_traffic_source_id(
mut self,
new_value: &str,
) -> UserGetCall<'a, C> {
self._request_metadata_traffic_source_traffic_source_id = Some(new_value.to_string());
self
}
pub fn request_metadata_partners_session_id(mut self, new_value: &str) -> UserGetCall<'a, C> {
self._request_metadata_partners_session_id = Some(new_value.to_string());
self
}
pub fn request_metadata_locale(mut self, new_value: &str) -> UserGetCall<'a, C> {
self._request_metadata_locale = Some(new_value.to_string());
self
}
pub fn add_request_metadata_experiment_ids(mut self, new_value: &str) -> UserGetCall<'a, C> {
self._request_metadata_experiment_ids
.push(new_value.to_string());
self
}
pub fn delegate(mut self, new_value: &'a mut dyn common::Delegate) -> UserGetCall<'a, C> {
self._delegate = Some(new_value);
self
}
pub fn param<T>(mut self, name: T, value: T) -> UserGetCall<'a, C>
where
T: AsRef<str>,
{
self._additional_params
.insert(name.as_ref().to_string(), value.as_ref().to_string());
self
}
}