Skip to content

Commit 815f61f

Browse files
committed
fix: PR comments
1 parent 57ed0a1 commit 815f61f

File tree

11 files changed

+68
-102
lines changed

11 files changed

+68
-102
lines changed

recipe/emailverification/api/implementation.go

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import (
2020
"fmt"
2121

2222
"github.com/supertokens/supertokens-golang/ingredients/emaildelivery"
23-
"github.com/supertokens/supertokens-golang/recipe/emailverification/claims"
23+
"github.com/supertokens/supertokens-golang/recipe/emailverification/evclaims"
2424
"github.com/supertokens/supertokens-golang/recipe/emailverification/evmodels"
2525
"github.com/supertokens/supertokens-golang/recipe/session/sessmodels"
2626
"github.com/supertokens/supertokens-golang/supertokens"
@@ -34,7 +34,10 @@ func MakeAPIImplementation() evmodels.APIInterface {
3434
}
3535
if resp.OK != nil {
3636
if sessionContainer != nil {
37-
sessionContainer.FetchAndSetClaimWithContext(claims.EmailVerificationClaim.TypeSessionClaim, userContext)
37+
err := sessionContainer.FetchAndSetClaimWithContext(evclaims.EmailVerificationClaim, userContext)
38+
if err != nil {
39+
return evmodels.VerifyEmailPOSTResponse{}, err
40+
}
3841
}
3942
return evmodels.VerifyEmailPOSTResponse{
4043
OK: resp.OK,
@@ -51,12 +54,12 @@ func MakeAPIImplementation() evmodels.APIInterface {
5154
return evmodels.IsEmailVerifiedGETResponse{}, supertokens.BadInputError{Msg: "Session is undefined. Should not come here."}
5255
}
5356

54-
err := sessionContainer.FetchAndSetClaimWithContext(claims.EmailVerificationClaim.TypeSessionClaim, userContext)
57+
err := sessionContainer.FetchAndSetClaimWithContext(evclaims.EmailVerificationClaim, userContext)
5558
if err != nil {
5659
return evmodels.IsEmailVerifiedGETResponse{}, err
5760
}
5861

59-
isVerified, err := sessionContainer.GetClaimValueWithContext(claims.EmailVerificationClaim.TypeSessionClaim, userContext)
62+
isVerified, err := sessionContainer.GetClaimValueWithContext(evclaims.EmailVerificationClaim, userContext)
6063
if err != nil {
6164
return evmodels.IsEmailVerifiedGETResponse{}, err
6265
}

recipe/emailverification/claims/claims.go

Lines changed: 0 additions & 18 deletions
This file was deleted.

recipe/emailverification/emailverificationClaim.go

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@ import (
44
"errors"
55
"time"
66

7-
evclaims "github.com/supertokens/supertokens-golang/recipe/emailverification/claims"
7+
"github.com/supertokens/supertokens-golang/recipe/emailverification/evclaims"
88
"github.com/supertokens/supertokens-golang/recipe/session/claims"
99
"github.com/supertokens/supertokens-golang/supertokens"
1010
)
1111

1212
// key string, fetchValue claims.FetchValueFunc
13-
func NewEmailVerificationClaim() *evclaims.TypeEmailVerificationClaim {
13+
func NewEmailVerificationClaim() (*claims.TypeSessionClaim, *evclaims.TypeEmailVerificationClaimValidators) {
1414
fetchValue := func(userId string, userContext supertokens.UserContext) (interface{}, error) {
1515
instance, err := getRecipeInstanceOrThrowError()
1616
if err != nil {
@@ -34,30 +34,27 @@ func NewEmailVerificationClaim() *evclaims.TypeEmailVerificationClaim {
3434
}
3535
}
3636

37-
booleanClaim := claims.BooleanClaim("st-ev", fetchValue, nil)
37+
evClaim, booleanClaimValidators := claims.BooleanClaim("st-ev", fetchValue, nil)
3838

39-
emailVerificationClaim := &evclaims.TypeEmailVerificationClaim{
40-
TypeBooleanClaim: booleanClaim,
41-
}
42-
emailVerificationClaim.Validators = &evclaims.EmailVerificationClaimValidators{
43-
BooleanClaimValidators: booleanClaim.Validators,
39+
validators := &evclaims.TypeEmailVerificationClaimValidators{
40+
BooleanClaimValidators: booleanClaimValidators,
4441
IsVerified: func(refetchTimeOnFalseInSeconds *int64) *claims.SessionClaimValidator {
4542
if refetchTimeOnFalseInSeconds == nil {
4643
var defaultTimeout int64 = 10
4744
refetchTimeOnFalseInSeconds = &defaultTimeout
4845
}
4946

50-
claimValidator := booleanClaim.Validators.HasValue(true, nil, nil)
47+
claimValidator := booleanClaimValidators.HasValue(true, nil, nil)
5148
claimValidator.ShouldRefetch = func(payload map[string]interface{}, userContext supertokens.UserContext) bool {
52-
value := emailVerificationClaim.GetValueFromPayload(payload, userContext)
53-
return value == nil || (value == false && *emailVerificationClaim.GetLastRefetchTime(payload, userContext) < time.Now().UnixMilli()-*refetchTimeOnFalseInSeconds*1000)
49+
value := evClaim.GetValueFromPayload(payload, userContext)
50+
return value == nil || (value == false && *evClaim.GetLastRefetchTime(payload, userContext) < time.Now().UnixMilli()-*refetchTimeOnFalseInSeconds*1000)
5451
}
5552
return claimValidator
5653
},
5754
}
58-
return emailVerificationClaim
55+
return evClaim, validators
5956
}
6057

6158
func init() {
62-
evclaims.EmailVerificationClaim = NewEmailVerificationClaim()
59+
evclaims.EmailVerificationClaim, evclaims.EmailVerificationClaimValidators = NewEmailVerificationClaim()
6360
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package evclaims
2+
3+
import (
4+
"github.com/supertokens/supertokens-golang/recipe/session/claims"
5+
)
6+
7+
type TypeEmailVerificationClaimValidators struct {
8+
*claims.BooleanClaimValidators
9+
IsVerified func(refetchTimeOnFalseInSeconds *int64) *claims.SessionClaimValidator
10+
}
11+
12+
var EmailVerificationClaim *claims.TypeSessionClaim
13+
14+
var EmailVerificationClaimValidators *TypeEmailVerificationClaimValidators

recipe/emailverification/recipe.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import (
2121

2222
"github.com/supertokens/supertokens-golang/ingredients/emaildelivery"
2323
"github.com/supertokens/supertokens-golang/recipe/emailverification/api"
24-
"github.com/supertokens/supertokens-golang/recipe/emailverification/claims"
24+
"github.com/supertokens/supertokens-golang/recipe/emailverification/evclaims"
2525
"github.com/supertokens/supertokens-golang/recipe/emailverification/evmodels"
2626
"github.com/supertokens/supertokens-golang/recipe/session"
2727
"github.com/supertokens/supertokens-golang/supertokens"
@@ -129,11 +129,11 @@ func recipeInit(config evmodels.TypeInput) supertokens.Recipe {
129129
return
130130
}
131131

132-
sessionRecipe.AddClaimFromOtherRecipe(claims.EmailVerificationClaim.TypeSessionClaim)
132+
sessionRecipe.AddClaimFromOtherRecipe(evclaims.EmailVerificationClaim)
133133

134134
if config.Mode == "REQUIRED" {
135135
sessionRecipe.AddClaimValidatorFromOtherRecipe(
136-
*claims.EmailVerificationClaim.Validators.IsVerified(nil),
136+
*evclaims.EmailVerificationClaimValidators.IsVerified(nil),
137137
)
138138
}
139139
})

recipe/session/claims/booleanClaim.go

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,21 @@
11
package claims
22

3-
func BooleanClaim(key string, fetchValue FetchValueFunc, defaultMaxAgeInSeconds *int64) *TypeBooleanClaim {
4-
primitiveClaim := PrimitiveClaim(key, fetchValue, defaultMaxAgeInSeconds)
3+
func BooleanClaim(key string, fetchValue FetchValueFunc, defaultMaxAgeInSeconds *int64) (*TypeSessionClaim, *BooleanClaimValidators) {
4+
claim, primitiveClaimValidators := PrimitiveClaim(key, fetchValue, defaultMaxAgeInSeconds)
55

6-
booleanClaim := &TypeBooleanClaim{
7-
TypePrimitiveClaim: *primitiveClaim,
8-
}
9-
10-
booleanClaim.Validators = &BooleanClaimValidators{
11-
PrimitiveClaimValidators: primitiveClaim.Validators,
6+
validators := &BooleanClaimValidators{
7+
PrimitiveClaimValidators: primitiveClaimValidators,
128

139
IsTrue: func(maxAgeInSeconds *int64, id *string) *SessionClaimValidator {
14-
return primitiveClaim.Validators.HasValue(true, maxAgeInSeconds, id)
10+
return primitiveClaimValidators.HasValue(true, maxAgeInSeconds, id)
1511
},
1612

1713
IsFalse: func(maxAgeInSeconds *int64, id *string) *SessionClaimValidator {
18-
return primitiveClaim.Validators.HasValue(false, maxAgeInSeconds, id)
14+
return primitiveClaimValidators.HasValue(false, maxAgeInSeconds, id)
1915
},
2016
}
2117

22-
return booleanClaim
23-
}
24-
25-
type TypeBooleanClaim struct {
26-
TypePrimitiveClaim
27-
Validators *BooleanClaimValidators
18+
return claim, validators
2819
}
2920

3021
type BooleanClaimValidators struct {

recipe/session/claims/booleanClaim_test.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import (
99
)
1010

1111
func TestBooleanClaim(t *testing.T) {
12-
boolClaim := BooleanClaim(
12+
boolClaim, validators := BooleanClaim(
1313
"test",
1414
func(userId string, userContext supertokens.UserContext) (interface{}, error) {
1515
return map[string]interface{}{}, nil
@@ -20,7 +20,6 @@ func TestBooleanClaim(t *testing.T) {
2020
payload := map[string]interface{}{}
2121
payload = boolClaim.AddToPayload_internal(payload, true, nil)
2222

23-
validators := boolClaim.Validators
2423
assert.True(t, validators.IsTrue(nil, nil).Validate(payload, nil).IsValid)
2524
assert.False(t, validators.IsFalse(nil, nil).Validate(payload, nil).IsValid)
2625

recipe/session/claims/primitiveArrayClaim.go

Lines changed: 19 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import (
66
"github.com/supertokens/supertokens-golang/supertokens"
77
)
88

9-
func PrimitiveArrayClaim(key string, fetchValue FetchValueFunc, defaultMaxAgeInSeconds *int64) *TypePrimitiveArrayClaim {
9+
func PrimitiveArrayClaim(key string, fetchValue FetchValueFunc, defaultMaxAgeInSeconds *int64) (*TypeSessionClaim, *PrimitiveArrayClaimValidators) {
1010
if defaultMaxAgeInSeconds == nil {
1111
val := int64(300)
1212
defaultMaxAgeInSeconds = &val
@@ -47,11 +47,7 @@ func PrimitiveArrayClaim(key string, fetchValue FetchValueFunc, defaultMaxAgeInS
4747
return nil
4848
}
4949

50-
primitiveArrayClaim := &TypePrimitiveArrayClaim{
51-
TypeSessionClaim: sessionClaim,
52-
}
53-
54-
primitiveArrayClaim.Validators = &PrimitiveArrayClaimValidators{
50+
validators := &PrimitiveArrayClaimValidators{
5551
Includes: func(val interface{}, maxAgeInSeconds *int64, id *string) *SessionClaimValidator {
5652
if maxAgeInSeconds == nil {
5753
maxAgeInSeconds = defaultMaxAgeInSeconds
@@ -64,17 +60,17 @@ func PrimitiveArrayClaim(key string, fetchValue FetchValueFunc, defaultMaxAgeInS
6460
ID: claimId,
6561
Claim: sessionClaim,
6662
ShouldRefetch: func(payload map[string]interface{}, userContext supertokens.UserContext) bool {
67-
claimVal, ok := primitiveArrayClaim.GetValueFromPayload(payload, userContext).([]interface{})
63+
claimVal, ok := sessionClaim.GetValueFromPayload(payload, userContext).([]interface{})
6864
if !ok || claimVal == nil {
6965
return true
7066
}
7167
if maxAgeInSeconds != nil {
72-
return *primitiveArrayClaim.GetLastRefetchTime(payload, userContext) < time.Now().UnixMilli()-*maxAgeInSeconds*1000
68+
return *sessionClaim.GetLastRefetchTime(payload, userContext) < time.Now().UnixMilli()-*maxAgeInSeconds*1000
7369
}
7470
return false
7571
},
7672
Validate: func(payload map[string]interface{}, userContext supertokens.UserContext) ClaimValidationResult {
77-
claimVal := primitiveArrayClaim.GetValueFromPayload(payload, userContext).([]interface{})
73+
claimVal := sessionClaim.GetValueFromPayload(payload, userContext).([]interface{})
7874

7975
if claimVal == nil {
8076
return ClaimValidationResult{
@@ -86,7 +82,7 @@ func PrimitiveArrayClaim(key string, fetchValue FetchValueFunc, defaultMaxAgeInS
8682
},
8783
}
8884
}
89-
ageInSeconds := (time.Now().UnixMilli() - *primitiveArrayClaim.GetLastRefetchTime(payload, userContext)) / 1000
85+
ageInSeconds := (time.Now().UnixMilli() - *sessionClaim.GetLastRefetchTime(payload, userContext)) / 1000
9086
if maxAgeInSeconds != nil && ageInSeconds > *maxAgeInSeconds {
9187
return ClaimValidationResult{
9288
IsValid: false,
@@ -125,17 +121,17 @@ func PrimitiveArrayClaim(key string, fetchValue FetchValueFunc, defaultMaxAgeInS
125121
ID: claimId,
126122
Claim: sessionClaim,
127123
ShouldRefetch: func(payload map[string]interface{}, userContext supertokens.UserContext) bool {
128-
val, ok := primitiveArrayClaim.GetValueFromPayload(payload, userContext).([]interface{})
124+
val, ok := sessionClaim.GetValueFromPayload(payload, userContext).([]interface{})
129125
if !ok || val == nil {
130126
return true
131127
}
132128
if maxAgeInSeconds != nil {
133-
return *primitiveArrayClaim.GetLastRefetchTime(payload, userContext) < time.Now().UnixMilli()-*maxAgeInSeconds*1000
129+
return *sessionClaim.GetLastRefetchTime(payload, userContext) < time.Now().UnixMilli()-*maxAgeInSeconds*1000
134130
}
135131
return false
136132
},
137133
Validate: func(payload map[string]interface{}, userContext supertokens.UserContext) ClaimValidationResult {
138-
claimVal := primitiveArrayClaim.GetValueFromPayload(payload, userContext).([]interface{})
134+
claimVal := sessionClaim.GetValueFromPayload(payload, userContext).([]interface{})
139135

140136
if claimVal == nil {
141137
return ClaimValidationResult{
@@ -147,7 +143,7 @@ func PrimitiveArrayClaim(key string, fetchValue FetchValueFunc, defaultMaxAgeInS
147143
},
148144
}
149145
}
150-
ageInSeconds := (time.Now().UnixMilli() - *primitiveArrayClaim.GetLastRefetchTime(payload, userContext)) / 1000
146+
ageInSeconds := (time.Now().UnixMilli() - *sessionClaim.GetLastRefetchTime(payload, userContext)) / 1000
151147
if maxAgeInSeconds != nil && ageInSeconds > *maxAgeInSeconds {
152148
return ClaimValidationResult{
153149
IsValid: false,
@@ -186,17 +182,17 @@ func PrimitiveArrayClaim(key string, fetchValue FetchValueFunc, defaultMaxAgeInS
186182
ID: claimId,
187183
Claim: sessionClaim,
188184
ShouldRefetch: func(payload map[string]interface{}, userContext supertokens.UserContext) bool {
189-
val, ok := primitiveArrayClaim.GetValueFromPayload(payload, userContext).([]interface{})
185+
val, ok := sessionClaim.GetValueFromPayload(payload, userContext).([]interface{})
190186
if !ok || val == nil {
191187
return true
192188
}
193189
if maxAgeInSeconds != nil {
194-
return *primitiveArrayClaim.GetLastRefetchTime(payload, userContext) < time.Now().UnixMilli()-*maxAgeInSeconds*1000
190+
return *sessionClaim.GetLastRefetchTime(payload, userContext) < time.Now().UnixMilli()-*maxAgeInSeconds*1000
195191
}
196192
return false
197193
},
198194
Validate: func(payload map[string]interface{}, userContext supertokens.UserContext) ClaimValidationResult {
199-
claimVal := primitiveArrayClaim.GetValueFromPayload(payload, userContext).([]interface{})
195+
claimVal := sessionClaim.GetValueFromPayload(payload, userContext).([]interface{})
200196

201197
if claimVal == nil {
202198
return ClaimValidationResult{
@@ -208,7 +204,7 @@ func PrimitiveArrayClaim(key string, fetchValue FetchValueFunc, defaultMaxAgeInS
208204
},
209205
}
210206
}
211-
ageInSeconds := (time.Now().UnixMilli() - *primitiveArrayClaim.GetLastRefetchTime(payload, userContext)) / 1000
207+
ageInSeconds := (time.Now().UnixMilli() - *sessionClaim.GetLastRefetchTime(payload, userContext)) / 1000
212208
if maxAgeInSeconds != nil && ageInSeconds > *maxAgeInSeconds {
213209
return ClaimValidationResult{
214210
IsValid: false,
@@ -248,17 +244,17 @@ func PrimitiveArrayClaim(key string, fetchValue FetchValueFunc, defaultMaxAgeInS
248244
ID: claimId,
249245
Claim: sessionClaim,
250246
ShouldRefetch: func(payload map[string]interface{}, userContext supertokens.UserContext) bool {
251-
val, ok := primitiveArrayClaim.GetValueFromPayload(payload, userContext).([]interface{})
247+
val, ok := sessionClaim.GetValueFromPayload(payload, userContext).([]interface{})
252248
if !ok || val == nil {
253249
return true
254250
}
255251
if maxAgeInSeconds != nil {
256-
return *primitiveArrayClaim.GetLastRefetchTime(payload, userContext) < time.Now().UnixMilli()-*maxAgeInSeconds*1000
252+
return *sessionClaim.GetLastRefetchTime(payload, userContext) < time.Now().UnixMilli()-*maxAgeInSeconds*1000
257253
}
258254
return false
259255
},
260256
Validate: func(payload map[string]interface{}, userContext supertokens.UserContext) ClaimValidationResult {
261-
claimVal := primitiveArrayClaim.GetValueFromPayload(payload, userContext).([]interface{})
257+
claimVal := sessionClaim.GetValueFromPayload(payload, userContext).([]interface{})
262258

263259
if claimVal == nil {
264260
return ClaimValidationResult{
@@ -270,7 +266,7 @@ func PrimitiveArrayClaim(key string, fetchValue FetchValueFunc, defaultMaxAgeInS
270266
},
271267
}
272268
}
273-
ageInSeconds := (time.Now().UnixMilli() - *primitiveArrayClaim.GetLastRefetchTime(payload, userContext)) / 1000
269+
ageInSeconds := (time.Now().UnixMilli() - *sessionClaim.GetLastRefetchTime(payload, userContext)) / 1000
274270
if maxAgeInSeconds != nil && ageInSeconds > *maxAgeInSeconds {
275271
return ClaimValidationResult{
276272
IsValid: false,
@@ -300,12 +296,7 @@ func PrimitiveArrayClaim(key string, fetchValue FetchValueFunc, defaultMaxAgeInS
300296
},
301297
}
302298

303-
return primitiveArrayClaim
304-
}
305-
306-
type TypePrimitiveArrayClaim struct {
307-
*TypeSessionClaim
308-
Validators *PrimitiveArrayClaimValidators
299+
return sessionClaim, validators
309300
}
310301

311302
type PrimitiveArrayClaimValidators struct {

recipe/session/claims/primitiveArrayClaim_test.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import (
88
)
99

1010
func TestPrimitiveArrayClaim(t *testing.T) {
11-
primArrayClaim := PrimitiveArrayClaim(
11+
primArrayClaim, validators := PrimitiveArrayClaim(
1212
"test",
1313
func(userId string, userContext supertokens.UserContext) (interface{}, error) {
1414
return map[string]interface{}{}, nil
@@ -22,7 +22,6 @@ func TestPrimitiveArrayClaim(t *testing.T) {
2222
true,
2323
}, nil)
2424

25-
validators := primArrayClaim.Validators
2625
assert.True(t, validators.Includes(100, nil, nil).Validate(payload, nil).IsValid)
2726
assert.True(t, validators.Includes("world", nil, nil).Validate(payload, nil).IsValid)
2827
assert.True(t, validators.Includes(true, nil, nil).Validate(payload, nil).IsValid)

0 commit comments

Comments
 (0)