notify

package module
v0.17.6 Latest Latest
Warning

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

Go to latest
Published: Dec 3, 2021 License: MIT Imports: 3 Imported by: 0

README

notify logo

GitHub tag (latest SemVer) Go Report Card Codacy Badge Maintainability FOSSA Status go.dev reference

A dead simple Go library for sending notifications to various messaging services.

About

Notify was born out of my own need to have my API servers running in production be able to notify me when critical errors occur. Of course, Notify can be used for any other purpose as well. The library is kept as simple as possible for quick integration and ease of use.

Disclaimer

Any misuse of this library is your own liability and responsibility and cannot be attributed to the authors of this library. See license for more.

Spamming through the use of this library may get you permanently banned on most supported platforms.

Install

go get -u github.com/nikoksr/notify

Example usage

// Create a telegram service. Ignoring error for demo simplicity.
telegramService, _ := telegram.New("your_telegram_api_token")

// Passing a telegram chat id as receiver for our messages.
// Basically where should our message be sent?
telegramService.AddReceivers(-1234567890)

// Create our notifications distributor.
notifier := notify.New()

// Tell our notifier to use the telegram service. You can repeat the above process
// for as many services as you like and just tell the notifier to use them.
// Inspired by http middlewares used in higher level libraries.
notifier.UseServices(telegramService)

// Send a test message.
_ = notifier.Send(
	context.Background(),
	"Subject/Title",
	"The actual message - Hello, you awesome gophers! :)",
)

Supported services

Please create feature requests for missing services (see #3 for example)

  • Amazon SES
  • Discord
  • Email
  • Line
  • Mailgun
  • Microsoft Teams
  • Plivo
  • Pushbullet
  • RocketChat
  • SendGrid
  • Slack
  • Telegram
  • TextMagic
  • Twitter
  • WeChat
  • WhatsApp

Credits

Author

Niko Köser

Contributing

Contributions, issues and feature requests are welcome!
Feel free to check issues page. You can also take a look at the contributing guide.

Show your support

Give a ⭐️ if you like this project!

License

FOSSA Status

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrSendNotification = errors.New("send notification")

ErrSendNotification signals that the notifier failed to send a notification.

Functions

This section is empty.

Types

type Notifier

type Notifier interface {
	Send(context.Context, string, string) error
}

Notifier defines the behavior for notification services.

The Send function simply sends a subject and a message string to the internal destination Notifier.

E.g for telegram.Telegram it sends the message to the specified group chat.

type Notify

type Notify struct {
	Disabled bool
	// contains filtered or unexported fields
}

Notify is the central struct for managing notification services and sending messages to them.

func New

func New() *Notify

New returns a new instance of Notify. Defaulting to being not disabled.

func (Notify) Send

func (n Notify) Send(ctx context.Context, subject, message string) error

Send calls the underlying notification services to send the given subject and message to their respective endpoints.

func (*Notify) UseServices

func (n *Notify) UseServices(service ...Notifier)

UseServices adds the given service(s) to the Notifier's services list.

Directories

Path Synopsis
service
plivo
Package plivo provides message notification integration for Plivo.
Package plivo provides message notification integration for Plivo.
whatsapp
Package whatsapp provides message notification integration for WhatsApp.
Package whatsapp provides message notification integration for WhatsApp.

Jump to

Keyboard shortcuts

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