Skip to content

Commit a2deba6

Browse files
committed
feat: change type and add parameter guard for language in magic link options
1 parent cbd0bd9 commit a2deba6

File tree

1 file changed

+21
-1
lines changed

1 file changed

+21
-1
lines changed

auth.go

+21-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import (
1111
)
1212

1313
type MagicLinkOptions struct {
14-
Language string
14+
Language MagicLinkLanguage
1515
MagicLinkPath string
1616
RedirectURL string
1717
TTL int
@@ -125,6 +125,10 @@ func (a *auth) ValidateJWT(jwt string) (string, error) {
125125

126126
func (a *auth) createMagicLink(args magicLinkArgs, opts *MagicLinkOptions) (*MagicLink, error) {
127127
if opts != nil {
128+
if err := validateLanguage(opts.Language); err != nil {
129+
return nil, err
130+
}
131+
128132
args.Language = opts.Language
129133
args.MagicLinkPath = opts.MagicLinkPath
130134
args.RedirectURL = opts.RedirectURL
@@ -159,3 +163,19 @@ func (a *auth) getPublicKey(token *jwt.Token) (interface{}, error) {
159163

160164
return pubKey, err
161165
}
166+
167+
func validateLanguage(language MagicLinkLanguage) error {
168+
if language == "" {
169+
return nil
170+
}
171+
172+
validLanguages := []MagicLinkLanguage{De, En, Es, It, Pl, Pt, Zh}
173+
174+
for _, l := range validLanguages {
175+
if l == language {
176+
return nil
177+
}
178+
}
179+
180+
return fmt.Errorf("Language must be one of %v", validLanguages)
181+
}

0 commit comments

Comments
 (0)