-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathprovider.go
58 lines (45 loc) · 1.66 KB
/
provider.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
package memory
import (
"context"
"errors"
"github.com/code-payments/code-server/pkg/push"
)
const (
// This values will pass IsValidPushToken
ValidAndroidPushToken = "test_android_push_token"
ValidApplePushToken = "test_apns_push_token"
// This value will fail IsValidPushToken
InvalidPushToken = "invalid"
)
type provider struct {
}
// NewPushProvider returns a new in memory push.Provider
func NewPushProvider() push.Provider {
return &provider{}
}
// IsValidPushToken implements push.Provider.IsValidPushToken
func (p *provider) IsValidPushToken(_ context.Context, pushToken string) (bool, error) {
return pushToken == ValidAndroidPushToken || pushToken == ValidApplePushToken, nil
}
// SendPush implements push.Provider.SendPush
func (p *provider) SendPush(ctx context.Context, pushToken, title, body string) error {
return simulateSendingPush(pushToken)
}
// SendMutableAPNSPush implements push.Provider.SendMutableAPNSPush
func (p *provider) SendMutableAPNSPush(ctx context.Context, pushToken, titleKey string, kvs map[string]string) error {
return simulateSendingPush(pushToken)
}
// SendDataPush implements push.Provider.SendDataPush
func (p *provider) SendDataPush(ctx context.Context, pushToken string, kvs map[string]string) error {
return simulateSendingPush(pushToken)
}
// SetAPNSBadgeCount implements push.Provider.SetAPNSBadgeCount
func (p *provider) SetAPNSBadgeCount(ctx context.Context, pushToken string, count int) error {
return simulateSendingPush(pushToken)
}
func simulateSendingPush(pushToken string) error {
if pushToken == ValidAndroidPushToken || pushToken == ValidApplePushToken {
return nil
}
return errors.New("push token is invalid")
}