Versions in this module Expand all Collapse all v1 v1.0.1 Jun 15, 2025 v1.0.0 Apr 21, 2025 Changes in this version + var ErrBadRequest = errors.New("invalid request") + var ErrDeviceNotRegistered = errors.New("device cannot receive push notifications anymore") + var ErrEmptyToken = errors.New("push token is empty") + var ErrExpired = errors.New("timed out delivering message") + var ErrInvalidCredentials = errors.New("push notification credentials for your standalone app are invalid") + var ErrInvalidTicketCount = errors.New("the number of tickets doesn't match the number of messages") + var ErrMessageRateExceeded = errors.New("you are sending messages too frequently to the given device") + var ErrMessageTooBig = errors.New("total notification payload was too large") + var ErrMismatchSenderID = errors.New("there is an issue with your FCM push credentials") + var ErrNoRecipients = errors.New("message has no recipients") + var ErrServerError = errors.New("server error") + var ErrTooManyMessages = errors.New("too many messages in a single request") + var ErrTooManyRequests = errors.New("too many requests") + var ErrTooManyTickets = errors.New("too many tickets in a single request") + var ErrUnknown = errors.New("unknown error") + type Client struct + AccessToken string + BaseURL string + Client http.Client + func NewClient() *Client + func (c Client) FetchReceipt(ctx context.Context, ticket Ticket) *Receipt + func (c Client) FetchReceipts(ctx context.Context, tickets []Ticket) (map[Ticket]Receipt, error) + func (c Client) SendMessage(ctx context.Context, msg Message) (Ticket, error) + func (c Client) SendMessages(ctx context.Context, msgs []Message) ([]Resp, error) + type Data map[string]string + type Message struct + Badge int + Body string + ChannelID string + Data Data + Priority Priority + Sound string + TTL int + Title string + To []Token + type Priority string + const PriorityHigh + const PriorityNormal + type Promise struct + func (p *Promise) Callback(cb func(error)) + func (p *Promise) Done() <-chan struct{} + func (p *Promise) Err() error + func (p *Promise) Resolve(err error) + func (p *Promise) Wait(ctx context.Context) + type Receipt struct + Error error + type Resp struct + Error error + Ticket Ticket + type Service struct + Client *Client + Now func() time.Time + ResolveChunk time.Duration + ResolveInterval time.Duration + SendChunk time.Duration + func NewService() *Service + func (s *Service) Run(ctx context.Context) + func (s *Service) Send(ctx context.Context, msg Message) *Promise + type Ticket string + func Flatten(resps []Resp) ([]Ticket, error) + type Token string