Skip to content

Commit 6aa9e74

Browse files
luchoooomozts2005
authored andcommitted
Adding support for paging on Search Articles and few missing properties (#452)
* Added Support for paging on Search Articles - HelpCenter API * Add 'Snipped' property for Results on Article search. * Adding 'HelpCenterState' on Brands Model.
1 parent a426908 commit 6aa9e74

3 files changed

Lines changed: 13 additions & 7 deletions

File tree

src/ZendeskApi_v2/Models/Articles/Result.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,5 +66,8 @@ public class Result
6666

6767
[JsonProperty("result_type")]
6868
public string ResultType { get; set; }
69+
70+
[JsonProperty("snippet")]
71+
public string Snippet { get; set; }
6972
}
7073
}

src/ZendeskApi_v2/Models/Brands/Brand.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@ public class Brand
2929
[JsonProperty("has_center_state")]
3030
public bool? HasCenterState { get; set; }
3131

32+
[JsonProperty("help_center_state")]
33+
public string HelpCenterState { get; set; }
34+
3235
[JsonProperty("active")]
3336
public bool? Active { get; set; }
3437

src/ZendeskApi_v2/Requests/HelpCenter/Articles.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public interface IArticles : ICore
3939

4040
GroupArticleResponse GetArticlesSinceDateTime(DateTime startTime);
4141

42-
ArticleSearchResults SearchArticlesFor(string query, string category = "", string section = "", string labels = "", string locale = "", DateTime? createdBefore = null, DateTime? createdAfter = null, DateTime? createdAt = null, DateTime? updatedBefore = null, DateTime? updatedAfter = null, DateTime? updatedAt = null);
42+
ArticleSearchResults SearchArticlesFor(string query, string category = "", string section = "", string labels = "", string locale = "", DateTime? createdBefore = null, DateTime? createdAfter = null, DateTime? createdAt = null, DateTime? updatedBefore = null, DateTime? updatedAfter = null, DateTime? updatedAt = null, int? perPage = null, int? page = null);
4343

4444
IndividualArticleResponse CreateArticle(long sectionId, Article article);
4545

@@ -51,7 +51,7 @@ public interface IArticles : ICore
5151

5252
IndividualSubscriptionResponse GetSubscription(long articleId, long subscriptionId, SubscriptionSideLoadOptions sideLoadOptions = SubscriptionSideLoadOptions.None);
5353

54-
GroupSubscriptionsResponse GetSubscriptions(long articleId, SubscriptionSideLoadOptions sideLoadOptions = SubscriptionSideLoadOptions.None,int ? perPage = null, int? page = null);
54+
GroupSubscriptionsResponse GetSubscriptions(long articleId, SubscriptionSideLoadOptions sideLoadOptions = SubscriptionSideLoadOptions.None, int? perPage = null, int? page = null);
5555

5656
bool DeleteSubscription(long articleId, long subscriptionId);
5757

@@ -70,7 +70,7 @@ public interface IArticles : ICore
7070

7171
Task<GroupArticleResponse> GetArticlesSinceDateTimeAsync(DateTime startTime);
7272

73-
Task<ArticleSearchResults> SearchArticlesForAsync(string query, string category = "", string section = "", string labels = "", string locale = "", DateTime? createdBefore = null, DateTime? createdAfter = null, DateTime? createdAt = null, DateTime? updatedBefore = null, DateTime? updatedAfter = null, DateTime? updatedAt = null);
73+
Task<ArticleSearchResults> SearchArticlesForAsync(string query, string category = "", string section = "", string labels = "", string locale = "", DateTime? createdBefore = null, DateTime? createdAfter = null, DateTime? createdAt = null, DateTime? updatedBefore = null, DateTime? updatedAfter = null, DateTime? updatedAt = null, int? perPage = null, int? page = null);
7474

7575
Task<IndividualArticleResponse> CreateArticleAsync(long sectionId, Article article);
7676

@@ -143,13 +143,13 @@ public GroupArticleResponse GetArticlesSinceDateTime(DateTime startTime)
143143
return GenericGet<GroupArticleResponse>($"help_center/incremental/articles.json?start_time={startTime.GetEpoch()}");
144144
}
145145

146-
public ArticleSearchResults SearchArticlesFor(string query, string category = "", string section = "", string labels = "", string locale = "", DateTime? createdBefore = null, DateTime? createdAfter = null, DateTime? createdAt = null, DateTime? updatedBefore = null, DateTime? updatedAfter = null, DateTime? updatedAt = null)
146+
public ArticleSearchResults SearchArticlesFor(string query, string category = "", string section = "", string labels = "", string locale = "", DateTime? createdBefore = null, DateTime? createdAfter = null, DateTime? createdAt = null, DateTime? updatedBefore = null, DateTime? updatedAfter = null, DateTime? updatedAt = null, int? perPage = null, int? page = null)
147147
{
148148
var querystringParams = new Dictionary<string, string> { { "category", category }, { "section", section }, { "label_names", labels },
149149
{ "locale", locale },{ "created_before", $"{createdBefore:yyyy-MM-dd}" }, {"created_after" , $"{createdAfter:yyyy-MM-dd}" },
150150
{ "created_at", $"{createdAt:yyyy-MM-dd}"}, { "updated_before", $"{updatedBefore:yyyy-MM-dd}"}, {"updated_after" , $"{updatedAfter:yyyy-MM-dd}" },{ "updated_at", $"{updatedAt:yyyy-MM-dd}"} };
151151

152-
return GenericGet<ArticleSearchResults>($"help_center/articles/search.json?query={query}&{querystringParams.GetQueryString()}");
152+
return GenericPagedGet<ArticleSearchResults>($"help_center/articles/search.json?query={query}&{querystringParams.GetQueryString()}", perPage, page);
153153
}
154154

155155
public IndividualArticleResponse CreateArticle(long sectionId, Article article)
@@ -229,14 +229,14 @@ public async Task<GroupArticleResponse> GetArticlesSinceDateTimeAsync(DateTime s
229229
return await GenericGetAsync<GroupArticleResponse>($"help_center/incremental/articles.json?start_time={startTime.GetEpoch()}");
230230
}
231231

232-
public async Task<ArticleSearchResults> SearchArticlesForAsync(string query, string category = "", string section = "", string labels = "", string locale = "", DateTime? createdBefore = null, DateTime? createdAfter = null, DateTime? createdAt = null, DateTime? updatedBefore = null, DateTime? updatedAfter = null, DateTime? updatedAt = null)
232+
public async Task<ArticleSearchResults> SearchArticlesForAsync(string query, string category = "", string section = "", string labels = "", string locale = "", DateTime? createdBefore = null, DateTime? createdAfter = null, DateTime? createdAt = null, DateTime? updatedBefore = null, DateTime? updatedAfter = null, DateTime? updatedAt = null, int? perPage = null, int? page = null)
233233
{
234234
var querystringParams = new Dictionary<string, string> { { "category", category }, { "section", section }, { "label_names", labels },
235235
{ "locale", locale },{ "created_before", $"{createdBefore:yyyy-MM-dd}" }, {"created_after" , $"{createdAfter:yyyy-MM-dd}" },
236236
{ "created_at", $"{createdAt:yyyy-MM-dd}"}, { "updated_before", $"{updatedBefore:yyyy-MM-dd}"}, {"updated_after" , $"{updatedAfter:yyyy-MM-dd}" },
237237
{ "updated_at", $"{updatedAt:yyyy-MM-dd}"} };
238238

239-
return await GenericGetAsync<ArticleSearchResults>($"help_center/articles/search.json?query={query}&{querystringParams.GetQueryString()}");
239+
return await GenericPagedGetAsync<ArticleSearchResults>($"help_center/articles/search.json?query={query}&{querystringParams.GetQueryString()}", perPage, page);
240240
}
241241

242242
public async Task<IndividualArticleResponse> CreateArticleAsync(long sectionId, Article article)

0 commit comments

Comments
 (0)