(Feat): Initial Commit
This commit is contained in:
51
internal/push/provider/mock_provider.go
Normal file
51
internal/push/provider/mock_provider.go
Normal file
@@ -0,0 +1,51 @@
|
||||
package provider
|
||||
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"allaboutapps.dev/aw/go-starter/internal/push"
|
||||
"github.com/rs/zerolog/log"
|
||||
)
|
||||
|
||||
type Mock struct {
|
||||
Type push.ProviderType
|
||||
}
|
||||
|
||||
func NewMock(providerType push.ProviderType) *Mock {
|
||||
return &Mock{
|
||||
Type: providerType,
|
||||
}
|
||||
}
|
||||
|
||||
func (p *Mock) GetProviderType() push.ProviderType {
|
||||
return p.Type
|
||||
}
|
||||
|
||||
const (
|
||||
expectedTokenLength = 40
|
||||
)
|
||||
|
||||
func (p *Mock) Send(token string, title string, message string) push.ProviderSendResponse {
|
||||
valid := true
|
||||
var err error
|
||||
if len(token) < expectedTokenLength {
|
||||
valid = false
|
||||
err = errors.New("invalid token")
|
||||
}
|
||||
|
||||
if title == "other error" {
|
||||
err = errors.New("other error")
|
||||
}
|
||||
|
||||
log.Info().Str("token", token).Str("title", title).Str("message", message).Msg("Mock Push Notification")
|
||||
|
||||
return push.ProviderSendResponse{
|
||||
Token: token,
|
||||
Valid: valid,
|
||||
Err: err,
|
||||
}
|
||||
}
|
||||
|
||||
func (p *Mock) SendMulticast(tokens []string, title, message string) []push.ProviderSendResponse {
|
||||
return sendMulticastWithProvider(p, tokens, title, message)
|
||||
}
|
||||
Reference in New Issue
Block a user