mirror of
https://github.com/binwiederhier/ntfy.git
synced 2025-06-30 16:20:35 +02:00
Subscribe endpoint consolidation; same behavior for all endpoints; keepalive
This commit is contained in:
parent
b72afb1695
commit
a38aca47bd
8 changed files with 154 additions and 93 deletions
server
43
server/message.go
Normal file
43
server/message.go
Normal file
|
@ -0,0 +1,43 @@
|
|||
package server
|
||||
|
||||
import "time"
|
||||
|
||||
// List of possible events
|
||||
const (
|
||||
openEvent = "open"
|
||||
keepaliveEvent = "keepalive"
|
||||
)
|
||||
|
||||
// message represents a message published to a topic
|
||||
type message struct {
|
||||
Time int64 `json:"time"` // Unix time in seconds
|
||||
Event string `json:"event,omitempty"` // One of the above
|
||||
Message string `json:"message,omitempty"`
|
||||
}
|
||||
|
||||
// messageEncoder is a function that knows how to encode a message
|
||||
type messageEncoder func(msg *message) (string, error)
|
||||
|
||||
// newMessage creates a new message with the current timestamp
|
||||
func newMessage(event string, msg string) *message {
|
||||
return &message{
|
||||
Time: time.Now().Unix(),
|
||||
Event: event,
|
||||
Message: msg,
|
||||
}
|
||||
}
|
||||
|
||||
// newOpenMessage is a convenience method to create an open message
|
||||
func newOpenMessage() *message {
|
||||
return newMessage(openEvent, "")
|
||||
}
|
||||
|
||||
// newKeepaliveMessage is a convenience method to create a keepalive message
|
||||
func newKeepaliveMessage() *message {
|
||||
return newMessage(keepaliveEvent, "")
|
||||
}
|
||||
|
||||
// newDefaultMessage is a convenience method to create a notification message
|
||||
func newDefaultMessage(msg string) *message {
|
||||
return newMessage("", msg)
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue