🎉 Initial Commit
This commit is contained in:
40
pkg/internal/provider/firebase.go
Normal file
40
pkg/internal/provider/firebase.go
Normal file
@@ -0,0 +1,40 @@
|
||||
package provider
|
||||
|
||||
import (
|
||||
"context"
|
||||
firebase "firebase.google.com/go"
|
||||
"firebase.google.com/go/messaging"
|
||||
"fmt"
|
||||
"git.solsynth.dev/hypernet/pusher/pkg/pushkit"
|
||||
)
|
||||
|
||||
type FirebaseNotifyProvider struct {
|
||||
conn *firebase.App
|
||||
}
|
||||
|
||||
func (v *FirebaseNotifyProvider) Push(in pushkit.Notification, tk string) error {
|
||||
ctx := context.Background()
|
||||
client, err := v.conn.Messaging(ctx)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to create firebase client")
|
||||
}
|
||||
|
||||
var subtitle string
|
||||
if len(in.Subtitle) > 0 {
|
||||
subtitle = "\n" + in.Subtitle
|
||||
}
|
||||
message := &messaging.Message{
|
||||
Notification: &messaging.Notification{
|
||||
Title: in.Title,
|
||||
Body: subtitle + in.Body,
|
||||
},
|
||||
Token: tk,
|
||||
}
|
||||
|
||||
_, err = client.Send(ctx, message)
|
||||
return err
|
||||
}
|
||||
|
||||
func (v *FirebaseNotifyProvider) GetName() string {
|
||||
return "fcm"
|
||||
}
|
Reference in New Issue
Block a user