Documentation
¶
Index ¶
- Constants
- func StreamAddFilterKeywordHandler(repo FilterStorer) warpnet.WarpHandlerFunc
- func StreamAuthorizeFollowRequestHandler(repo FollowingStorer) warpnet.WarpHandlerFunc
- func StreamBlockHandler(repo BlocksStorer, userRepo BlockUserFetcher, nodeRepo PeerBlocklister) warpnet.WarpHandlerFunc
- func StreamBookmarkHandler(repo BookmarkStorer) warpnet.WarpHandlerFunc
- func StreamChallengeHandler(fs FileSystem, privateKey ed25519.PrivateKey) warpnet.WarpHandlerFunc
- func StreamCreateChatHandler(repo ChatStorer, userRepo ChatUserFetcher, streamer ChatStreamer) warpnet.WarpHandlerFunc
- func StreamDeleteChatHandler(repo ChatStorer, authRepo ChatAuthStorer) warpnet.WarpHandlerFunc
- func StreamDeleteFilterHandler(repo FilterStorer) warpnet.WarpHandlerFunc
- func StreamDeleteFilterKeywordHandler(repo FilterStorer) warpnet.WarpHandlerFunc
- func StreamDeleteMessageHandler(repo ChatStorer, authRepo OwnerChatsStorer) warpnet.WarpHandlerFunc
- func StreamDeleteReplyHandler(tweetRepo ReplyTweetStorer, userRepo ReplyUserFetcher, replyRepo ReplyStorer, ...) warpnet.WarpHandlerFunc
- func StreamDeleteTweetHandler(broadcaster TweetBroadcaster, authRepo OwnerTweetStorer, repo TweetsStorer, ...) warpnet.WarpHandlerFunc
- func StreamEditTweetHandler(repo TweetsStorer, timelineRepo TimelineUpdater) warpnet.WarpHandlerFunc
- func StreamFollowHandler(broadcaster FollowingBroadcaster, followRepo FollowingStorer, ...) warpnet.WarpHandlerFunc
- func StreamGetBlocksHandler(repo BlocksStorer) warpnet.WarpHandlerFunc
- func StreamGetBookmarksHandler(repo BookmarkStorer) warpnet.WarpHandlerFunc
- func StreamGetFilterHandler(repo FilterStorer) warpnet.WarpHandlerFunc
- func StreamGetFiltersHandler(repo FilterStorer) warpnet.WarpHandlerFunc
- func StreamGetFollowRequestsHandler(repo FollowingStorer) warpnet.WarpHandlerFunc
- func StreamGetFollowersHandler(authRepo FollowingAuthStorer, userRepo FollowingUserStorer, ...) warpnet.WarpHandlerFunc
- func StreamGetFollowingsHandler(authRepo FollowingAuthStorer, userRepo FollowingUserStorer, ...) warpnet.WarpHandlerFunc
- func StreamGetImageHandler(streamer MediaStreamer, mediaRepo MediaStorer, userRepo MediaUserFetcher) warpnet.WarpHandlerFunc
- func StreamGetInfoHandler(i NodeInformer, discHandler discovery.DiscoveryHandler) warpnet.WarpHandlerFunc
- func StreamGetMediaHandler(repo MediaMetaStorer) warpnet.WarpHandlerFunc
- func StreamGetMessageHandler(repo ChatStorer, authRepo OwnerChatsStorer) warpnet.WarpHandlerFunc
- func StreamGetMessagesHandler(repo ChatStorer, authRepo OwnerChatsStorer) warpnet.WarpHandlerFunc
- func StreamGetMutesHandler(repo MutesStorer) warpnet.WarpHandlerFunc
- func StreamGetNotificationHandler(repo NotifierGetter, authRepo NotifierAuthStorer) warpnet.WarpHandlerFunc
- func StreamGetNotificationsHandler(repo NotifierFetcher, authRepo NotifierAuthStorer) warpnet.WarpHandlerFunc
- func StreamGetRepliesHandler(repo ReplyStorer) warpnet.WarpHandlerFunc
- func StreamGetReplyHandler(repo ReplyStorer, authRepo OwnerTweetStorer, userRepo TweetUserFetcher, ...) warpnet.WarpHandlerFunc
- func StreamGetStatsHandler(i StatsNodeInformer, db StatsProvider) warpnet.WarpHandlerFunc
- func StreamGetTweetHandler(repo TweetsStorer, authRepo OwnerTweetStorer, userRepo TweetUserFetcher, ...) warpnet.WarpHandlerFunc
- func StreamGetTweetLikersHandler(repo LikersLister, userRepo LikedUserFetcher, streamer EngagementStreamer) warpnet.WarpHandlerFunc
- func StreamGetTweetRetweetersHandler(repo RetweetersLister, userRepo LikedUserFetcher, streamer EngagementStreamer) warpnet.WarpHandlerFunc
- func StreamGetTweetStatsHandler(tweetRepo TweetsStorer, likeRepo LikeTweetStorer, ...) warpnet.WarpHandlerFunc
- func StreamGetTweetsHandler(repo TweetsStorer, userRepo TweetUserFetcher, streamer TweetStreamer) warpnet.WarpHandlerFunc
- func StreamGetUserChatHandler(repo ChatStorer, authRepo ChatAuthStorer) warpnet.WarpHandlerFunc
- func StreamGetUserChatsHandler(repo ChatStorer, authRepo OwnerChatsStorer) warpnet.WarpHandlerFunc
- func StreamGetUserHandler(tweetRepo UserTweetsCounter, followRepo UserFollowsCounter, repo UserFetcher, ...) warpnet.WarpHandlerFunc
- func StreamGetUsersHandler(userRepo UserFetcher, streamer UserStreamer) warpnet.WarpHandlerFunc
- func StreamGetWhoToFollowHandler(authRepo UserAuthStorer, userRepo UserFetcher, followRepo UserFollowsCounter) warpnet.WarpHandlerFunc
- func StreamIsFollowerHandler(followRepo FollowingStorer, authRepo FollowingAuthStorer) warpnet.WarpHandlerFunc
- func StreamIsFollowingHandler(followRepo FollowingStorer, authRepo FollowingAuthStorer) warpnet.WarpHandlerFunc
- func StreamLikeHandler(repo LikesStorer, userRepo LikedUserFetcher, notifyRepo ModerationNotifier, ...) warpnet.WarpHandlerFunc
- func StreamMarkNotificationReadHandler(repo NotifierMarker, authRepo NotifierAuthStorer) warpnet.WarpHandlerFunc
- func StreamModerationResultHandler(notifyRepo ModerationNotifier, tweetRepo ModerationTweetUpdater, ...) warpnet.WarpHandlerFunc
- func StreamMuteHandler(repo MutesStorer) warpnet.WarpHandlerFunc
- func StreamNewFilterHandler(repo FilterStorer) warpnet.WarpHandlerFunc
- func StreamNewMessageHandler(repo ChatStorer, userRepo ChatUserFetcher, streamer ChatStreamer) warpnet.WarpHandlerFunc
- func StreamNewReTweetHandler(userRepo RetweetedUserFetcher, tweetRepo ReTweetsStorer, ...) warpnet.WarpHandlerFunc
- func StreamNewReplyHandler(replyRepo ReplyStorer, userRepo ReplyUserFetcher, ...) warpnet.WarpHandlerFunc
- func StreamNewTweetHandler(broadcaster TweetBroadcaster, authRepo OwnerTweetStorer, ...) warpnet.WarpHandlerFunc
- func StreamNodesPairingHandler(serverToken string, deviceRepo DeviceStorer, n NodeAddresser) warpnet.WarpHandlerFunc
- func StreamPinTweetHandler(repo TweetsStorer) warpnet.WarpHandlerFunc
- func StreamRejectFollowRequestHandler(repo FollowingStorer) warpnet.WarpHandlerFunc
- func StreamSearchUsersHandler(userRepo UserFetcher) warpnet.WarpHandlerFunc
- func StreamSubscribeUserHandler(repo SubscriptionStorer) warpnet.WarpHandlerFunc
- func StreamTimelineHandler(repo TimelineFetcher) warpnet.WarpHandlerFunc
- func StreamUnblockHandler(repo BlocksStorer, userRepo BlockUserFetcher, nodeRepo PeerBlocklister) warpnet.WarpHandlerFunc
- func StreamUnbookmarkHandler(repo BookmarkStorer) warpnet.WarpHandlerFunc
- func StreamUnfollowHandler(broadcaster FollowingBroadcaster, followRepo FollowingStorer, ...) warpnet.WarpHandlerFunc
- func StreamUnlikeHandler(repo LikesStorer, userRepo LikedUserFetcher, streamer LikeStreamer) warpnet.WarpHandlerFunc
- func StreamUnmuteHandler(repo MutesStorer) warpnet.WarpHandlerFunc
- func StreamUnpinTweetHandler(repo TweetsStorer) warpnet.WarpHandlerFunc
- func StreamUnretweetHandler(tweetRepo ReTweetsStorer, userRepo RetweetedUserFetcher, ...) warpnet.WarpHandlerFunc
- func StreamUnsubscribeUserHandler(repo SubscriptionStorer) warpnet.WarpHandlerFunc
- func StreamUpdateFilterHandler(repo FilterStorer) warpnet.WarpHandlerFunc
- func StreamUpdateFilterKeywordHandler(repo FilterStorer) warpnet.WarpHandlerFunc
- func StreamUpdateMediaMetaHandler(repo MediaMetaStorer) warpnet.WarpHandlerFunc
- func StreamUpdateProfileHandler(authRepo UserAuthStorer, userRepo UserFetcher) warpnet.WarpHandlerFunc
- func StreamUploadImageHandler(info MediaNodeInformer, mediaRepo MediaStorer, userRepo MediaUserFetcher) warpnet.WarpHandlerFunc
- func StreamViewHandler(repo ViewsStorer, userRepo LikedUserFetcher, streamer LikeStreamer) warpnet.WarpHandlerFunc
- type BlockUserFetcher
- type BlocksStorer
- type BookmarkStorer
- type CRDTLikesCounter
- type CRDTRepliesCounter
- type CRDTRetweetsCounter
- type ChatAuthStorer
- type ChatStorer
- type ChatStreamer
- type ChatUserFetcher
- type DeviceStorer
- type EngagementStreamer
- type FileSystem
- type FilterStorer
- type FollowNodeStreamer
- type FollowingAuthStorer
- type FollowingBroadcaster
- type FollowingStorer
- type FollowingUserStorer
- type LikeStreamer
- type LikeTweetStorer
- type LikeTweetsStorer
- type LikedUserFetcher
- type LikersLister
- type LikesStorer
- type MediaMetaStorer
- type MediaNodeInformer
- type MediaStorer
- type MediaStreamer
- type MediaUserFetcher
- type ModerationNotifier
- type ModerationOwnerFetcher
- type ModerationTimelelineDeleter
- type ModerationTweetUpdater
- type MutesStorer
- type NodeAddresser
- type NodeInformer
- type NotifierAuthStorer
- type NotifierFetcher
- type NotifierGetter
- type NotifierMarker
- type OwnerChatsStorer
- type OwnerReTweetStorer
- type OwnerTweetStorer
- type PeerBlocklister
- type ReTweetsStorer
- type RepliesTweetCounter
- type ReplyStorer
- type ReplyStreamer
- type ReplyTweetStorer
- type ReplyUserFetcher
- type RetweetStreamer
- type RetweetTimelineUpdater
- type RetweetedUserFetcher
- type RetweetersLister
- type RetweetsTweetStorer
- type StatsNodeInformer
- type StatsProvider
- type SubscriptionStorer
- type TimelineFetcher
- type TimelineUpdater
- type TweetBroadcaster
- type TweetStreamer
- type TweetUserFetcher
- type TweetsStorer
- type UserAuthStorer
- type UserFetcher
- type UserFollowsCounter
- type UserStreamer
- type UserTweetsCounter
- type ViewsStorer
Constants ¶
const ( ErrTooLargeImage warpnet.WarpError = "image is too large" ErrInvalidBase64Signature warpnet.WarpError = "invalid base64 image data" ErrEmptyImageKey warpnet.WarpError = "empty image key" ErrNoImagesProvided warpnet.WarpError = "at least one image must be provided" ErrInvalidEXIF warpnet.WarpError = "invalid exif type: not a segment list" )
const ( ErrNoObjectID warpnet.WarpError = "no object id found" ErrNoUserID warpnet.WarpError = "no user id found" )
Variables ¶
This section is empty.
Functions ¶
func StreamAddFilterKeywordHandler ¶ added in v0.7.26
func StreamAddFilterKeywordHandler(repo FilterStorer) warpnet.WarpHandlerFunc
func StreamAuthorizeFollowRequestHandler ¶ added in v0.7.26
func StreamAuthorizeFollowRequestHandler(repo FollowingStorer) warpnet.WarpHandlerFunc
func StreamBlockHandler ¶ added in v0.7.26
func StreamBlockHandler(repo BlocksStorer, userRepo BlockUserFetcher, nodeRepo PeerBlocklister) warpnet.WarpHandlerFunc
func StreamBookmarkHandler ¶ added in v0.7.26
func StreamBookmarkHandler(repo BookmarkStorer) warpnet.WarpHandlerFunc
func StreamChallengeHandler ¶ added in v0.2.476
func StreamChallengeHandler(fs FileSystem, privateKey ed25519.PrivateKey) warpnet.WarpHandlerFunc
StreamChallengeHandler TODO nonce cache check
func StreamCreateChatHandler ¶
func StreamCreateChatHandler( repo ChatStorer, userRepo ChatUserFetcher, streamer ChatStreamer, ) warpnet.WarpHandlerFunc
Handler for creating a new chat
func StreamDeleteChatHandler ¶
func StreamDeleteChatHandler(repo ChatStorer, authRepo ChatAuthStorer) warpnet.WarpHandlerFunc
func StreamDeleteFilterHandler ¶ added in v0.7.26
func StreamDeleteFilterHandler(repo FilterStorer) warpnet.WarpHandlerFunc
func StreamDeleteFilterKeywordHandler ¶ added in v0.7.26
func StreamDeleteFilterKeywordHandler(repo FilterStorer) warpnet.WarpHandlerFunc
func StreamDeleteMessageHandler ¶
func StreamDeleteMessageHandler(repo ChatStorer, authRepo OwnerChatsStorer) warpnet.WarpHandlerFunc
Handler for deleting a message
func StreamDeleteReplyHandler ¶
func StreamDeleteReplyHandler( tweetRepo ReplyTweetStorer, userRepo ReplyUserFetcher, replyRepo ReplyStorer, streamer ReplyStreamer, ) warpnet.WarpHandlerFunc
func StreamDeleteTweetHandler ¶
func StreamDeleteTweetHandler( broadcaster TweetBroadcaster, authRepo OwnerTweetStorer, repo TweetsStorer, timelineRepo TimelineUpdater, likeRepo LikeTweetStorer, ) warpnet.WarpHandlerFunc
func StreamEditTweetHandler ¶ added in v0.7.26
func StreamEditTweetHandler(repo TweetsStorer, timelineRepo TimelineUpdater) warpnet.WarpHandlerFunc
func StreamFollowHandler ¶
func StreamFollowHandler( broadcaster FollowingBroadcaster, followRepo FollowingStorer, authRepo FollowingAuthStorer, userRepo FollowingUserStorer, notifyRepo ModerationNotifier, streamer FollowNodeStreamer, ) warpnet.WarpHandlerFunc
func StreamGetBlocksHandler ¶ added in v0.7.26
func StreamGetBlocksHandler(repo BlocksStorer) warpnet.WarpHandlerFunc
func StreamGetBookmarksHandler ¶ added in v0.7.26
func StreamGetBookmarksHandler(repo BookmarkStorer) warpnet.WarpHandlerFunc
func StreamGetFilterHandler ¶ added in v0.7.26
func StreamGetFilterHandler(repo FilterStorer) warpnet.WarpHandlerFunc
func StreamGetFiltersHandler ¶ added in v0.7.26
func StreamGetFiltersHandler(repo FilterStorer) warpnet.WarpHandlerFunc
func StreamGetFollowRequestsHandler ¶ added in v0.7.26
func StreamGetFollowRequestsHandler(repo FollowingStorer) warpnet.WarpHandlerFunc
func StreamGetFollowersHandler ¶
func StreamGetFollowersHandler( authRepo FollowingAuthStorer, userRepo FollowingUserStorer, followRepo FollowingStorer, streamer FollowNodeStreamer, ) warpnet.WarpHandlerFunc
func StreamGetFollowingsHandler ¶ added in v0.5.83
func StreamGetFollowingsHandler( authRepo FollowingAuthStorer, userRepo FollowingUserStorer, followRepo FollowingStorer, streamer FollowNodeStreamer, ) warpnet.WarpHandlerFunc
func StreamGetImageHandler ¶
func StreamGetImageHandler( streamer MediaStreamer, mediaRepo MediaStorer, userRepo MediaUserFetcher, ) warpnet.WarpHandlerFunc
func StreamGetInfoHandler ¶
func StreamGetInfoHandler( i NodeInformer, discHandler discovery.DiscoveryHandler, ) warpnet.WarpHandlerFunc
func StreamGetMediaHandler ¶ added in v0.7.26
func StreamGetMediaHandler(repo MediaMetaStorer) warpnet.WarpHandlerFunc
func StreamGetMessageHandler ¶
func StreamGetMessageHandler(repo ChatStorer, authRepo OwnerChatsStorer) warpnet.WarpHandlerFunc
StreamGetMessageHandler for retrieving a specific message
func StreamGetMessagesHandler ¶
func StreamGetMessagesHandler(repo ChatStorer, authRepo OwnerChatsStorer) warpnet.WarpHandlerFunc
Handler for getting messages in a chat
func StreamGetMutesHandler ¶ added in v0.7.26
func StreamGetMutesHandler(repo MutesStorer) warpnet.WarpHandlerFunc
func StreamGetNotificationHandler ¶ added in v0.7.26
func StreamGetNotificationHandler( repo NotifierGetter, authRepo NotifierAuthStorer, ) warpnet.WarpHandlerFunc
func StreamGetNotificationsHandler ¶ added in v0.5.30
func StreamGetNotificationsHandler( repo NotifierFetcher, authRepo NotifierAuthStorer, ) warpnet.WarpHandlerFunc
func StreamGetRepliesHandler ¶
func StreamGetRepliesHandler(repo ReplyStorer) warpnet.WarpHandlerFunc
StreamGetRepliesHandler answers /public/get/replies requests.
ev.RootId is the root tweet of the thread; ev.ParentId is the parent TWEET id selecting which subtree of replies to return (NOT a user id — it gets compared against tweet/reply ids in the repo). Clients send an empty ParentId for "give me the top-level replies of the thread", which we normalise to RootId so the repo lookup matches the first tier of replies. Replies are served straight from the local store: any reply we know about (because the author's node pushed it to us via gossip, or because we cached an earlier fetch) is returned; otherwise the response is empty.
Note on routing: this used to try to forward the request to the "parent user" by treating ParentId as a user id and looking it up in userRepo. That can't work — ParentId is a tweet id — so the lookup always returned ErrUserNotFound and we silently fell back to local storage anyway. The dead code is removed; proper remote-fetch routing would need a RootUserId in GetAllRepliesEvent to identify the author of the root tweet, which clients don't currently send.
func StreamGetReplyHandler ¶
func StreamGetReplyHandler( repo ReplyStorer, authRepo OwnerTweetStorer, userRepo TweetUserFetcher, streamer TweetStreamer, ) warpnet.WarpHandlerFunc
func StreamGetStatsHandler ¶
func StreamGetStatsHandler( i StatsNodeInformer, db StatsProvider, ) warpnet.WarpHandlerFunc
func StreamGetTweetHandler ¶
func StreamGetTweetHandler( repo TweetsStorer, authRepo OwnerTweetStorer, userRepo TweetUserFetcher, streamer TweetStreamer, ) warpnet.WarpHandlerFunc
func StreamGetTweetLikersHandler ¶ added in v0.7.26
func StreamGetTweetLikersHandler( repo LikersLister, userRepo LikedUserFetcher, streamer EngagementStreamer, ) warpnet.WarpHandlerFunc
func StreamGetTweetRetweetersHandler ¶ added in v0.7.26
func StreamGetTweetRetweetersHandler( repo RetweetersLister, userRepo LikedUserFetcher, streamer EngagementStreamer, ) warpnet.WarpHandlerFunc
func StreamGetTweetStatsHandler ¶
func StreamGetTweetStatsHandler( tweetRepo TweetsStorer, likeRepo LikeTweetStorer, retweetRepo RetweetsTweetStorer, replyRepo RepliesTweetCounter, userRepo TweetUserFetcher, streamer TweetStreamer, ) warpnet.WarpHandlerFunc
func StreamGetTweetsHandler ¶
func StreamGetTweetsHandler( repo TweetsStorer, userRepo TweetUserFetcher, streamer TweetStreamer, ) warpnet.WarpHandlerFunc
func StreamGetUserChatHandler ¶
func StreamGetUserChatHandler(repo ChatStorer, authRepo ChatAuthStorer) warpnet.WarpHandlerFunc
func StreamGetUserChatsHandler ¶
func StreamGetUserChatsHandler(repo ChatStorer, authRepo OwnerChatsStorer) warpnet.WarpHandlerFunc
func StreamGetUserHandler ¶
func StreamGetUserHandler( tweetRepo UserTweetsCounter, followRepo UserFollowsCounter, repo UserFetcher, authRepo UserAuthStorer, streamer UserStreamer, ) warpnet.WarpHandlerFunc
func StreamGetUsersHandler ¶
func StreamGetUsersHandler( userRepo UserFetcher, streamer UserStreamer, ) warpnet.WarpHandlerFunc
func StreamGetWhoToFollowHandler ¶ added in v0.3.75
func StreamGetWhoToFollowHandler( authRepo UserAuthStorer, userRepo UserFetcher, followRepo UserFollowsCounter, ) warpnet.WarpHandlerFunc
func StreamIsFollowerHandler ¶ added in v0.5.83
func StreamIsFollowerHandler( followRepo FollowingStorer, authRepo FollowingAuthStorer, ) warpnet.WarpHandlerFunc
func StreamIsFollowingHandler ¶ added in v0.5.83
func StreamIsFollowingHandler( followRepo FollowingStorer, authRepo FollowingAuthStorer, ) warpnet.WarpHandlerFunc
func StreamLikeHandler ¶
func StreamLikeHandler( repo LikesStorer, userRepo LikedUserFetcher, notifyRepo ModerationNotifier, streamer LikeStreamer, ) warpnet.WarpHandlerFunc
func StreamMarkNotificationReadHandler ¶ added in v0.7.26
func StreamMarkNotificationReadHandler( repo NotifierMarker, authRepo NotifierAuthStorer, ) warpnet.WarpHandlerFunc
func StreamModerationResultHandler ¶ added in v0.3.129
func StreamModerationResultHandler( notifyRepo ModerationNotifier, tweetRepo ModerationTweetUpdater, authRepo ModerationOwnerFetcher, timelineRepo ModerationTimelelineDeleter, ) warpnet.WarpHandlerFunc
func StreamMuteHandler ¶ added in v0.7.26
func StreamMuteHandler(repo MutesStorer) warpnet.WarpHandlerFunc
func StreamNewFilterHandler ¶ added in v0.7.26
func StreamNewFilterHandler(repo FilterStorer) warpnet.WarpHandlerFunc
func StreamNewMessageHandler ¶ added in v0.5.87
func StreamNewMessageHandler(repo ChatStorer, userRepo ChatUserFetcher, streamer ChatStreamer) warpnet.WarpHandlerFunc
StreamNewMessageHandler is for sending a new message
func StreamNewReTweetHandler ¶
func StreamNewReTweetHandler( userRepo RetweetedUserFetcher, tweetRepo ReTweetsStorer, timelineRepo RetweetTimelineUpdater, notifyRepo ModerationNotifier, streamer RetweetStreamer, ) warpnet.WarpHandlerFunc
func StreamNewReplyHandler ¶
func StreamNewReplyHandler( replyRepo ReplyStorer, userRepo ReplyUserFetcher, notifyRepo ModerationNotifier, streamer ReplyStreamer, ) warpnet.WarpHandlerFunc
func StreamNewTweetHandler ¶
func StreamNewTweetHandler( broadcaster TweetBroadcaster, authRepo OwnerTweetStorer, tweetRepo TweetsStorer, timelineRepo TimelineUpdater, ) warpnet.WarpHandlerFunc
func StreamNodesPairingHandler ¶
func StreamNodesPairingHandler(serverToken string, deviceRepo DeviceStorer, n NodeAddresser) warpnet.WarpHandlerFunc
func StreamPinTweetHandler ¶ added in v0.7.26
func StreamPinTweetHandler(repo TweetsStorer) warpnet.WarpHandlerFunc
func StreamRejectFollowRequestHandler ¶ added in v0.7.26
func StreamRejectFollowRequestHandler(repo FollowingStorer) warpnet.WarpHandlerFunc
func StreamSearchUsersHandler ¶ added in v0.7.26
func StreamSearchUsersHandler(userRepo UserFetcher) warpnet.WarpHandlerFunc
func StreamSubscribeUserHandler ¶ added in v0.7.26
func StreamSubscribeUserHandler(repo SubscriptionStorer) warpnet.WarpHandlerFunc
func StreamTimelineHandler ¶
func StreamTimelineHandler(repo TimelineFetcher) warpnet.WarpHandlerFunc
func StreamUnblockHandler ¶ added in v0.7.26
func StreamUnblockHandler(repo BlocksStorer, userRepo BlockUserFetcher, nodeRepo PeerBlocklister) warpnet.WarpHandlerFunc
func StreamUnbookmarkHandler ¶ added in v0.7.26
func StreamUnbookmarkHandler(repo BookmarkStorer) warpnet.WarpHandlerFunc
func StreamUnfollowHandler ¶
func StreamUnfollowHandler( broadcaster FollowingBroadcaster, followRepo FollowingStorer, authRepo FollowingAuthStorer, userRepo FollowingUserStorer, streamer FollowNodeStreamer, ) warpnet.WarpHandlerFunc
func StreamUnlikeHandler ¶
func StreamUnlikeHandler(repo LikesStorer, userRepo LikedUserFetcher, streamer LikeStreamer) warpnet.WarpHandlerFunc
func StreamUnmuteHandler ¶ added in v0.7.26
func StreamUnmuteHandler(repo MutesStorer) warpnet.WarpHandlerFunc
func StreamUnpinTweetHandler ¶ added in v0.7.26
func StreamUnpinTweetHandler(repo TweetsStorer) warpnet.WarpHandlerFunc
func StreamUnretweetHandler ¶
func StreamUnretweetHandler( tweetRepo ReTweetsStorer, userRepo RetweetedUserFetcher, streamer RetweetStreamer, ) warpnet.WarpHandlerFunc
func StreamUnsubscribeUserHandler ¶ added in v0.7.26
func StreamUnsubscribeUserHandler(repo SubscriptionStorer) warpnet.WarpHandlerFunc
func StreamUpdateFilterHandler ¶ added in v0.7.26
func StreamUpdateFilterHandler(repo FilterStorer) warpnet.WarpHandlerFunc
func StreamUpdateFilterKeywordHandler ¶ added in v0.7.26
func StreamUpdateFilterKeywordHandler(repo FilterStorer) warpnet.WarpHandlerFunc
func StreamUpdateMediaMetaHandler ¶ added in v0.7.26
func StreamUpdateMediaMetaHandler(repo MediaMetaStorer) warpnet.WarpHandlerFunc
func StreamUpdateProfileHandler ¶
func StreamUpdateProfileHandler(authRepo UserAuthStorer, userRepo UserFetcher) warpnet.WarpHandlerFunc
func StreamUploadImageHandler ¶
func StreamUploadImageHandler( info MediaNodeInformer, mediaRepo MediaStorer, userRepo MediaUserFetcher, ) warpnet.WarpHandlerFunc
func StreamViewHandler ¶ added in v0.6.316
func StreamViewHandler(repo ViewsStorer, userRepo LikedUserFetcher, streamer LikeStreamer) warpnet.WarpHandlerFunc
Types ¶
type BlockUserFetcher ¶ added in v0.7.26
BlockUserFetcher looks up the blockee so the handler can escalate the social block into a network-layer peer blocklist.
type BlocksStorer ¶ added in v0.7.26
type BlocksStorer interface {
Block(blockerId, blockeeId string) error
Unblock(blockerId, blockeeId string) error
List(blockerId string, limit *uint64, cursor *string) ([]string, string, error)
}
BlocksStorer is the narrow surface block handlers need from BlocksRepo.
type BookmarkStorer ¶ added in v0.7.26
type CRDTLikesCounter ¶ added in v0.5.158
CRDTLikesCounter provides CRDT-based likes counting
type CRDTRepliesCounter ¶ added in v0.5.158
CRDTRepliesCounter provides CRDT-based replies counting
type CRDTRetweetsCounter ¶ added in v0.5.158
CRDTRetweetsCounter provides CRDT-based retweets counting
type ChatAuthStorer ¶
type ChatStorer ¶
type ChatStorer interface {
CreateChat(chatId *string, ownerId, otherUserId string) (domain.Chat, error)
DeleteChat(chatId string) error
GetUserChats(userId string, limit *uint64, cursor *string) ([]domain.Chat, string, error)
CreateMessage(msg domain.ChatMessage) (domain.ChatMessage, error)
ListMessages(chatId string, limit *uint64, cursor *string) ([]domain.ChatMessage, string, error)
GetMessage(chatId, id string) (domain.ChatMessage, error)
DeleteMessage(chatId, id string) error
GetChat(chatId string) (chat domain.Chat, err error)
}
type ChatStreamer ¶
type ChatUserFetcher ¶
type DeviceStorer ¶ added in v0.6.263
type EngagementStreamer ¶ added in v0.7.26
type EngagementStreamer interface {
GenericStream(nodeId string, path stream.WarpRoute, data any) (_ []byte, err error)
NodeInfo() warpnet.NodeInfo
}
EngagementStreamer forwards the lookup to the tweet author's node when the canonical engagement record lives elsewhere — mirrors the like.go propagation pattern.
type FileSystem ¶ added in v0.2.476
type FilterStorer ¶ added in v0.7.26
type FilterStorer interface {
Create(userId string, f domain.Filter) (domain.Filter, error)
Get(userId, filterId string) (domain.Filter, error)
Update(userId string, f domain.Filter) (domain.Filter, error)
Delete(userId, filterId string) error
List(userId string, limit *uint64, cursor *string) ([]domain.Filter, string, error)
AddKeyword(userId, filterId string, kw domain.FilterKeyword) (domain.FilterKeyword, error)
UpdateKeyword(userId string, kw domain.FilterKeyword) (domain.FilterKeyword, error)
DeleteKeyword(userId, keywordId string) error
}
FilterStorer is the narrow surface filter handlers need.
type FollowNodeStreamer ¶
type FollowingAuthStorer ¶
type FollowingBroadcaster ¶
type FollowingStorer ¶
type FollowingStorer interface {
Follow(fromUserId, toUserId string) error
Unfollow(fromUserId, toUserId string) error
GetFollowers(userId string, limit *uint64, cursor *string) ([]string, string, error)
GetFollowings(userId string, limit *uint64, cursor *string) ([]string, string, error)
IsFollowing(ownerId, otherUserId string) bool
IsFollower(ownerId, otherUserId string) bool
AddFollowRequest(targetUserId, followerId string) error
RemoveFollowRequest(targetUserId, followerId string) error
ListFollowRequests(targetUserId string, limit *uint64, cursor *string) ([]string, string, error)
}
type FollowingUserStorer ¶
type LikeStreamer ¶
type LikeTweetStorer ¶
type LikeTweetStorer interface {
Like(tweetId, userId string) (likesNum uint64, err error)
Unlike(tweetId, userId string) (likesNum uint64, err error)
LikesCount(tweetId string) (likesNum uint64, err error)
Likers(tweetId string, limit *uint64, cursor *string) (likers []string, cur string, err error)
}
type LikeTweetsStorer ¶
type LikedUserFetcher ¶
type LikersLister ¶ added in v0.7.26
type LikersLister interface {
Likers(tweetId string, limit *uint64, cursor *string) ([]string, string, error)
}
LikersLister is the narrow surface the likers handler needs.
type LikesStorer ¶
type MediaMetaStorer ¶ added in v0.7.26
type MediaMetaStorer interface {
SetImageMeta(userId, key string, meta database.MediaMeta) error
GetImageMeta(userId, key string) (database.MediaMeta, error)
}
MediaMetaStorer is the slice of MediaRepo the alt-text / focal-point handlers need.
type MediaNodeInformer ¶
type MediaStorer ¶
type MediaStorer interface {
GetImage(userId, key string) (database.Base64Image, error)
SetImage(userId string, img database.Base64Image) (_ database.ImageKey, err error)
SetForeignImageWithTTL(userId, key string, img database.Base64Image) error
}
type MediaStreamer ¶
type MediaUserFetcher ¶
type ModerationNotifier ¶ added in v0.5.30
type ModerationNotifier interface {
Add(not domain.Notification) error
}
type ModerationOwnerFetcher ¶ added in v0.5.134
type ModerationTimelelineDeleter ¶ added in v0.5.136
type ModerationTweetUpdater ¶ added in v0.5.134
type MutesStorer ¶ added in v0.7.26
type MutesStorer interface {
Mute(muterId, muteeId string) error
Unmute(muterId, muteeId string) error
List(muterId string, limit *uint64, cursor *string) ([]string, string, error)
}
MutesStorer is the narrow surface mute handlers need from MutesRepo.
type NodeAddresser ¶ added in v0.7.26
type NodeAddresser interface {
PublicAddrs() []warpnet.WarpAddress
}
type NodeInformer ¶
type NotifierAuthStorer ¶ added in v0.5.87
type NotifierFetcher ¶ added in v0.5.30
type NotifierGetter ¶ added in v0.7.26
type NotifierGetter interface {
Get(userId, notificationId string) (domain.Notification, error)
}
type NotifierMarker ¶ added in v0.7.26
type OwnerChatsStorer ¶
type OwnerReTweetStorer ¶
type OwnerTweetStorer ¶
type PeerBlocklister ¶ added in v0.7.26
type PeerBlocklister interface {
BlocklistPermanent(peerId string) error
BlocklistRemove(peerId string) error
}
PeerBlocklister talks to NodeRepo's libp2p-level blocklist (database/node-repo.go) so blocking a user disconnects and refuses traffic from their node.
A social block is permanent until the user undoes it, so we go straight to BlocklistPermanent (no exponential escalation) on Block, and BlocklistRemove on Unblock.
type ReTweetsStorer ¶
type ReTweetsStorer interface {
Get(userID, tweetID string) (tweet domain.Tweet, err error)
NewRetweet(tweet domain.Tweet) (_ domain.Tweet, err error)
UnRetweet(retweetedByUserID, tweetId string) error
RetweetsCount(tweetId string) (uint64, error)
Retweeters(tweetId string, limit *uint64, cursor *string) (_ []string, cur string, err error)
}
type RepliesTweetCounter ¶
type ReplyStorer ¶
type ReplyStorer interface {
GetReply(rootID, replyID string) (tweet domain.Tweet, err error)
GetRepliesTree(rootID, parentId string, limit *uint64, cursor *string) ([]domain.ReplyNode, string, error)
AddReply(reply domain.Tweet) (domain.Tweet, error)
DeleteReply(rootID, parentID, replyID string) error
}
type ReplyStreamer ¶
type ReplyTweetStorer ¶
type ReplyUserFetcher ¶
type RetweetStreamer ¶
type RetweetTimelineUpdater ¶
type RetweetedUserFetcher ¶
type RetweetersLister ¶ added in v0.7.26
type RetweetersLister interface {
Retweeters(tweetId string, limit *uint64, cursor *string) ([]string, string, error)
}
RetweetersLister is the narrow surface the retweeters handler needs.
type RetweetsTweetStorer ¶
type RetweetsTweetStorer interface {
Get(userID, tweetID string) (tweet domain.Tweet, err error)
NewRetweet(tweet domain.Tweet) (_ domain.Tweet, err error)
UnRetweet(retweetedByUserID, tweetId string) error
RetweetsCount(tweetId string) (uint64, error)
Retweeters(tweetId string, limit *uint64, cursor *string) (_ []string, cur string, err error)
}
type StatsNodeInformer ¶
type StatsNodeInformer interface {
NodeInfo() warpnet.NodeInfo
Peerstore() warpnet.WarpPeerstore
Network() warpnet.WarpNetwork
}
type StatsProvider ¶
type SubscriptionStorer ¶ added in v0.7.26
type SubscriptionStorer interface {
Subscribe(selfId, targetUserId string) error
Unsubscribe(selfId, targetUserId string) error
}
SubscriptionStorer is the slice of SubscriptionsRepo the subscribe handlers need. Subscribe = "tell me about new tweets from this user"; the local node uses this watchlist to elevate the corresponding incoming tweet to a notification.
type TimelineFetcher ¶
type TimelineUpdater ¶
type TweetBroadcaster ¶
type TweetStreamer ¶
type TweetUserFetcher ¶
type TweetsStorer ¶
type TweetsStorer interface {
TweetsCount(userId string) (uint64, error)
GetViewsCount(tweetId string) (uint64, error)
IsBlocklisted(tweetId string) bool
Blocklist(tweetId string) error
Get(userID, tweetID string) (tweet domain.Tweet, err error)
List(string, *uint64, *string) ([]domain.Tweet, string, error)
Create(_ string, tweet domain.Tweet) (domain.Tweet, error)
Delete(userID, tweetID string) error
UnRetweet(retweetedByUserID, tweetId string) error
Retweeters(tweetId string, limit *uint64, cursor *string) (_ []string, cur string, err error)
CreateWithTTL(userId string, tweet domain.Tweet, duration time.Duration) (domain.Tweet, error)
Update(tweet domain.Tweet) error
Pin(userId, tweetId string) (domain.Tweet, error)
Unpin(userId, tweetId string) (domain.Tweet, error)
AppendEdit(edit domain.TweetEdit) (domain.TweetEdit, error)
}
type UserAuthStorer ¶
type UserFetcher ¶
type UserFetcher interface {
Create(user domain.User) (domain.User, error)
Get(userId string) (user domain.User, err error)
List(limit *uint64, cursor *string) ([]domain.User, string, error)
Search(query string, limit *uint64, cursor *string) ([]domain.User, string, error)
WhoToFollow(limit *uint64, cursor *string) ([]domain.User, string, error)
Update(userId string, newUser domain.User) (updatedUser domain.User, err error)
CreateWithTTL(user domain.User, ttl time.Duration) (domain.User, error)
}
type UserFollowsCounter ¶
type UserFollowsCounter interface {
GetFollowersCount(userId string) (uint64, error)
GetFollowingsCount(userId string) (uint64, error)
GetFollowers(userId string, limit *uint64, cursor *string) ([]string, string, error)
GetFollowings(userId string, limit *uint64, cursor *string) ([]string, string, error)
}