Skip to content

Commit 839065b

Browse files
committed
use enum
1 parent 7bd8b6b commit 839065b

File tree

1 file changed

+27
-18
lines changed

1 file changed

+27
-18
lines changed

pkg/service/kyc.go

Lines changed: 27 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,20 @@ import (
99

1010
type KYC interface {
1111
MeetsRequirements(ctx context.Context, userId string, assetType string, cost float64) (met bool, err error)
12-
GetTransactionLevel(assetType string, cost float64) int
13-
GetUserLevel(ctx context.Context, userId string) (level int, err error)
14-
UpdateUserLevel(ctx context.Context, userId string) (level int, err error)
12+
GetTransactionLevel(assetType string, cost float64) KYCLevel
13+
GetUserLevel(ctx context.Context, userId string) (level KYCLevel, err error)
14+
UpdateUserLevel(ctx context.Context, userId string) (level KYCLevel, err error)
1515
}
1616

17+
type KYCLevel int
18+
19+
const (
20+
Level0 KYCLevel = iota
21+
Level1
22+
Level2
23+
Level3
24+
)
25+
1726
type kyc struct {
1827
repos repository.Repositories
1928
}
@@ -36,25 +45,25 @@ func (k kyc) MeetsRequirements(ctx context.Context, userId string, assetType str
3645
}
3746
}
3847

39-
func (k kyc) GetTransactionLevel(assetType string, cost float64) int {
48+
func (k kyc) GetTransactionLevel(assetType string, cost float64) KYCLevel {
4049
if assetType == "NFT" {
4150
if cost < 1000.00 {
42-
return 1
51+
return Level1
4352
} else if cost < 5000.00 {
44-
return 2
53+
return Level2
4554
} else {
46-
return 3
55+
return Level3
4756
}
4857
} else {
4958
if cost < 5000.00 {
50-
return 2
59+
return Level2
5160
} else {
52-
return 3
61+
return Level3
5362
}
5463
}
5564
}
5665

57-
func (k kyc) GetUserLevel(ctx context.Context, userId string) (level int, err error) {
66+
func (k kyc) GetUserLevel(ctx context.Context, userId string) (level KYCLevel, err error) {
5867
level, err = k.UpdateUserLevel(ctx, userId)
5968
if err != nil {
6069
return level, err
@@ -63,7 +72,7 @@ func (k kyc) GetUserLevel(ctx context.Context, userId string) (level int, err er
6372
return level, nil
6473
}
6574

66-
func (k kyc) UpdateUserLevel(ctx context.Context, userId string) (level int, err error) {
75+
func (k kyc) UpdateUserLevel(ctx context.Context, userId string) (level KYCLevel, err error) {
6776
identity, err := k.repos.Identity.GetByUserId(ctx, userId)
6877
if err != nil {
6978
return level, err
@@ -84,19 +93,19 @@ func (k kyc) UpdateUserLevel(ctx context.Context, userId string) (level int, err
8493
}
8594

8695
if points >= 4 {
87-
if identity.Level != 2 {
88-
identity.Level = 2
96+
if identity.Level != int(Level2) {
97+
identity.Level = int(Level2)
8998
k.repos.Identity.Update(ctx, userId, model.IdentityUpdates{Level: &identity.Level})
9099
}
91100
} else if points >= 1 && identity.EmailVerified != nil {
92-
if identity.Level != 1 {
93-
identity.Level = 1
101+
if identity.Level != int(Level1) {
102+
identity.Level = int(Level1)
94103
k.repos.Identity.Update(ctx, userId, model.IdentityUpdates{Level: &identity.Level})
95104
}
96-
} else if points <= 1 && identity.Level != 0 {
97-
identity.Level = 0
105+
} else if points <= 1 && identity.Level != int(Level0) {
106+
identity.Level = int(Level0)
98107
k.repos.Identity.Update(ctx, userId, model.IdentityUpdates{Level: &identity.Level})
99108
}
100109

101-
return identity.Level, nil
110+
return KYCLevel(identity.Level), nil
102111
}

0 commit comments

Comments
 (0)