push

package
v1.5.0 Latest Latest
Warning

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

Go to latest
Published: Feb 28, 2025 License: MIT Imports: 22 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func SendWeeklyAirdropPush added in v1.5.0

func SendWeeklyAirdropPush(ctx context.Context, pusher Pusher, quarks uint64, users ...*commonpb.UserId) error

Types

type EventHandler

type EventHandler struct {
	// contains filtered or unexported fields
}

func NewPushEventHandler

func NewPushEventHandler(
	log *zap.Logger,
	chats chat.Store,
	profiles profile.Store,
	pusher Pusher,
) *EventHandler

func (*EventHandler) OnEvent

func (h *EventHandler) OnEvent(chatID *commonpb.ChatId, e *event.ChatEvent)

type FCMClient

type FCMClient interface {
	SendEachForMulticast(ctx context.Context, message *messaging.MulticastMessage) (*messaging.BatchResponse, error)
}

type FCMPusher

type FCMPusher struct {
	// contains filtered or unexported fields
}

func NewFCMPusher

func NewFCMPusher(log *zap.Logger, tokens TokenStore, client FCMClient) *FCMPusher

func (*FCMPusher) SendBasicPushes added in v1.5.0

func (p *FCMPusher) SendBasicPushes(ctx context.Context, title, body string, users ...*commonpb.UserId) error

todo: Some duplicated code, but the existing push per message flow is likely going away anyways. We'll refactor when we get to that.

func (*FCMPusher) SendPushes

func (p *FCMPusher) SendPushes(ctx context.Context, chatID *commonpb.ChatId, users []*commonpb.UserId, title, body string, sender *string, data map[string]string) error

func (*FCMPusher) SendSilentPushes

func (p *FCMPusher) SendSilentPushes(ctx context.Context, chatID *commonpb.ChatId, users []*commonpb.UserId, data map[string]string) error

type NoOpPusher

type NoOpPusher struct{}

func (*NoOpPusher) SendBasicPushes added in v1.5.0

func (n *NoOpPusher) SendBasicPushes(_ context.Context, _, _ string, _ ...*commonpb.UserId) error

func (*NoOpPusher) SendPushes

func (n *NoOpPusher) SendPushes(_ context.Context, _ *commonpb.ChatId, _ []*commonpb.UserId, _, _ string, _ map[string]string) error

func (*NoOpPusher) SendSilentPushes

func (n *NoOpPusher) SendSilentPushes(_ context.Context, _ *commonpb.ChatId, _ []*commonpb.UserId, _ map[string]string) error

type Pusher

type Pusher interface {
	SendBasicPushes(ctx context.Context, title, body string, users ...*commonpb.UserId) error

	// todo: these are likely going away with a new push stragey
	SendPushes(ctx context.Context, chatID *commonpb.ChatId, members []*commonpb.UserId, title, body string, sender *string, data map[string]string) error
	SendSilentPushes(ctx context.Context, chatID *commonpb.ChatId, members []*commonpb.UserId, data map[string]string) error
}

type Server

type Server struct {
	pushpb.UnimplementedPushServer
	// contains filtered or unexported fields
}

func NewServer

func NewServer(log *zap.Logger, auth auth.Authorizer, tokens TokenStore) *Server

func (*Server) AddToken

func (*Server) DeleteToken

func (*Server) DeleteTokens

type Token

type Token struct {
	Type         pushpb.TokenType
	Token        string
	AppInstallID string
}

Token represents a push notification token.

Tokens are bound to a (user, device) pair, identified by the AppInstallID.

type TokenStore

type TokenStore interface {
	// GetTokens returns all tokens for a user.
	GetTokens(ctx context.Context, userID *commonpb.UserId) ([]Token, error)

	// GetTokensBatch returns all tokens for a batch of users.
	GetTokensBatch(ctx context.Context, userIDs ...*commonpb.UserId) ([]Token, error)

	// AddToken adds a token for a user.
	//
	// If the token already exists for the same user and device, it will be updated.
	AddToken(ctx context.Context, userID *commonpb.UserId, appInstallID *commonpb.AppInstallId, tokenType pushpb.TokenType, token string) error

	// DeleteToken deletes a token for a user.
	DeleteToken(ctx context.Context, tokenType pushpb.TokenType, token string) error

	// ClearTokens deletes all tokens for a user.
	ClearTokens(ctx context.Context, userID *commonpb.UserId) error
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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