pub struct LemmyClient { /* private fields */ }
Expand description

API wrapper for lemmy

Implementations§

source§

impl LemmyClient

source

pub fn new(options: ClientOptions) -> Self

Creates a new LemmyClient.

§Examples
use lemmy_client::{LemmyClient, ClientOptions};
let client = LemmyClient::new(ClientOptions {
    domain: String::from("lemmy.ml"),
    secure: true
});
source

pub fn headers(&self) -> &HashMap<String, String>

Map of headers that will be included with each request.

source

pub fn headers_mut(&mut self) -> &mut HashMap<String, String>

Mutable map of headers that will be included with each request. Use this method if you want to add headers other than the JWT.

source

pub fn set_jwt(&mut self, jwt: &str)

Set the jwt to be included with each subsequent request.

source

pub fn remove_jwt(&mut self)

Remove the jwt if it is already set.

source

pub async fn get_site(&self) -> Result<GetSiteResponse, Error>

Gets the site and, if you pass an authorized JWT, information about the logged in user.

HTTP GET /site

source

pub async fn create_site( &self, form: CreateSite ) -> Result<GetSiteResponse, Error>

Creates site during initial setup.

HTTP POST /site

source

pub async fn edit_site(&self, form: EditSite) -> Result<GetSiteResponse, Error>

Edits your site.

HTTP PUT /site

source

pub async fn get_modlog( &self, form: GetModlog ) -> Result<GetModlogResponse, Error>

Gets the modlog.

HTTP GET /modlog

source

pub async fn search(&self, form: Search) -> Result<SearchResponse, Error>

Searches for content.

HTTP GET /search

source

pub async fn resolve_object( &self, form: ResolveObject ) -> Result<ResolveObjectResponse, Error>

Fetches an object from a non-local instance.

HTTP GET /resolve_object

source

pub async fn get_community( &self, form: GetCommunity ) -> Result<GetCommunityResponse, Error>

Gets a community.

HTTP GET /community

source

pub async fn create_community( &self, form: CreateCommunity ) -> Result<GetCommunityResponse, Error>

Creates a new community.

HTTP POST /community

source

pub async fn edit_community( &self, form: EditCommunity ) -> Result<GetCommunityResponse, Error>

Edits a community.

HTTP PUT /community

source

pub async fn hide_community( &self, form: HideCommunity ) -> Result<GetCommunityResponse, Error>

Hides a community from public view.

HTTP PUT /community_hide

source

pub async fn list_communities( &self, form: ListCommunities ) -> Result<ListCommunitiesResponse, Error>

Lists communities.

HTTP GET /community/list

source

pub async fn follow_community( &self, form: FollowCommunity ) -> Result<GetCommunityResponse, Error>

Subscribes to a community.

HTTP POST /community/follow

source

pub async fn block_community( &self, form: BlockCommunity ) -> Result<GetCommunityResponse, Error>

Blocks a community.

HTTP POST /community/block

source

pub async fn delete_community( &self, form: DeleteCommunity ) -> Result<GetCommunityResponse, Error>

Deletes a community.

HTTP POST /community/delete

source

pub async fn remove_community( &self, form: RemoveCommunity ) -> Result<GetCommunityResponse, Error>

Removes a community (moderation action).

HTTP POST /community/remove

source

pub async fn transfer_community( &self, form: TransferCommunity ) -> Result<GetCommunityResponse, Error>

Transfers a community you own to another user on that community’s moderation team.

HTTP POST community/transfer

source

pub async fn ban_from_community( &self, form: BanFromCommunity ) -> Result<BanFromCommunityResponse, Error>

Bans a user from a community.

HTTP POST /community/ban_user

source

pub async fn add_mod_to_community( &self, form: AddModToCommunity ) -> Result<AddModToCommunityResponse, Error>

Adds a moderator to your community.

HTTP POST /community/mod

source

pub async fn get_federated_instances( &self, form: FederatedInstances ) -> Result<GetFederatedInstancesResponse, Error>

Gets the instances that are federated with your instance.

HTTP GET /federated_instances

source

pub async fn get_post(&self, form: GetPost) -> Result<GetPostResponse, Error>

Gets post.

HTTP GET /post

source

pub async fn create_post( &self, form: CreatePost ) -> Result<GetPostResponse, Error>

Creates a post.

HTTP POST /post

source

pub async fn edit_post(&self, form: EditPost) -> Result<GetPostResponse, Error>

Edits a post you have already created.

HTTP PUT /post

source

pub async fn delete_post( &self, form: DeletePost ) -> Result<GetPostResponse, Error>

Deletes a post you have made.

HTTP POST /post/delete

source

pub async fn remove_post( &self, form: RemovePost ) -> Result<GetPostResponse, Error>

Removes a post (moderator action).

HTTP POST /post/remove

source

pub async fn mark_post_as_read( &self, form: MarkPostAsRead ) -> Result<GetPostResponse, Error>

Marks a post as read.

HTTP POST /post/mark_as_read

source

pub async fn lock_post(&self, form: LockPost) -> Result<GetPostResponse, Error>

Prevents users from commenting on the post (moderator action).

HTTP POST /post/lock

source

pub async fn feature_post( &self, form: FeaturePost ) -> Result<GetPostResponse, Error>

Pins a post to the top of the community page (moderator action).

HTTP POST /post/feature

source

pub async fn list_posts( &self, form: GetPosts ) -> Result<GetPostsResponse, Error>

Gets posts with a variety of filters.

HTTP GET /post/list

source

pub async fn like_post( &self, form: CreatePostLike ) -> Result<GetPostResponse, Error>

Votes on a post.

HTTP POST /post/like

source

pub async fn list_post_likes( &self, form: ListPostLikes ) -> Result<ListPostLikesResponse, Error>

Lists the likes for a post.

HTTP GET /post/like/list

source

pub async fn save_post(&self, form: SavePost) -> Result<GetPostResponse, Error>

Saves a post to your favorites list.

HTTP PUT /post/save

source

pub async fn report_post( &self, form: CreatePostReport ) -> Result<PostReportResponse, Error>

Reports a post to the moderator team of the community the post is in, the admin team of your instance, and the admin team of the poster’s instance.

HTTP POST /post/report

source

pub async fn resolve_post_report( &self, form: ResolvePostReport ) -> Result<PostReportResponse, Error>

Resolves a post report (moderator action).

HTTP PUT /post/report/resolve

source

pub async fn list_post_reports( &self, form: ListPostReports ) -> Result<ListPostReportsResponse, Error>

Gets reports of posts that you are able to moderate.

HTTP GET /post/report/list

source

pub async fn get_post_url_metadata( &self, form: GetSiteMetadata ) -> Result<GetSiteMetadataResponse, Error>

Gets the metadata of a given site.

HTTP POST /post/site_metadata

source

pub async fn get_comment( &self, form: GetComment ) -> Result<CommentResponse, Error>

Gets a comment.

HTTP GET /comment

source

pub async fn create_comment( &self, form: CreateComment ) -> Result<CommentResponse, Error>

Creates a new comment.

HTTP POST /comment

source

pub async fn edit_comment( &self, form: EditComment ) -> Result<CommentResponse, Error>

Edits one of your already-created comments.

HTTP PUT /comment

source

pub async fn delete_comment( &self, form: DeleteComment ) -> Result<CommentResponse, Error>

Deletes one of your already-existing comments.

HTTP POST /comment/delete

source

pub async fn remove_comment( &self, form: RemoveComment ) -> Result<CommentResponse, Error>

Removes a post (moderator action).

HTTP POST /comment/remove

source

pub async fn mark_reply_as_read( &self, form: MarkCommentReplyAsRead ) -> Result<CommentReplyResponse, Error>

Marks a reply to one of your posts or comments as read.

HTTP POST /comment/mark_as_read

source

pub async fn distinguish_comment( &self, form: DistinguishComment ) -> Result<CommentResponse, Error>

Pins a comment to the top of a post’s comment section (speak as moderator).

HTTP POST /comment/distinguish

source

pub async fn like_comment( &self, form: CreateCommentLike ) -> Result<CommentResponse, Error>

Votes on a comment.

HTTP POST /comment/like

source

pub async fn list_comment_likes( &self, form: ListCommentLikes ) -> Result<ListCommentLikesResponse, Error>

Gets the votes for a comment.

HTTP GET /comment/like/list

source

pub async fn save_comment( &self, form: SaveComment ) -> Result<CommentResponse, Error>

Saves a comment to your favorites list.

HTTP PUT /comment/save

source

pub async fn list_comments( &self, form: GetComments ) -> Result<GetCommentsResponse, Error>

Gets comments with various filters.

HTTP GET /comment/list

source

pub async fn create_comment_report( &self, form: CreateCommentReport ) -> Result<CommentResponse, Error>

Reports a comment to the moderator team of the community the comment is in, your instance’s admin team, and the commentor’s instance’s admin team.

HTTP POST /comment/report

source

pub async fn resolve_comment_report( &self, form: ResolveCommentReport ) -> Result<CommentReportResponse, Error>

Resolves a report on a comment made in a community you moderate or instance you administrate.

HTTP PUT /comment/report/resolve

source

pub async fn list_comment_reports( &self, form: ListCommentReports ) -> Result<ListCommentReportsResponse, Error>

Lists reports for comments in communities you moderate or instances you adminstrate.

HTTP GET /comment/report/list

source

pub async fn create_private_message( &self, form: CreatePrivateMessage ) -> Result<PrivateMessageResponse, Error>

Creates and send a private message to another user.

HTTP POST /private_message

source

pub async fn edit_private_message( &self, form: EditPrivateMessage ) -> Result<PrivateMessageResponse, Error>

Edits a private message you have already sent.

HTTP PUT /private_message

source

pub async fn list_private_messages( &self, form: GetPrivateMessages ) -> Result<PrivateMessagesResponse, Error>

Lists private messages that have been sent to you.

HTTP GET /private_message/list

source

pub async fn delete_private_message( &self, form: DeletePrivateMessage ) -> Result<PrivateMessageResponse, Error>

Deletes a private that you have already sent.

HTTP POST /private_message/delete

source

pub async fn mark_private_message_as_read( &self, form: MarkPrivateMessageAsRead ) -> Result<PrivateMessageResponse, Error>

Marks a private message that was sent to you as read.

HTTP POST /private_message/mark_as_read

source

pub async fn create_private_message_report( &self, form: CreatePrivateMessageReport ) -> Result<PrivateMessageReportResponse, Error>

Reports a private message that was sent to you to your instance’s admin team and the sender’s instance’s admin team.

HTTP POST /private_message/report

source

pub async fn resolve_private_message_report( &self, form: ResolvePrivateMessageReport ) -> Result<PrivateMessageReportResponse, Error>

Resolves a report of a private message sent to a user on the instance you administrate.

HTTP PUT /private_message/report/resolve

source

pub async fn list_private_message_reports( &self, form: ListPrivateMessageReports ) -> Result<ListPrivateMessageReportsResponse, Error>

Lists reports of private messages received on the isntance you administrate.

HTTP GET /private_message/report/list

source

pub async fn get_person( &self, form: GetPersonDetails ) -> Result<GetPersonDetailsResponse, Error>

Gets the publicly viewable details of a user’s account.

HTTP GET /user

source

pub async fn register_account( &self, form: Register ) -> Result<RegistrationApplicationResponse, Error>

Registers a new account on an instance.

HTTP POST /user/register

source

pub async fn get_captcha(&self) -> Result<GetCaptchaResponse, Error>

Gets a captcha.

HTTP GET /user/get_captcha

source

pub async fn export_settings(&self) -> Result<String, Error>

Exports a backup of your user settings - including your saved content, followed communities, and blocks - as JSON.

HTTP GET /user/export_settings

source

pub async fn import_settings( &self, form: String ) -> Result<SuccessResponse, Error>

Imports a backup of your user settings.

HTTP POST /user/import_settings

source

pub async fn list_mentions( &self, form: GetPersonMentions ) -> Result<GetPersonMentionsResponse, Error>

Gets mentions of the authenticated user.

HTTP GET /user/mention

source

pub async fn mark_mention_as_read( &self, form: MarkPersonMentionAsRead ) -> Result<PersonMentionResponse, Error>

Marks a mention as read.

HTTP POST /user/mention/mark_as_read

source

pub async fn list_replies( &self, form: GetReplies ) -> Result<GetRepliesResponse, Error>

Gets replies to your posts and comments.

HTTP GET /user/replies

source

pub async fn ban_from_site( &self, form: BanPerson ) -> Result<BanPersonResponse, Error>

Bans a person from your instance.

HTTP POST /user/ban

source

pub async fn list_banned_users(&self) -> Result<BannedPersonsResponse, Error>

Gets users banned who are banned from your isntance.

HTTP GET /user/banned

source

pub async fn block_person( &self, form: BlockPerson ) -> Result<BlockPersonResponse, Error>

Blocks a person.

HTTP POST /user/block

source

pub async fn login(&self, form: Login) -> Result<LoginResponse, Error>

Logs into the instance, giving you a JWT to use to make authorized requests.

HTTP POST /user/login

source

pub async fn logout(&self) -> Result<String, Error>

Deletes the active session associated with the JWT.

HTTP POST /user/logout

source

pub async fn delete_account( &self, form: DeleteAccount ) -> Result<GetPersonDetailsResponse, Error>

Deletes your account.

HTTP POST /user/delete_account

source

pub async fn reset_password( &self, form: PasswordReset ) -> Result<SuccessResponse, Error>

Sends an email to your account (if you have one) with a one time link to change your password. Use this if you forgot your password.

HTTP POST /user/password_reset

source

pub async fn change_password_after_reset( &self, form: PasswordChangeAfterReset ) -> Result<SuccessResponse, Error>

Follows through with one time link password reset request.

HTTP POST /user/password_change

source

pub async fn mark_all_notifications_as_read( &self ) -> Result<GetRepliesResponse, Error>

Marks all notifications (replies, mentions, private messages) as read.

HTTP POST /user/mark_all_as_read

source

pub async fn save_user_settings( &self, form: SaveUserSettings ) -> Result<SuccessResponse, Error>

Saves your account settings.

HTTP PUT /user/save_user_settings

source

pub async fn change_password( &self, form: ChangePassword ) -> Result<LoginResponse, Error>

Changes your password if you are already logged in.

HTTP PUT /user/change_password

source

pub async fn report_count( &self, form: GetReportCount ) -> Result<GetReportCountResponse, Error>

Gets number of reports you can resolve.

HTTP GET /user/report_count

source

pub async fn unread_count(&self) -> Result<GetUnreadCountResponse, Error>

Gets the number of unread notifications.

HTTP GET /user/unread_count

source

pub async fn verify_email( &self, form: VerifyEmail ) -> Result<SuccessResponse, Error>

Verifies your email. Used when the instance you are registering an account on requires email verification.

HTTP POST /user/verify_email

source

pub async fn leave_admin(&self) -> Result<GetSiteResponse, Error>

Leave your instance’s admin team.

HTTP POST /user/leave_admin

source

pub async fn generate_totp_secret( &self ) -> Result<GenerateTotpSecretResponse, Error>

Generates a secret to enable time-based one time passwords for two-factor authentication.

After this, you will need to call /user/totp/update with a vaild token to enable it.

HTTP POST /user/totp/generate

source

pub async fn update_totp( &self, form: UpdateTotp ) -> Result<UpdateTotpResponse, Error>

Enables/disables two-factor authentivation.

To enable, you must first call /user/totp/generate to generate a token to pass to this.

You can only disable this if it is already enabled. Again, you must pass a valid TOTP.

HTTP POST /user/totp/update

source

pub async fn list_logins(&self) -> Result<Vec<LoginToken>, Error>

Lists login tokens for your user’s active sessions.

HTTP GET /user/list_logins

source

pub async fn validate_auth(&self) -> Result<SuccessResponse, Error>

Returns an error message if your auth token is invalid.

HTTP GET /user/validate_auth

source

pub async fn add_admin(&self, form: AddAdmin) -> Result<AddAdminResponse, Error>

Adds a user to your instance’s admin team.

HTTP POST admin/add

source

pub async fn unread_registration_application_count( &self ) -> Result<GetUnreadRegistrationApplicationCountResponse, Error>

Gets the number of unread registration applications for the instance you administrate.

HTTP GET /admin/registration_application/count

source

pub async fn list_registration_applications( &self, form: ListRegistrationApplications ) -> Result<ListRegistrationApplicationsResponse, Error>

Gets applications to register an account on the instance you administer.

HTTP GET /admin/registration_application/list

source

pub async fn approve_registration_application( &self, form: ApproveRegistrationApplication ) -> Result<RegistrationApplicationResponse, Error>

Approves a pending registration application.

HTTP PUT /admin/registration_application/approve

source

pub async fn purge_person( &self, form: PurgePerson ) -> Result<SuccessResponse, Error>

Purges a user from the database.

HTTP POST /admin/purge/person

source

pub async fn purge_community( &self, form: PurgeCommunity ) -> Result<SuccessResponse, Error>

Purges a community from the database.

HTTP POST /admin/purge/community

source

pub async fn purge_post( &self, form: PurgePost ) -> Result<SuccessResponse, Error>

Purges a post from the datbase.

HTTP POST /admin/purge/post

source

pub async fn purge_comment( &self, form: PurgeComment ) -> Result<SuccessResponse, Error>

Purges a comment from the database.

HTTP POST /admin/purge/comment

source

pub async fn create_custom_emoji( &self, form: CreateCustomEmoji ) -> Result<CustomEmojiResponse, Error>

Creates a custom emoji.

HTTP POST /custom_emoji

source

pub async fn edit_custom_emoji( &self, form: EditCustomEmoji ) -> Result<CustomEmojiResponse, Error>

Edits an existing custom emoji.

HTTP PUT /custom_emoji

source

pub async fn delete_custom_emoji( &self, form: DeleteCustomEmoji ) -> Result<CustomEmojiResponse, Error>

Deletes an existing custom emoji.

HTTP POST /custom_emoji/delete

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more