From c02d8cda69c155845d0d07628affd777df70e18c Mon Sep 17 00:00:00 2001 From: ericprd Date: Sun, 2 Mar 2025 10:07:42 +0800 Subject: [PATCH] fix: return error when there is no subscribe plan found --- internal/accessor/subscribeplan/get_by_id.go | 21 ++++++++++++++++++++ internal/accessor/subscribeplan/impl.go | 1 + internal/services/auth/register_user.go | 7 ++++++- 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 internal/accessor/subscribeplan/get_by_id.go diff --git a/internal/accessor/subscribeplan/get_by_id.go b/internal/accessor/subscribeplan/get_by_id.go new file mode 100644 index 0000000..dd13446 --- /dev/null +++ b/internal/accessor/subscribeplan/get_by_id.go @@ -0,0 +1,21 @@ +package subscribeplanrepository + +import ( + "errors" + subscribeplandomain "legalgo-BE-go/internal/domain/subscribe_plan" + + "gorm.io/gorm" +) + +func (s *SubsPlan) GetByID(id string) (subscribeplandomain.SubscribePlan, error) { + var subscribePlan subscribeplandomain.SubscribePlan + + if err := s.DB.First(&subscribePlan, "id = ? ", id).Error; err != nil { + if errors.Is(err, gorm.ErrRecordNotFound) { + return subscribePlan, errors.New("subscribe plan not found") + } + return subscribePlan, err + } + + return subscribePlan, nil +} diff --git a/internal/accessor/subscribeplan/impl.go b/internal/accessor/subscribeplan/impl.go index 6d3dc6c..373d996 100644 --- a/internal/accessor/subscribeplan/impl.go +++ b/internal/accessor/subscribeplan/impl.go @@ -12,6 +12,7 @@ type SubsPlan struct { type SubsPlanIntf interface { Create(subscribeplandomain.SubscribePlanReq) error GetAll() ([]subscribeplandomain.SubscribePlan, error) + GetByID(string) (subscribeplandomain.SubscribePlan, error) GetDefault() (subscribeplandomain.SubscribePlan, error) } diff --git a/internal/services/auth/register_user.go b/internal/services/auth/register_user.go index 1f5f883..618da88 100644 --- a/internal/services/auth/register_user.go +++ b/internal/services/auth/register_user.go @@ -25,9 +25,14 @@ func (a *AuthSvc) RegisterUser(spec authdomain.RegisterUserReq) (string, error) spec.SubscribePlanID = subsPlan.ID } + _, err = a.subsPlanRepo.GetByID(spec.SubscribePlanID) + if err != nil { + return "", errors.New(err.Error()) + } + subsId, err := a.subsRepo.Create(spec.SubscribePlanID) if err != nil { - return "", nil + return "", err } hashedPwd, err := HashPassword(spec.Password)