/// <summary> /// Get all posts. This is rate-limited to once every 60 seconds and will return a 429 error if you exceed that /// </summary> /// <param name="Tags"></param> /// <param name="Start">Offset to start from - default is 0</param> /// <param name="Results">Number of posts to return - default is all</param> /// <param name="FromDate">Return only bookmarks created after this time</param> /// <param name="ToDate">Return only bookmarks created before this time</param> /// <param name="ChangedMeta">Include the "meta" attribute in the response</param> /// <returns>A list of Posts</returns> public async Task <IRestResponse <List <Post> > > GetAllPostsAsync(List <Tag> Tags = null, int?Start = null, int?Results = null, DateTime?FromDate = null, DateTime?ToDate = null, bool ChangedMeta = false) { RestRequest getPostsReq = new RestRequest("/posts/all"); getPostsReq.RequestFormat = DataFormat.Json; if (Tags != null) { getPostsReq.AddParameter(ParameterHelpers.ValueToGetArgument("tag", Tags)); } if (Start.HasValue) { getPostsReq.AddParameter("start", Start); } if (Results.HasValue) { getPostsReq.AddParameter("results", Results); } if (FromDate.HasValue) { getPostsReq.AddParameter("fromdt", FromDate); } if (ToDate.HasValue) { getPostsReq.AddParameter("todt", ToDate); } return(await ExecuteAsync <List <Post> >(getPostsReq)); }
public void TestValueToGet() { //var stringParam = ParameterHelpers.ValueToGetArgument("string", "string"); var boolParam = ParameterHelpers.ValueToGetArgument("didThisWork", true); var dateTimeParam = ParameterHelpers.ValueToGetArgument("letsParty", new DateTime(1999, 12, 31)); var tags = new List <Tag>(); tags.Add(new Tag("something")); tags.Add(new Tag("else")); var tagParam = ParameterHelpers.ValueToGetArgument("tags", tags); Assert.AreEqual(boolParam.ToString(), "didThisWork=yes"); Assert.AreEqual(dateTimeParam.ToString(), "letsParty=1999-12-31T00:00:00Z"); Assert.AreEqual(tagParam.ToString(), "tags=something else"); }
/// <summary> /// Get posts - filtered by URL, tags or date /// </summary> /// <param name="Tags">A list of up to 3 tags</param> /// <param name="CreatedDate">Return posts created on this date</param> /// <param name="URL">Return the post with this URL</param> /// <param name="ChangedMeta">Include the "meta" attribute in the response</param> /// <returns>A list of Post objects</returns> public async Task <IRestResponse <List <Post> > > GetPostsAsync(List <Tag> Tags = null, DateTime?CreatedDate = null, string URL = null, bool ChangedMeta = false) { RestRequest GetPostsReq = new RestRequest("/posts/get"); if (Tags != null) { GetPostsReq.AddParameter(ParameterHelpers.ValueToGetArgument("tags", Tags)); } if (CreatedDate.HasValue) { GetPostsReq.AddParameter(ParameterHelpers.ValueToGetArgument("dt", CreatedDate.Value)); } if (URL != null) { GetPostsReq.AddParameter("url", URL); } GetPostsReq.AddParameter(ParameterHelpers.ValueToGetArgument("meta", ChangedMeta)); return(await ExecuteAsync <List <Post> >(GetPostsReq)); }
/// <summary> /// Adds a post based on the querystring we pass /// </summary> /// <param name="newPost">The post to add</param> /// <returns>PinboardResponse</returns> public async Task <IRestResponse <PinboardResponse> > AddPostAsync(Post newPost) { RestRequest AddPostRequest = new RestRequest("/posts/add"); if (newPost.Href != null) { AddPostRequest.AddParameter("url", newPost.Href); } if (newPost.Description != null) { AddPostRequest.AddParameter("description", newPost.Description); } if (newPost.Extended != null) { AddPostRequest.AddParameter("extended", newPost.Extended); } if (newPost.Tag != null) { AddPostRequest.AddParameter(ParameterHelpers.ValueToGetArgument("tags", newPost.Tag)); } if (newPost.CreationTime.HasValue) { AddPostRequest.AddParameter(ParameterHelpers.ValueToGetArgument("dt", newPost.CreationTime)); } if (newPost.Replace != null) { AddPostRequest.AddParameter(ParameterHelpers.ValueToGetArgument("replace", newPost.Replace)); } if (newPost.Shared != null) { AddPostRequest.AddParameter(ParameterHelpers.ValueToGetArgument("shared", newPost.Shared)); } if (newPost.ToRead != null) { AddPostRequest.AddParameter(ParameterHelpers.ValueToGetArgument("toread", newPost.ToRead)); } return(await ExecuteAsync <PinboardResponse>(AddPostRequest)); }