/// <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 KipptUserCollection GetUserFollowings(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); return client.Api<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 KipptNotificationCollection GetNotifications(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); return client.Api<KipptNotificationCollection>(ApiCommand.Notifications, HttpMethod.Get, parameters); }
/// <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 KipptListCollection GetLists(KipptClient client) { return client.Api<KipptListCollection>(ApiCommand.Lists, HttpMethod.Get); }
/// <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 KipptUser Authenticate(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); var account = client.Api<KipptUser>(ApiCommand.Account, HttpMethod.Get, parameters); client.UserName = account.UserName; client.ApiToken = account.ApiToken; return account; }
/// <summary> /// Deletes a clip. /// </summary> /// /// <param name="client"><see cref="KipptClient"/> instance.</param> public void Delete(KipptClient client) { client.Api<KipptClip>(ApiCommand.Clip, HttpMethod.Delete, Id); }
/// <summary> /// Creates a clip. /// </summary> /// /// <param name="client"><see cref="KipptClient"/> instance.</param> /// /// <remarks> /// * Url (required). /// * Title (optional). /// * Notes (optional). /// * Resource uri of a list (otherwise it will be saved to inbox). /// * Is starred (optional). /// * Is read later (optional). /// </remarks> /// /// <returns>Created <see cref="KipptClip"/> object.</returns> public KipptClip Create(KipptClient client) { return client.Api<KipptClip>(ApiCommand.Clips, HttpMethod.Post, JsonHelper.Serialize<KipptClip>(this)); }
/// <summary> /// Returns a collection of feed items. /// </summary> /// /// <param name="client"><see cref="KipptClient"/> instance.</param> public static KipptClipCollection GetFeed(KipptClient client) { return client.Api<KipptClipCollection>(ApiCommand.Feed, HttpMethod.Get); }
/// <summary> /// Unlike a clip. /// </summary> /// /// <param name="client"><see cref="KipptClient"/> instance.</param> /// <param name="clipId">Clip id.</param> public static void UnLikeClip(KipptClient client, int clipId) { client.Api<object>(ApiCommand.ClipLikes, HttpMethod.Delete, clipId); }
/// <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 KipptComment AddComment(KipptClient client, int clipId, string commentText) { var comment = new KipptComment(); comment.Body = commentText; return client.Api<KipptComment>(ApiCommand.ClipComments, HttpMethod.Post, JsonHelper.Serialize<KipptComment>(comment), clipId); }
/// <summary> /// Mark all notifications as seen. /// </summary> /// /// <param name="client"><see cref="KipptClient"/> instance.</param> public static void MarkNotificationsAsSeen(KipptClient client) { client.Api<object>(ApiCommand.Notifications, HttpMethod.Post, JsonHelper.Serialize<KipptAction>(new KipptAction("mark_seen"))); }
/// <summary> /// Returns a collection of notifications. /// </summary> /// /// <param name="client"><see cref="KipptClient"/> instance.</param> public static KipptNotificationCollection GetNotifications(KipptClient client) { return client.Api<KipptNotificationCollection>(ApiCommand.Notifications, 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 KipptUser GetUser(KipptClient client, int userId) { return client.Api<KipptUser>(ApiCommand.User, HttpMethod.Get, userId); }
/// <summary> /// Returns the logged-in user profile. /// </summary> /// /// <param name="client"><see cref="KipptClient"/> instance.</param> public static KipptUser Me(KipptClient client) { return client.Api<KipptUser>(ApiCommand.Account, 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 KipptClipCollection GetFavoriteClips(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)); return client.Api<KipptClipCollection>(ApiCommand.ClipFavorites, HttpMethod.Get, parameters); }
/// <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 KipptList GetList(KipptClient client, int id) { return client.Api<KipptList>(ApiCommand.List, HttpMethod.Get, id); }
/// <summary> /// Remove clip from favorites. /// </summary> /// /// <param name="client"><see cref="KipptClient"/> instance.</param> /// <param name="clipId">Clip id.</param> public static void UnFavoriteClip(KipptClient client, int clipId) { client.Api<object>(ApiCommand.FavoriteClip, HttpMethod.Delete, 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 bool IsFollowing(KipptClient client, int listId) { var relationship = client.Api<KipptRelationship>(ApiCommand.ListRelationship, HttpMethod.Get, listId); return relationship.Following; }
/// <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 DeleteComment(KipptClient client, int clipId, int commentId) { client.Api<object>(ApiCommand.DeleteComment, HttpMethod.Delete, clipId, commentId); }
/// <summary> /// Unfollow a list. /// </summary> /// /// <param name="client"><see cref="KipptClient"/> instance.</param> /// <param name="listId">List id.</param> public static void UnFollowList(KipptClient client, int listId) { client.Api<KipptRelationship>(ApiCommand.ListRelationship, HttpMethod.Post, JsonHelper.Serialize<KipptAction>(new KipptAction("unfollow")), listId); }
/// <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 KipptClipCollection GetClipsByList(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)); return client.Api<KipptClipCollection>(ApiCommand.Clips, HttpMethod.Get, parameters); }
/// <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 KipptListCollection Search(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); return client.Api<KipptListCollection>(ApiCommand.ListSearch, HttpMethod.Get, parameters); }
/// <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 KipptClipCollection Search(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"); return client.Api<KipptClipCollection>(ApiCommand.ClipSearch, HttpMethod.Get, parameters); }
/// <summary> /// Updates a list. /// </summary> /// /// <param name="client"><see cref="KipptClient"/> instance.</param> /// /// <returns>Updated <see cref="KipptList"/> instance.</returns> public KipptList Update(KipptClient client) { return client.Api<KipptList>(ApiCommand.List, HttpMethod.Put, JsonHelper.Serialize<KipptList>(this), this.Id); }
/// <summary> /// Updates a clip. /// </summary> /// /// <param name="client"><see cref="KipptClient"/> instance.</param> /// /// <returns>Updated <see cref="KipptClip"/> object.</returns> public KipptClip Update(KipptClient client) { return client.Api<KipptClip>(ApiCommand.Clip, HttpMethod.Put, JsonHelper.Serialize<KipptClip>(this), Id); }
/// <summary> /// Deleted a list. /// </summary> /// /// <param name="client"><see cref="KipptClient"/> instance.</param> public void Delete(KipptClient client) { client.Api<KipptList>(ApiCommand.List, HttpMethod.Delete, this.Id); }
/// <summary> /// Returns a clip by its id. /// </summary> /// /// <param name="client"><see cref="KipptClient"/> instance.</param> /// <param name="id">Clip id.</param> public static KipptClip GetClip(KipptClient client, int id) { return client.Api<KipptClip>(ApiCommand.Clip, HttpMethod.Get, id); }
/// <summary> /// Follow a user. /// </summary> /// /// <param name="client"><see cref="KipptClient"/> instance.</param> /// <param name="userId">User to follow.</param> public static void FollowUser(KipptClient client, int userId) { client.Api<KipptRelationship>(ApiCommand.UserRelationship, HttpMethod.Post, JsonHelper.Serialize<KipptAction>(new KipptAction("follow")), userId); }