/// <summary> /// Get users who user follows. /// </summary> /// /// <param name="client"><see cref="KipptClient"/> instance.</param> /// <param name="userId">User in question.</param> /// <param name="limit">End index.</param> /// <param name="offset">Start index.</param> public static void GetUserFollowingsAsync(KipptClient client, int userId, int limit = 0, int offset = 0) { var parameters = new Dictionary<string, object>(); if (limit > 0) parameters.Add("limit", limit); if (offset > 0) parameters.Add("offset", offset); client.ApiAsync<KipptUserCollection>(ApiCommand.UserFollowings, HttpMethod.Get, parameters, userId); }
/// <summary> /// Returns a collection of notifications. /// </summary> /// /// <param name="client"><see cref="KipptClient"/> instance.</param> /// <param name="limit">End index.</param> /// <param name="offset">Start index.</param> public static void GetNotificationsAsync(KipptClient client, int limit, int offset) { Dictionary<string, object> parameters = new Dictionary<string, object>(); parameters.Add("limit", limit); if (offset > 0) parameters.Add("offset", offset); client.ApiAsync<KipptNotificationCollection>(ApiCommand.Notifications, HttpMethod.Get, parameters); }
/// <summary> /// Returns a clip by its id. /// </summary> /// /// <param name="client"><see cref="KipptClient"/> instance.</param> /// <param name="id">Clip id.</param> public static void GetClipAsync(KipptClient client, int id) { client.ApiAsync<KipptClip>(ApiCommand.Clip, HttpMethod.Get, id); }
/// <summary> /// Returns the logged-in user profile. /// </summary> /// /// <param name="client"><see cref="KipptClient"/> instance.</param> public static void MeAsync(KipptClient client) { client.ApiAsync<KipptUser>(ApiCommand.Account, HttpMethod.Get); }
/// <summary> /// Returns basic informations of a user. /// </summary> /// /// <param name="client"><see cref="KipptClient"/> instance.</param> /// <param name="user">User id.</param> public static void GetUserAsync(KipptClient client, int userId) { client.ApiAsync<KipptUser>(ApiCommand.User, HttpMethod.Get, userId); }
/// <summary> /// Remove clip from favorites. /// </summary> /// /// <param name="client"><see cref="KipptClient"/> instance.</param> /// <param name="clipId">Clip id.</param> public static void UnFavoriteClipAsync(KipptClient client, int clipId) { client.ApiAsync<object>(ApiCommand.FavoriteClip, HttpMethod.Delete, clipId); }
/// <summary> /// HTTP basic authentication. /// </summary> /// /// <param name="client"><see cref="KipptClient"/> instance.</param> /// <param name="username">Username.</param> /// <param name="password">Password.</param> /// /// <exception cref="KipptException">Empty parameters or wrong credentials.</exception> /// /// <returns><see cref="KipptUser"/> instance.</returns> public static void AuthenticateAsync(KipptClient client, string username, string password) { if (string.IsNullOrEmpty(username) || string.IsNullOrEmpty(password)) { throw new ArgumentNullException("Username/Password cannot be null or empty !"); } Dictionary<string, object> parameters = new Dictionary<string, object>(); parameters.Add("username", username); parameters.Add("password", password); client.ApiAsync<KipptUser>(ApiCommand.Account, HttpMethod.Get, parameters); }
/// <summary> /// Creates a list. /// </summary> /// /// <param name="client"><see cref="KipptClient"/> instance.</param> /// /// <remarks> /// * Title (required). /// </remarks> /// /// <returns>Created <see cref="KipptList"/> instance.</returns> public void CreateAsync(KipptClient client) { client.ApiAsync<KipptList>(ApiCommand.Lists, HttpMethod.Post, JsonHelper.Serialize<KipptList>(this)); }
/// <summary> /// Deleted a list. /// </summary> /// /// <param name="client"><see cref="KipptClient"/> instance.</param> public void DeleteAsync(KipptClient client) { client.ApiAsync<KipptList>(ApiCommand.List, HttpMethod.Delete, this.Id); }
/// <summary> /// Returns a list by its id. /// </summary> /// /// <param name="client"><see cref="KipptClient"/> instance.</param> /// <param name="id">List id.</param> /// <param name="scopes">List of scopes.</param> public static void GetListAsync(KipptClient client, int id) { client.ApiAsync<KipptList>(ApiCommand.List, HttpMethod.Get, id); }
/// <summary> /// Unfollow a list. /// </summary> /// /// <param name="client"><see cref="KipptClient"/> instance.</param> /// <param name="listId">List id.</param> public static void UnFollowListAsync(KipptClient client, int listId) { client.ApiAsync<KipptRelationship>(ApiCommand.ListRelationship, HttpMethod.Post, JsonHelper.Serialize<KipptAction>(new KipptAction("unfollow")), listId); }
/// <summary> /// Returns a query filtered collection of clips. /// </summary> /// /// <param name="client"><see cref="KipptClient"/> instance.</param> /// <param name="query">Query.</param> /// <param name="limit">End index.</param> /// <param name="offset">Start index.</param> /// <param name="list">List id.</param> /// <param name="isStarred">Filter clips by returning only starred ones.</param> public static void SearchAsync(KipptClient client, string query, int limit, int offset, int? list = null, bool isStarred = false) { Dictionary<string, object> parameters = new Dictionary<string, object>(); parameters.Add("q", query); if (limit > 0) parameters.Add("limit", limit); if (offset > 0) parameters.Add("offset", offset); if (list != null) parameters.Add("list", list); if (isStarred) parameters.Add("is_starred", "true"); client.ApiAsync<KipptClipCollection>(ApiCommand.ClipSearch, HttpMethod.Get, parameters); }
/// <summary> /// Deletes a clip. /// </summary> /// /// <param name="client"><see cref="KipptClient"/> instance.</param> public void DeleteAsync(KipptClient client) { client.ApiAsync<KipptClip>(ApiCommand.Clip, HttpMethod.Delete, Id); }
/// <summary> /// Returns a collection of feed items. /// </summary> /// /// <param name="client"><see cref="KipptClient"/> instance.</param> public static void GetFeedAsync(KipptClient client) { client.ApiAsync<KipptClipCollection>(ApiCommand.Feed, HttpMethod.Get); }
/// <summary> /// Returns a collection of clips in a specific list. /// </summary> /// /// <param name="client"><see cref="KipptClient"/> instance.</param> /// <param name="list">List id.</param> /// <param name="limit">End index.</param> /// <param name="offset">Start index.</param> /// <param name="isStarred">Filter clips by returning only starred ones.</param> /// <param name="isReadLater">Filter clips returning only read later ones.</param> /// <param name="since">Specify a start date as a filter.</param> public static void GetClipsByListAsync(KipptClient client, int list, int limit, int offset, bool isStarred = false, bool isReadLater = false, DateTime? since = null) { Dictionary<string, object> parameters = new Dictionary<string, object>(); parameters.Add("list", list); if (limit > 0) parameters.Add("limit", limit); if (offset > 0) parameters.Add("offset", offset); if (isStarred) parameters.Add("is_starred", "true"); if (isReadLater) parameters.Add("is_read_later", "true"); if (since != null) parameters.Add("since", Utils.ToUnixTime((DateTime)since)); client.ApiAsync<KipptClipCollection>(ApiCommand.Clips, HttpMethod.Get, parameters); }
/// <summary> /// Unlike a clip. /// </summary> /// /// <param name="client"><see cref="KipptClient"/> instance.</param> /// <param name="clipId">Clip id.</param> public static void UnLikeClipAsync(KipptClient client, int clipId) { client.ApiAsync<object>(ApiCommand.ClipLikes, HttpMethod.Delete, clipId); }
/// <summary> /// Delete a comment. /// </summary> /// /// <param name="client"><see cref="KipptClient"/> instance.</param> /// <param name="clipId">clip id.</param> /// <param name="commentId">comment id.</param> public static void DeleteCommentAsync(KipptClient client, int clipId, int commentId) { client.ApiAsync<object>(ApiCommand.DeleteComment, HttpMethod.Delete, clipId, commentId); }
/// <summary> /// Add comment to a clip. /// </summary> /// /// <param name="client"><see cref="KipptClient"/> instance.</param> /// <param name="clipId">Clip id.</param> /// <param name="commentText">Comment text.</param> public static void AddCommentAsync(KipptClient client, int clipId, string commentText) { var comment = new KipptComment(); comment.Body = commentText; client.ApiAsync<KipptComment>(ApiCommand.ClipComments, HttpMethod.Post, JsonHelper.Serialize<KipptComment>(comment), clipId); }
/// <summary> /// Checks whether the logged in user is following a list. /// </summary> /// /// <param name="client"><see cref="KipptClient"/> instance.</param> /// <param name="listId">List id.</param> public static void IsFollowingAsync(KipptClient client, int listId) { client.ApiAsync<KipptRelationship>(ApiCommand.ListRelationship, HttpMethod.Get, listId); }
/// <summary> /// Returns a collection of notifications. /// </summary> /// /// <param name="client"><see cref="KipptClient"/> instance.</param> public static void GetNotificationsAsync(KipptClient client) { client.ApiAsync<KipptNotificationCollection>(ApiCommand.Notifications, HttpMethod.Get); }
/// <summary> /// Search for a list. /// </summary> /// /// <param name="client"><see cref="KipptClient"/> instance.</param> /// <param name="query">Query.</param> /// <param name="limit">End index.</param> /// <param name="offset">Start index.</param> public static void SearchAsync(KipptClient client, string query, int limit = 0, int offset = 0) { var parameters = new Dictionary<string, object>(); parameters.Add("q", query); if (limit > 0) parameters.Add("limit", limit); if (offset > 0) parameters.Add("offset", offset); client.ApiAsync<KipptListCollection>(ApiCommand.ListSearch, HttpMethod.Get, parameters); }
/// <summary> /// Mark all notifications as seen. /// </summary> /// /// <param name="client"><see cref="KipptClient"/> instance.</param> public static void MarkNotificationsAsSeenAsync(KipptClient client) { client.ApiAsync<object>(ApiCommand.Notifications, HttpMethod.Post, JsonHelper.Serialize<KipptAction>(new KipptAction("mark_seen"))); }
/// <summary> /// Updates a list. /// </summary> /// /// <param name="client"><see cref="KipptClient"/> instance.</param> /// /// <returns>Updated <see cref="KipptList"/> instance.</returns> public void UpdateAsync(KipptClient client) { client.ApiAsync<KipptList>(ApiCommand.List, HttpMethod.Put, JsonHelper.Serialize<KipptList>(this), this.Id); }
/// <summary> /// Follow a user. /// </summary> /// /// <param name="client"><see cref="KipptClient"/> instance.</param> /// <param name="userId">User to follow.</param> public static void FollowUserAsync(KipptClient client, int userId) { client.ApiAsync<KipptRelationship>(ApiCommand.UserRelationship, HttpMethod.Post, JsonHelper.Serialize<KipptAction>(new KipptAction("follow")), userId); }
/// <summary> /// Returns a collection of lists. /// </summary> /// /// <remarks> /// Results are paginated. /// The default number of returned lists is 20. /// Pagination information are stored in the Meta property of <see cref="KipptListCollection"/> class. /// </remarks> /// /// <param name="client"><see cref="KipptClient"/> instance.</param> /// <param name="scopes">List of scopes.</param> public static void GetListsAsync(KipptClient client) { client.ApiAsync<KipptListCollection>(ApiCommand.Lists, HttpMethod.Get); }
/// <summary> /// Returns favorites clips. Both private and public. /// </summary> /// /// <param name="client"><see cref="KipptClient"/> instance.</param> /// <param name="limit">End index.</param> /// <param name="offset">Start index.</param> /// <param name="since">Date filter.</param> public static void GetFavoriteClipsAsync(KipptClient client, int limit = 0, int offset = 0, DateTime? since = null) { Dictionary<string, object> parameters = new Dictionary<string, object>(); if (limit > 0) parameters.Add("limit", limit); if (offset > 0) parameters.Add("offset", offset); if (since != null) parameters.Add("since", Utils.ToUnixTime((DateTime)since)); client.ApiAsync<KipptClipCollection>(ApiCommand.ClipFavorites, HttpMethod.Get, parameters); }