/// <summary> /// Gets a list of deals /// </summary> /// <typeparam name="T">Implementation of DealListHubSpotModel</typeparam> /// <param name="opts">Options (limit, offset) relating to request</param> /// <returns>List of deals</returns> public DealListHubSpotModel <T> List <T>(bool includeAssociations, ListRequestOptions opts = null) where T : DealHubSpotModel, new() { if (opts == null) { opts = new ListRequestOptions(); } var path = $"{new DealListHubSpotModel<T>().RouteBasePath}/deal/paged" .SetQueryParam("limit", opts.Limit); if (opts.Offset.HasValue) { path = path.SetQueryParam("offset", opts.Offset); } if (includeAssociations) { path = path.SetQueryParam("includeAssociations", "true"); } if (opts.PropertiesToInclude.Any()) { path = path.SetQueryParam("properties", opts.PropertiesToInclude); } var data = _client.ExecuteList <DealListHubSpotModel <T> >(path, opts); return(data); }
/// <summary> /// Gets a company by domain name /// </summary> /// <typeparam name="T">Implementation of CompanyHubSpotModel</typeparam> /// <param name="domain">Domain name to search for</param> /// <param name="options">Set of search options</param> /// <returns>The company entity</returns> public CompanySearchResultModel <T> GetByDomain <T>(string domain, CompanySearchByDomain options = null) where T : CompanyHubSpotModel, new() { if (options == null) { options = new CompanySearchByDomain(); } var path = $"{new CompanyHubSpotModel().RouteBasePath}/domains/{domain}/companies"; var data = _client.ExecuteList <CompanySearchResultModel <T> >(path, options, Method.POST); return(data); }
/// <summary> /// Retrieves a paginated list of engagements /// </summary> /// <param name="opts">Options for querying</param> /// <returns>List of engagements, with additional metadata, e.g. total</returns> public EngagementListHubSpotModel <T> List <T>(EngagementListRequestOptions opts = null) where T : EngagementHubSpotModel, new() { if (opts == null) { opts = new EngagementListRequestOptions(); } var path = $"{new EngagementHubSpotModel().RouteBasePath}/engagements/paged".SetQueryParam("limit", opts.Limit); if (opts.Offset.HasValue) { path = path.SetQueryParam("offset", opts.Offset); } var data = _client.ExecuteList <EngagementListHubSpotModel <T> >(path, opts, convertToPropertiesSchema: false); return(data); }
/// <summary> /// Gets a list of email campaigns. /// </summary> /// <typeparam name="T">Implementation of EmailCampaignHubSpotModel</typeparam> /// <param name="opts">Options (limit, offset) relating to request</param> /// <returns>List of email campaigns</returns> public EmailCampaignListHubSpotModel <T> ListCampaigns <T>(EmailCampaignListRequestOptions opts = null) where T : EmailCampaignHubSpotModel, new() { if (opts == null) { opts = new EmailCampaignListRequestOptions { Limit = 250 }; } var path = $"{new EmailCampaignListHubSpotModel<T>().RouteBasePath}/by-id" .SetQueryParam("limit", opts.Limit); if (!string.IsNullOrEmpty(opts.Offset)) { path = path.SetQueryParam("offset", opts.Offset); } var data = _client.ExecuteList <EmailCampaignListHubSpotModel <T> >(path, opts, convertToPropertiesSchema: false); return(data); }
public FileListHubSpotModel <T> List <T>(ListRequestOptions opts = null) where T : FileHubSpotModel, new() { opts = opts ?? new ListRequestOptions(); var path = $"{new T().RouteBasePath}/files".SetQueryParam("limit", opts.Limit); if (opts.Offset.HasValue) { path = path.SetQueryParam("offset", opts.Offset); } var data = _client.ExecuteList <FileListHubSpotModel <T> >(path, opts, Method.GET, false); return(data); }
/// <summary> /// List all available contacts /// </summary> /// <param name="properties">List of properties to fetch for each contact</param> /// <param name="opts">Request options - used for pagination etc.</param> /// <typeparam name="T">Implementation of ContactHubSpotModel</typeparam> /// <returns>A list of contacts</returns> public ContactListHubSpotModel <T> List <T>(ListRequestOptions opts = null) where T : ContactHubSpotModel, new() { if (opts == null) { opts = new ListRequestOptions(); } var path = $"{new ContactHubSpotModel().RouteBasePath}/lists/all/contacts/all" .SetQueryParam("count", opts.Limit); if (opts.PropertiesToInclude.Any()) { path.SetQueryParam("property", opts.PropertiesToInclude); } if (opts.Offset.HasValue) { path = path.SetQueryParam("vidOffset", opts.Offset); } var data = _client.ExecuteList <ContactListHubSpotModel <T> >(path, opts); return(data); }
public PropertiesListHubSpotModel <CompanyPropertyHubSpotModel> GetAll() { var path = $"{new PropertiesListHubSpotModel<CompanyPropertyHubSpotModel>().RouteBasePath}"; return(_client.ExecuteList <PropertiesListHubSpotModel <CompanyPropertyHubSpotModel> >(path, convertToPropertiesSchema: false)); }
/// <summary> /// Gets the available email subscription types available in the portal /// </summary> public SubscriptionTypeListHubSpotModel GetEmailSubscriptionTypes() { var path = $"{new SubscriptionTypeListHubSpotModel().RouteBasePath}/subscriptions"; return(_client.ExecuteList <SubscriptionTypeListHubSpotModel>(path, convertToPropertiesSchema: false)); }
/// <summary> /// Gets all owners within your HubSpot account /// </summary> /// <returns>The set of owners</returns> public OwnerListHubSpotModel <T> GetAll <T>() where T : OwnerHubSpotModel, new() { var path = $"{new OwnerHubSpotModel().RouteBasePath}/owners"; return(_client.ExecuteList <OwnerListHubSpotModel <T> >(path, convertToPropertiesSchema: false)); }