forked from ebhomengo/niki
feat(auth): add remove code from redis
This commit is contained in:
parent
866c5b42e1
commit
0760ab8fe2
|
@ -8,7 +8,7 @@ http_server:
|
||||||
port: 1313
|
port: 1313
|
||||||
|
|
||||||
mysql:
|
mysql:
|
||||||
port: 3308
|
port: 3306
|
||||||
host: localhost
|
host: localhost
|
||||||
db_name: niki_db
|
db_name: niki_db
|
||||||
username: niki
|
username: niki
|
||||||
|
|
|
@ -4,10 +4,10 @@ services:
|
||||||
mysql:
|
mysql:
|
||||||
image: mysql:8.0
|
image: mysql:8.0
|
||||||
ports:
|
ports:
|
||||||
- "3308:3306"
|
- "3306:3306"
|
||||||
container_name: niki-database
|
container_name: niki-database
|
||||||
volumes:
|
volumes:
|
||||||
- dbdata:/var/lib/mysql
|
- niki-db-data:/data
|
||||||
restart: always
|
restart: always
|
||||||
command: [ 'mysqld', '--character-set-server=utf8mb4', '--collation-server=utf8mb4_unicode_ci' ]
|
command: [ 'mysqld', '--character-set-server=utf8mb4', '--collation-server=utf8mb4_unicode_ci' ]
|
||||||
environment:
|
environment:
|
||||||
|
@ -34,3 +34,4 @@ services:
|
||||||
volumes:
|
volumes:
|
||||||
dbdata:
|
dbdata:
|
||||||
niki-redis-data:
|
niki-redis-data:
|
||||||
|
niki-db-data:
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
production:
|
production:
|
||||||
dialect: mysql
|
dialect: mysql
|
||||||
datasource: niki:nikiappt0lk2o20(localhost:3308)/niki_db?parseTime=true
|
datasource: niki:nikiappt0lk2o20(localhost:3306)/niki_db?parseTime=true
|
||||||
dir: repository/mysql/migration
|
dir: repository/mysql/migration
|
||||||
table: gorp_migrations
|
table: gorp_migrations
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
package redisotp
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
richerror "git.gocasts.ir/ebhomengo/niki/pkg/rich_error"
|
||||||
|
)
|
||||||
|
|
||||||
|
func (d DB) DeleteCodeByPhoneNumber(ctx context.Context, phoneNumber string) (bool, error) {
|
||||||
|
const op = "redisotp.GetCodeByPhoneNumber"
|
||||||
|
|
||||||
|
success, err := d.adapter.Client().Del(ctx, phoneNumber).Result()
|
||||||
|
if err != nil {
|
||||||
|
return false, richerror.New(op).WithErr(err).WithKind(richerror.KindUnexpected)
|
||||||
|
}
|
||||||
|
if success != 1 {
|
||||||
|
return false, nil
|
||||||
|
}
|
||||||
|
return true, nil
|
||||||
|
}
|
|
@ -19,6 +19,14 @@ func (s Service) LoginOrRegister(ctx context.Context, req benefactoreparam.Login
|
||||||
return benefactoreparam.LoginOrRegisterResponse{}, richerror.New(op).WithMessage(errmsg.ErrorMsgOtpCodeIsNotValid).WithKind(richerror.KindForbidden)
|
return benefactoreparam.LoginOrRegisterResponse{}, richerror.New(op).WithMessage(errmsg.ErrorMsgOtpCodeIsNotValid).WithKind(richerror.KindForbidden)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
deleted, dErr := s.redisOtp.DeleteCodeByPhoneNumber(ctx, req.PhoneNumber)
|
||||||
|
if dErr != nil {
|
||||||
|
return benefactoreparam.LoginOrRegisterResponse{}, richerror.New(op).WithErr(gErr).WithKind(richerror.KindUnexpected)
|
||||||
|
}
|
||||||
|
if !deleted {
|
||||||
|
//TODO - add to log
|
||||||
|
}
|
||||||
|
|
||||||
isExist, benefactor, rErr := s.repo.IsExistBenefactorByPhoneNumber(ctx, req.PhoneNumber)
|
isExist, benefactor, rErr := s.repo.IsExistBenefactorByPhoneNumber(ctx, req.PhoneNumber)
|
||||||
if rErr != nil {
|
if rErr != nil {
|
||||||
return benefactoreparam.LoginOrRegisterResponse{}, richerror.New(op).WithErr(rErr).WithKind(richerror.KindUnexpected)
|
return benefactoreparam.LoginOrRegisterResponse{}, richerror.New(op).WithErr(rErr).WithKind(richerror.KindUnexpected)
|
||||||
|
|
|
@ -26,6 +26,7 @@ type RedisOtp interface {
|
||||||
IsExistPhoneNumber(ctx context.Context, phoneNumber string) (bool, error)
|
IsExistPhoneNumber(ctx context.Context, phoneNumber string) (bool, error)
|
||||||
SaveCodeWithPhoneNumber(ctx context.Context, phoneNumber string, code string, expireTime time.Duration) error
|
SaveCodeWithPhoneNumber(ctx context.Context, phoneNumber string, code string, expireTime time.Duration) error
|
||||||
GetCodeByPhoneNumber(ctx context.Context, phoneNumber string) (string, error)
|
GetCodeByPhoneNumber(ctx context.Context, phoneNumber string) (string, error)
|
||||||
|
DeleteCodeByPhoneNumber(ctx context.Context, phoneNumber string) (bool, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
type SmsProviderClient interface {
|
type SmsProviderClient interface {
|
||||||
|
|
Loading…
Reference in New Issue