piefed_api_client 0.7.2
piefed_api_client: ^0.7.2 copied to clipboard
A Future-based http client for the PieFed API.
Changelog #
0.7.2 #
- PieFed v1.6.0 Support:
- Added
GetFeedquery (GET/feed). - Added
BanUser(POST/user/ban) andUnbanUser(POST/user/unban) queries. - Added
FeedViewandTopicViewmodels.
- Added
- Improvements:
ListFeedsResponseis now strongly typed (returnsList<FeedView>instead ofList<dynamic>).
0.7.1 #
- Fixes:
GetPersonDetails: Added missing parameters from the API spec:includeContent- Critical: The PieFed API defaults this tofalse, which causes posts and comments to be returned as empty lists. PassincludeContent: trueto retrieve user posts and comments.sort- Sort order for posts/comments (e.g., "New", "Top", "Hot")page- Page number for pagination (defaults to 1)limit- Items per page (defaults to 20)communityId- Filter posts/comments to a specific communitysavedOnly- Only return saved posts/comments
0.7.0 #
- PieFed v1.4 Support:
- Added support for Polls (
PostPoll,PollChoice,PollVote). - Added support for Events (
PostEvent,PostType.event). - Added support for Emoji Reactions on posts and comments (
Reactions). - Added support for AI Tagging on posts and communities.
- Added support for Answer Comments (
Comment.answer). - Added support for Extra User Fields (
UserExtraField). - Added support for Community Flairs (
CommunityFlair,PostView.flairList).
- Added support for Polls (
- Model Updates:
Post: AddedaiGenerated,poll,event,emojiReactions,tags(as String for hashtags),postType,crossPosts.Person: Addedabout(markdown),extraFields,note,flair.Comment: Addedanswer,emojiReactions.CreatePost: AddedaiGenerated,poll,event.CreateComment: Addedanswer.
0.6.5 #
-
Fixes:
- CommentAggregates:
score,upvotes,downvotes,childCountnow default to0when null in API response. - PostAggregates:
comments,score,upvotes,downvotesnow default to0when null in API response. - PersonAggregates:
postCount,commentCountnow default to0when null in API response. - CommunityAggregates:
postCount,postReplyCount,subscriptionsCountnow default to0when null in API response. - GetUnreadCountResponse:
replies,mentions,privateMessagesnow default to0when null in API response. - CommentView.counts: Now nullable to handle cases where the entire counts object is null.
- CommentAggregates:
-
Tests:
- Added comprehensive null value handling tests (
test/null_values_test.dart).
- Added comprehensive null value handling tests (
0.6.4 #
- Fixes:
PersonView.counts: Now nullable to handle/user/meendpoint returningnullfor counts.
0.6.3 #
- Fixes:
GetPost&GetCommunity(and related): Fixed response parsing schema mismatch. The API returns nestedpost_view/community_viewobjects, but the library expected flattened fields. The client now correctly unwraps these nested objects.
0.6.2 #
- Fixes:
PostView: Now correctly handles missing/nullcreator_blockedandcreator_banned_from_communityfields (defaults to false), resolving deserialization crashes onpiefed.social.PieFedApiV1: AddedapiPrefixconfiguration to constructor (defaulting to/api/alpha) to support instances using different API paths.
0.6.1 #
- Fixes:
Instance.version: Now nullable to handle missing field in API responses.Community.apId: Mapped fromactor_idinstead ofap_idto match live API.CommunityView&PostView: Correctly parsesubscribedfield when returned as a String ("Subscribed"/"NotSubscribed").
- Tests:
- Added comprehensive full-model serialization tests (
test/full_models_test.dart). - Added API response parsing tests with mocks (
test/response_parsing_test.dart). - Added live integration tests against
crust.piefed.social(test/live_api_test.dart).
- Added comprehensive full-model serialization tests (
0.6.0 #
- Implemented Phase 10: Moderation & Advanced Interactions
BlockCommunity,BlockDomainFeaturePost,RemovePost,RemoveCommentGetCommunityBansPollVote,GetSiteMetadata
0.5.0 #
- Implemented Phase 9: Creation & Advanced Messaging
CreateCommunity(POST /community)UploadImage(POST /upload/image)UploadCommunityImage(POST /upload/community_image)EditPrivateMessage(PUT /private_message)DeletePrivateMessage(POST /private_message/delete)MarkAllPMsAsRead(POST /private_message/mark_all_read)LeaveConversation(POST /private_message/conversation/leave)
0.4.0 #
- Implemented Phase 7: Community Discovery & Feeds
ListCommunities(GET /community/list)ListFeeds(GET /feed/list)ListTopics(GET /topic/list)GetPostReplies(GET /post/replies)
- Implemented Phase 8: Content Management (Edit & Delete)
EditPost(PUT /post)DeletePost(POST /post/delete)EditComment(PUT /comment)DeleteComment(POST /comment/delete)EditCommunity(PUT /community)DeleteCommunity(POST /community/delete)
0.3.0 #
- Added Phase 5 Site & Instance APIs:
GetSiteVersionBlockInstanceGetInstanceChooserSearchInstances
- Added Phase 6 Creation & Advanced APIs:
CreatePostCreateCommentCreatePrivateMessageReportPost,ReportCommentMarkPostAsRead,MarkCommentAsReadAddMod
- Expanded unit tests to cover new endpoints (34 tests total).
0.2.0 #
Added #
- GetPersonDetails - Fetch user profile details
- GetMyUser - Fetch current user's profile
- GetUnreadCount - Get counts for replies, mentions, and private messages
- GetReplies - List replies to the user
- BlockUser - Block/unblock a user
- MarkAllAsRead - Mark all notifications as read
- Search - Search for posts, comments, communities, and users
- ResolveObject - Resolve federated URLs (posts, comments, etc.)
- Corresponding response models for all new queries
0.1.0 #
Added #
- ListPosts - List posts with filters
- ListComments - List comments with filters
- LikePost - Upvote/downvote posts
- LikeComment - Upvote/downvote comments
- FollowCommunity - Subscribe/unsubscribe to communities
- SavePost - Save/unsave posts
- SaveComment - Save/unsave comments
- Exported new queries in
v1.dart
0.0.1 #
- Initial version. Just experimental.