handler

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 20, 2025 License: AGPL-3.0, AGPL-3.0-or-later Imports: 30 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func StreamChallengeHandler added in v0.2.476

func StreamChallengeHandler(fs FileSystem, privateKey ed25519.PrivateKey) warpnet.WarpHandlerFunc

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 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,
	likeRepo LikeTweetStorer,
) warpnet.WarpHandlerFunc

func StreamFollowHandler

func StreamFollowHandler(
	broadcaster FollowingBroadcaster,
	followRepo FollowingStorer,
	authRepo FollowingAuthStorer,
	userRepo FollowingUserStorer,
	streamer FollowNodeStreamer,
) warpnet.WarpHandlerFunc

func StreamGetFolloweesHandler

func StreamGetFolloweesHandler(
	authRepo FollowingAuthStorer,
	userRepo FollowingUserStorer,
	followRepo FollowingStorer,
	streamer FollowNodeStreamer,
) warpnet.WarpHandlerFunc

func StreamGetFollowersHandler

func StreamGetFollowersHandler(
	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,
	handler discovery.DiscoveryHandler,
) 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 StreamGetRepliesHandler

func StreamGetRepliesHandler(
	repo ReplyStorer,
	userRepo ReplyUserFetcher,
	streamer ReplyStreamer,
) warpnet.WarpHandlerFunc

func StreamGetReplyHandler

func StreamGetReplyHandler(repo ReplyStorer) warpnet.WarpHandlerFunc

func StreamGetTweetHandler

func StreamGetTweetHandler(repo TweetsStorer) warpnet.WarpHandlerFunc

func StreamGetTweetStatsHandler

func StreamGetTweetStatsHandler(
	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 StreamLikeHandler

func StreamLikeHandler(
	repo LikesStorer,
	userRepo LikedUserFetcher,
	streamer LikeStreamer,
) warpnet.WarpHandlerFunc

func StreamModerateHandler added in v0.3.129

func StreamModerateHandler(streamer ModerationStreamer, moderator HandlerModerator) warpnet.WarpHandlerFunc

StreamModerateHandler receive event from pubsub via loopback

func StreamModerationResultHandler added in v0.3.129

func StreamModerationResultHandler(
	broadcaster ModerationBroadcaster,
	userRepo UserUpdater,
	tweetRepo TweetUpdater,
	timelineRepo TimelineTweetRemover,
) warpnet.WarpHandlerFunc

func StreamNewReTweetHandler

func StreamNewReTweetHandler(
	userRepo RetweetedUserFetcher,
	tweetRepo ReTweetsStorer,
	timelineRepo RetweetTimelineUpdater,
	streamer RetweetStreamer,
) warpnet.WarpHandlerFunc

func StreamNewReplyHandler

func StreamNewReplyHandler(
	replyRepo ReplyStorer,
	userRepo ReplyUserFetcher,
	streamer ReplyStreamer,
) warpnet.WarpHandlerFunc

func StreamNewTweetHandler

func StreamNewTweetHandler(
	broadcaster TweetBroadcaster,
	authRepo OwnerTweetStorer,
	tweetRepo TweetsStorer,
	timelineRepo TimelineUpdater,
) warpnet.WarpHandlerFunc

func StreamNodesPairingHandler

func StreamNodesPairingHandler(serverAuthInfo domain.AuthNodeInfo) warpnet.WarpHandlerFunc

func StreamSendMessageHandler

func StreamSendMessageHandler(repo ChatStorer, userRepo ChatUserFetcher, streamer ChatStreamer) warpnet.WarpHandlerFunc

Handler for sending a new message

func StreamTimelineHandler

func StreamTimelineHandler(repo TimelineFetcher) 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 StreamUnretweetHandler

func StreamUnretweetHandler(
	tweetRepo ReTweetsStorer,
	userRepo RetweetedUserFetcher,
	streamer RetweetStreamer,
) 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 StreamValidateHandler added in v0.3.76

func StreamValidateHandler(svc AdminConsensusServicer) warpnet.WarpHandlerFunc

func StreamValidationResponseHandler added in v0.3.76

func StreamValidationResponseHandler(svc AdminConsensusServicer) warpnet.WarpHandlerFunc

Types

type AdminConsensusServicer added in v0.3.76

type AdminConsensusServicer interface {
	Validate(ev event.ValidationEvent) error
	ValidationResult(ev event.ValidationResultEvent) error
}

type ChatAuthStorer

type ChatAuthStorer interface {
	GetOwner() domain.Owner
}

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 ChatStreamer interface {
	GenericStream(nodeId string, path stream.WarpRoute, data any) (_ []byte, err error)
	NodeInfo() warpnet.NodeInfo
}

type ChatUserFetcher

type ChatUserFetcher interface {
	GetByNodeID(nodeID string) (user domain.User, err error)
	Get(userId string) (user domain.User, err error)
}

type FileSystem added in v0.2.476

type FileSystem interface {
	ReadDir(name string) ([]fs.DirEntry, error)
	ReadFile(name string) ([]byte, error)
	Open(name string) (fs.File, error)
}

type FollowNodeStreamer

type FollowNodeStreamer interface {
	GenericStream(nodeId string, path stream.WarpRoute, data any) ([]byte, error)
}

type FollowingAuthStorer

type FollowingAuthStorer interface {
	GetOwner() domain.Owner
}

type FollowingBroadcaster

type FollowingBroadcaster interface {
	SubscribeUserUpdate(userId string) (err error)
	UnsubscribeUserUpdate(userId string) (err error)
}

type FollowingStorer

type FollowingStorer interface {
	Follow(fromUserId, toUserId string, event domain.Following) error
	Unfollow(fromUserId, toUserId string) error
	GetFollowers(userId string, limit *uint64, cursor *string) ([]domain.Following, string, error)
	GetFollowees(userId string, limit *uint64, cursor *string) ([]domain.Following, string, error)
}

type FollowingUserStorer

type FollowingUserStorer interface {
	Get(userId string) (user domain.User, err error)
	List(limit *uint64, cursor *string) ([]domain.User, string, error)
	Create(user domain.User) (domain.User, error)
}

type HandlerModerator added in v0.3.129

type HandlerModerator interface {
	Moderate(content string) (bool, string, error)
	Close()
}

type LikeStreamer

type LikeStreamer interface {
	GenericStream(nodeId string, path stream.WarpRoute, data any) (_ []byte, err error)
	NodeInfo() warpnet.NodeInfo
}

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 LikeTweetsStorer interface {
	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
}

type LikedUserFetcher

type LikedUserFetcher interface {
	GetBatch(userIds ...string) (users []domain.User, err error)
	Get(userId string) (users domain.User, err error)
}

type LikesStorer

type LikesStorer 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 MediaNodeInformer

type MediaNodeInformer interface {
	NodeInfo() warpnet.NodeInfo
}

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 MediaStreamer interface {
	GenericStream(nodeId string, path stream.WarpRoute, data any) (_ []byte, err error)
	NodeInfo() warpnet.NodeInfo
}

type MediaUserFetcher

type MediaUserFetcher interface {
	Get(userId string) (user domain.User, err error)
}

type ModerationBroadcaster added in v0.3.156

type ModerationBroadcaster interface {
	PublishUpdateToFollowers(ownerId, dest string, bt []byte) (err error)
}

type ModerationStreamer added in v0.3.129

type ModerationStreamer interface {
	GenericStream(nodeIdStr string, path stream.WarpRoute, data any) (_ []byte, err error)
}

type NodeInformer

type NodeInformer interface {
	NodeInfo() warpnet.NodeInfo
}

type OwnerChatsStorer

type OwnerChatsStorer interface {
	GetOwner() domain.Owner
}

type OwnerReTweetStorer

type OwnerReTweetStorer interface {
	GetOwner() domain.Owner
}

type OwnerTweetStorer

type OwnerTweetStorer interface {
	GetOwner() domain.Owner
}

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 RepliesTweetCounter interface {
	RepliesCount(tweetId string) (likesNum uint64, err error)
}

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 ReplyStreamer interface {
	GenericStream(nodeId string, path stream.WarpRoute, data any) (_ []byte, err error)
	NodeInfo() warpnet.NodeInfo
}

type ReplyTweetStorer

type ReplyTweetStorer interface {
	Get(userID, tweetID string) (tweet domain.Tweet, err error)
}

type ReplyUserFetcher

type ReplyUserFetcher interface {
	Get(userId string) (user domain.User, err error)
}

type RetweetStreamer

type RetweetStreamer interface {
	GenericStream(nodeId string, path stream.WarpRoute, data any) (_ []byte, err error)
	NodeInfo() warpnet.NodeInfo
}

type RetweetTimelineUpdater

type RetweetTimelineUpdater interface {
	AddTweetToTimeline(userId string, tweet domain.Tweet) error
}

type RetweetedUserFetcher

type RetweetedUserFetcher interface {
	GetBatch(retweetersIds ...string) (users []domain.User, err error)
	Get(userId string) (users domain.User, err error)
}

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 StatsProvider interface {
	Stats() map[string]string
}

type TimelineFetcher

type TimelineFetcher interface {
	GetTimeline(string, *uint64, *string) ([]domain.Tweet, string, error)
}

type TimelineTweetRemover added in v0.3.156

type TimelineTweetRemover interface {
	DeleteTweetFromTimeline(userID, tweetID string, createdAt time.Time) error
}

type TimelineUpdater

type TimelineUpdater interface {
	AddTweetToTimeline(userId string, tweet domain.Tweet) error
}

type TweetBroadcaster

type TweetBroadcaster interface {
	PublishUpdateToFollowers(ownerId, dest string, bt []byte) (err error)
	PublishModerationRequest(body []byte) (err error)
}

type TweetStreamer

type TweetStreamer interface {
	GenericStream(nodeId string, path stream.WarpRoute, data any) (_ []byte, err error)
	NodeInfo() warpnet.NodeInfo
}

type TweetUpdater added in v0.3.129

type TweetUpdater interface {
	Get(userID, tweetID string) (tweet domain.Tweet, err error)
	Create(_ string, tweet domain.Tweet) (domain.Tweet, error)
}

type TweetUserFetcher

type TweetUserFetcher interface {
	Get(userId string) (user domain.User, err error)
}

type TweetsStorer

type TweetsStorer interface {
	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
	CreateWithTTL(userId string, tweet domain.Tweet, duration time.Duration) (domain.Tweet, error)
}

type UserAuthStorer

type UserAuthStorer interface {
	GetOwner() domain.Owner
}

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)
	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)
	GetFolloweesCount(userId string) (uint64, error)
	GetFollowers(userId string, limit *uint64, cursor *string) ([]domain.Following, string, error)
	GetFollowees(userId string, limit *uint64, cursor *string) ([]domain.Following, string, error)
}

type UserStreamer

type UserStreamer interface {
	GenericStream(nodeId string, path stream.WarpRoute, data any) (_ []byte, err error)
	NodeInfo() warpnet.NodeInfo
}

type UserTweetsCounter

type UserTweetsCounter interface {
	TweetsCount(userID string) (uint64, error)
}

type UserUpdater added in v0.3.129

type UserUpdater interface {
	Update(userId string, newUser domain.User) (updatedUser domain.User, err error)
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL