Skip to content

Commit d13054d

Browse files
committed
Better dates, and more generous token generator
1 parent 540205c commit d13054d

File tree

3 files changed

+31
-9
lines changed

3 files changed

+31
-9
lines changed

backend/cmd/debug/token_form.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ import (
1414
)
1515

1616
type WayfarerClaims struct {
17-
UserID string `json:"user_id"`
18-
UserRole string `json:"user_role"`
17+
UserID string `json:"user_id"`
18+
UserRoles []string `json:"user_roles"`
1919
jwt.RegisteredClaims
2020
}
2121

@@ -114,8 +114,8 @@ func (m model) generateToken() tea.Cmd {
114114

115115
now := time.Now()
116116
claims := WayfarerClaims{
117-
UserID: form.selectedUserID,
118-
UserRole: "user",
117+
UserID: form.selectedUserID,
118+
UserRoles: []string{"user"},
119119
RegisteredClaims: jwt.RegisteredClaims{
120120
Issuer: "wayfarer",
121121
IssuedAt: jwt.NewNumericDate(now),

backend/cmd/gentoken/main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ func main() {
2626
now := time.Now()
2727
claims := WayfarerClaims{
2828
UserID: userID,
29-
UserRoles: []string{"user"},
29+
UserRoles: []string{"user", "admin", "superadmin"},
3030
RegisteredClaims: jwt.RegisteredClaims{
3131
Issuer: "wayfarer",
3232
IssuedAt: jwt.NewNumericDate(now),

backend/internal/graph/scalars/scalars.go

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,35 @@ func (d *DateTime) UnmarshalGQL(v interface{}) error {
2525
return fmt.Errorf("DateTime must be a string")
2626
}
2727

28+
// Try parsing as RFC3339 first (e.g., "2025-12-12T00:00:00Z")
2829
t, err := time.Parse(time.RFC3339, str)
29-
if err != nil {
30-
return fmt.Errorf("invalid DateTime format: %w", err)
30+
if err == nil {
31+
d.Time = t
32+
return nil
3133
}
3234

33-
d.Time = t
34-
return nil
35+
// Try parsing as date only (e.g., "2025-12-12"), assume UTC midnight
36+
t, err = time.Parse("2006-01-02", str)
37+
if err == nil {
38+
d.Time = t
39+
return nil
40+
}
41+
42+
// Try parsing as datetime-local format (e.g., "2025-12-12T00:00"), assume UTC
43+
t, err = time.Parse("2006-01-02T15:04", str)
44+
if err == nil {
45+
d.Time = t
46+
return nil
47+
}
48+
49+
// Try parsing as datetime-local with seconds (e.g., "2025-12-12T00:00:00"), assume UTC
50+
t, err = time.Parse("2006-01-02T15:04:05", str)
51+
if err == nil {
52+
d.Time = t
53+
return nil
54+
}
55+
56+
return fmt.Errorf("invalid DateTime format: %w", err)
3557
}
3658

3759
// Date scalar representing YYYY-MM-DD date

0 commit comments

Comments
 (0)