fix: update user plan and rearrange structur project
This commit is contained in:
parent
a47b7b7d3d
commit
13c976dcbf
@ -7,7 +7,7 @@ import (
|
||||
redisaccessor "legalgo-BE-go/internal/accessor/redis"
|
||||
staffrepository "legalgo-BE-go/internal/accessor/staff"
|
||||
subscriberepository "legalgo-BE-go/internal/accessor/subscribe"
|
||||
subscribeplanrepository "legalgo-BE-go/internal/accessor/subscribeplan"
|
||||
subscribeplanrepository "legalgo-BE-go/internal/accessor/subscribe_plan"
|
||||
tagrepository "legalgo-BE-go/internal/accessor/tag"
|
||||
userrepository "legalgo-BE-go/internal/accessor/user"
|
||||
|
||||
|
||||
@ -6,13 +6,13 @@ import (
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
|
||||
func (s *SubsAccs) Create(subsPlanId string) (string, error) {
|
||||
func (s *accessor) Create(subsPlanId string) (string, error) {
|
||||
spec := &subscribedomain.Subscribe{
|
||||
ID: uuid.NewString(),
|
||||
SubscribePlanID: subsPlanId,
|
||||
}
|
||||
|
||||
if err := s.DB.Create(&spec).Error; err != nil {
|
||||
if err := s.db.Create(&spec).Error; err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
|
||||
@ -3,15 +3,15 @@ package subscriberepository
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"legalgo-BE-go/database"
|
||||
subscribedomain "legalgo-BE-go/internal/domain/subscribe"
|
||||
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
func (s *SubsAccs) GetByID(id string) (database.Subscribe, error) {
|
||||
var subscribe database.Subscribe
|
||||
func (s *accessor) GetByID(id string) (subscribedomain.Subscribe, error) {
|
||||
var subscribe subscribedomain.Subscribe
|
||||
|
||||
if err := s.DB.First(&subscribe, "id = ?", id).Error; err != nil {
|
||||
if err := s.db.First(&subscribe, "id = ?", id).Error; err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
return subscribe, fmt.Errorf("subscribe data not found: %v", err)
|
||||
}
|
||||
|
||||
@ -1,17 +1,20 @@
|
||||
package subscriberepository
|
||||
|
||||
import "legalgo-BE-go/database"
|
||||
import (
|
||||
"legalgo-BE-go/database"
|
||||
subscribedomain "legalgo-BE-go/internal/domain/subscribe"
|
||||
)
|
||||
|
||||
type SubsAccs struct {
|
||||
DB *database.DB
|
||||
type accessor struct {
|
||||
db *database.DB
|
||||
}
|
||||
|
||||
type SubsIntf interface {
|
||||
type Subscribe interface {
|
||||
Create(string) (string, error)
|
||||
GetByID(string) (database.Subscribe, error)
|
||||
UpdateSubscribeStatus(database.Subscribe) error
|
||||
GetByID(string) (subscribedomain.Subscribe, error)
|
||||
Update(subscribedomain.Subscribe) error
|
||||
}
|
||||
|
||||
func New(db *database.DB) SubsIntf {
|
||||
return &SubsAccs{db}
|
||||
func New(db *database.DB) Subscribe {
|
||||
return &accessor{db}
|
||||
}
|
||||
|
||||
19
internal/accessor/subscribe/update.go
Normal file
19
internal/accessor/subscribe/update.go
Normal file
@ -0,0 +1,19 @@
|
||||
package subscriberepository
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
subscribedomain "legalgo-BE-go/internal/domain/subscribe"
|
||||
|
||||
"gorm.io/gorm/clause"
|
||||
)
|
||||
|
||||
func (a *accessor) Update(spec subscribedomain.Subscribe) error {
|
||||
if err := a.db.Clauses(clause.OnConflict{
|
||||
Columns: []clause.Column{{Name: "id"}},
|
||||
DoUpdates: clause.AssignmentColumns([]string{"status", "subscribe_plan_id", "start_date"}),
|
||||
}).Create(&spec).Error; err != nil {
|
||||
return fmt.Errorf("failed to update status: %v", err)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
@ -1,19 +0,0 @@
|
||||
package subscriberepository
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"legalgo-BE-go/database"
|
||||
|
||||
"gorm.io/gorm/clause"
|
||||
)
|
||||
|
||||
func (a *SubsAccs) UpdateSubscribeStatus(spec database.Subscribe) error {
|
||||
if err := a.DB.Clauses(clause.OnConflict{
|
||||
Columns: []clause.Column{{Name: "id"}},
|
||||
DoUpdates: clause.AssignmentColumns([]string{"status"}),
|
||||
}).Create(&spec).Error; err != nil {
|
||||
return fmt.Errorf("failed to update status: %v", err)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
13
internal/accessor/subscribe_plan/create.go
Normal file
13
internal/accessor/subscribe_plan/create.go
Normal file
@ -0,0 +1,13 @@
|
||||
package subscribeplanrepository
|
||||
|
||||
import (
|
||||
subscribeplandomain "legalgo-BE-go/internal/domain/subscribe_plan"
|
||||
)
|
||||
|
||||
func (s *accessor) Create(spec subscribeplandomain.SubscribePlan) error {
|
||||
if err := s.db.Create(&spec).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
30
internal/accessor/subscribe_plan/delete.go
Normal file
30
internal/accessor/subscribe_plan/delete.go
Normal file
@ -0,0 +1,30 @@
|
||||
package subscribeplanrepository
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"legalgo-BE-go/database"
|
||||
subscribedomain "legalgo-BE-go/internal/domain/subscribe"
|
||||
subscribeplandomain "legalgo-BE-go/internal/domain/subscribe_plan"
|
||||
)
|
||||
|
||||
func (a *accessor) Delete(id string) error {
|
||||
var subsPlan database.SubscribePlan
|
||||
var basicPlan subscribeplandomain.SubscribePlan
|
||||
|
||||
if err := a.db.First(&basicPlan, "code = ?", "basic").Error; err != nil {
|
||||
return fmt.Errorf("failed to find basic plan: %v", err)
|
||||
}
|
||||
|
||||
if err := a.db.
|
||||
Model(&subscribedomain.Subscribe{}).
|
||||
Where("subscribe_plan_id = ?", id).
|
||||
Update("subscribe_plan_id", basicPlan.ID); err != nil {
|
||||
return fmt.Errorf("failed to change subscribe plan: %v", err)
|
||||
}
|
||||
|
||||
if err := a.db.Where("id = ?", id).Delete(&subsPlan).Error; err != nil {
|
||||
return fmt.Errorf("failed to delete subscribe plan %s : %v", id, err)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
@ -4,10 +4,10 @@ import (
|
||||
subscribeplandomain "legalgo-BE-go/internal/domain/subscribe_plan"
|
||||
)
|
||||
|
||||
func (s *SubsPlan) GetAll() ([]subscribeplandomain.SubscribePlan, error) {
|
||||
func (s *accessor) GetAll() ([]subscribeplandomain.SubscribePlan, error) {
|
||||
var subscribePlans []subscribeplandomain.SubscribePlan
|
||||
|
||||
if err := s.DB.Find(&subscribePlans).Error; err != nil {
|
||||
if err := s.db.Find(&subscribePlans).Error; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
21
internal/accessor/subscribe_plan/get_by_id.go
Normal file
21
internal/accessor/subscribe_plan/get_by_id.go
Normal file
@ -0,0 +1,21 @@
|
||||
package subscribeplanrepository
|
||||
|
||||
import (
|
||||
"errors"
|
||||
subscribeplandomain "legalgo-BE-go/internal/domain/subscribe_plan"
|
||||
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
func (s *accessor) 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
|
||||
}
|
||||
22
internal/accessor/subscribe_plan/get_default.go
Normal file
22
internal/accessor/subscribe_plan/get_default.go
Normal file
@ -0,0 +1,22 @@
|
||||
package subscribeplanrepository
|
||||
|
||||
import (
|
||||
"legalgo-BE-go/database"
|
||||
subscribeplandomain "legalgo-BE-go/internal/domain/subscribe_plan"
|
||||
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
|
||||
func (s *accessor) GetDefault() (*subscribeplandomain.SubscribePlan, error) {
|
||||
var subscribePlan *subscribeplandomain.SubscribePlan
|
||||
|
||||
if err := s.db.First(&subscribePlan, "code = ?", "basic").Error; err != nil {
|
||||
s.db.Create(&database.SubscribePlan{
|
||||
ID: uuid.NewString(),
|
||||
Code: "basic",
|
||||
Name: "Basic",
|
||||
})
|
||||
}
|
||||
|
||||
return subscribePlan, nil
|
||||
}
|
||||
25
internal/accessor/subscribe_plan/impl.go
Normal file
25
internal/accessor/subscribe_plan/impl.go
Normal file
@ -0,0 +1,25 @@
|
||||
package subscribeplanrepository
|
||||
|
||||
import (
|
||||
"legalgo-BE-go/database"
|
||||
subscribeplandomain "legalgo-BE-go/internal/domain/subscribe_plan"
|
||||
)
|
||||
|
||||
type accessor struct {
|
||||
db *database.DB
|
||||
}
|
||||
|
||||
type SubscribePlan interface {
|
||||
Create(subscribeplandomain.SubscribePlan) error
|
||||
GetAll() ([]subscribeplandomain.SubscribePlan, error)
|
||||
GetByID(string) (*subscribeplandomain.SubscribePlan, error)
|
||||
GetDefault() (*subscribeplandomain.SubscribePlan, error)
|
||||
Update(subscribeplandomain.SubscribePlan) error
|
||||
Delete(string) error
|
||||
}
|
||||
|
||||
func New(
|
||||
db *database.DB,
|
||||
) SubscribePlan {
|
||||
return &accessor{db}
|
||||
}
|
||||
23
internal/accessor/subscribe_plan/update.go
Normal file
23
internal/accessor/subscribe_plan/update.go
Normal file
@ -0,0 +1,23 @@
|
||||
package subscribeplanrepository
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
subscribeplandomain "legalgo-BE-go/internal/domain/subscribe_plan"
|
||||
|
||||
"gorm.io/gorm/clause"
|
||||
)
|
||||
|
||||
func (a *accessor) Update(spec subscribeplandomain.SubscribePlan) error {
|
||||
if err := a.db.Clauses(clause.OnConflict{
|
||||
Columns: []clause.Column{{Name: "id"}},
|
||||
DoUpdates: clause.AssignmentColumns([]string{
|
||||
"name",
|
||||
"code",
|
||||
"updated_at",
|
||||
}),
|
||||
}).Select("name", "code", "updated_at").Save(&spec).Error; err != nil {
|
||||
return fmt.Errorf("failed to update tag: %v", err)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
@ -1,21 +0,0 @@
|
||||
package subscribeplanrepository
|
||||
|
||||
import (
|
||||
subscribeplandomain "legalgo-BE-go/internal/domain/subscribe_plan"
|
||||
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
|
||||
func (s *SubsPlan) Create(spec subscribeplandomain.SubscribePlanReq) error {
|
||||
data := &subscribeplandomain.SubscribePlan{
|
||||
ID: uuid.NewString(),
|
||||
Code: spec.Code,
|
||||
Name: spec.Name,
|
||||
}
|
||||
|
||||
if err := s.DB.Create(&data).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
@ -1,21 +0,0 @@
|
||||
package subscribeplanrepository
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"legalgo-BE-go/database"
|
||||
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
func (s *SubsPlan) GetByID(id string) (*database.SubscribePlan, error) {
|
||||
var subscribePlan *database.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
|
||||
}
|
||||
@ -1,21 +0,0 @@
|
||||
package subscribeplanrepository
|
||||
|
||||
import (
|
||||
"legalgo-BE-go/database"
|
||||
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
|
||||
func (s *SubsPlan) GetDefault() (*database.SubscribePlan, error) {
|
||||
var subscribePlan *database.SubscribePlan
|
||||
|
||||
if err := s.DB.First(&subscribePlan, "code = ?", "basic").Error; err != nil {
|
||||
s.DB.Create(&database.SubscribePlan{
|
||||
ID: uuid.NewString(),
|
||||
Code: "basic",
|
||||
Name: "Basic",
|
||||
})
|
||||
}
|
||||
|
||||
return subscribePlan, nil
|
||||
}
|
||||
@ -1,23 +0,0 @@
|
||||
package subscribeplanrepository
|
||||
|
||||
import (
|
||||
"legalgo-BE-go/database"
|
||||
subscribeplandomain "legalgo-BE-go/internal/domain/subscribe_plan"
|
||||
)
|
||||
|
||||
type SubsPlan struct {
|
||||
DB *database.DB
|
||||
}
|
||||
|
||||
type SubsPlanIntf interface {
|
||||
Create(subscribeplandomain.SubscribePlanReq) error
|
||||
GetAll() ([]subscribeplandomain.SubscribePlan, error)
|
||||
GetByID(string) (*database.SubscribePlan, error)
|
||||
GetDefault() (*database.SubscribePlan, error)
|
||||
}
|
||||
|
||||
func New(
|
||||
db *database.DB,
|
||||
) SubsPlanIntf {
|
||||
return &SubsPlan{db}
|
||||
}
|
||||
@ -5,6 +5,7 @@ import (
|
||||
newshttp "legalgo-BE-go/internal/api/http/news"
|
||||
osshttp "legalgo-BE-go/internal/api/http/oss"
|
||||
staffhttp "legalgo-BE-go/internal/api/http/staffhttp"
|
||||
subscribehttp "legalgo-BE-go/internal/api/http/subscribe"
|
||||
subscribeplanhttp "legalgo-BE-go/internal/api/http/subscribe_plan"
|
||||
taghttp "legalgo-BE-go/internal/api/http/tag"
|
||||
userhttp "legalgo-BE-go/internal/api/http/user"
|
||||
@ -29,6 +30,7 @@ var Module = fx.Module("router",
|
||||
newshttp.Module,
|
||||
osshttp.Module,
|
||||
userhttp.Module,
|
||||
subscribehttp.Module,
|
||||
)
|
||||
|
||||
func initRouter() chi.Router {
|
||||
|
||||
@ -2,4 +2,6 @@ package subscribehttp
|
||||
|
||||
import "go.uber.org/fx"
|
||||
|
||||
var Module = fx.Module("subscribe", fx.Invoke())
|
||||
var Module = fx.Module("subscribe", fx.Invoke(
|
||||
Update,
|
||||
))
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
package subscribehttp
|
||||
|
||||
import (
|
||||
userrepository "legalgo-BE-go/internal/accessor/user"
|
||||
authmiddleware "legalgo-BE-go/internal/api/http/middleware/auth"
|
||||
userdomain "legalgo-BE-go/internal/domain/user"
|
||||
authsvc "legalgo-BE-go/internal/services/auth"
|
||||
subscribesvc "legalgo-BE-go/internal/services/subscribe"
|
||||
"legalgo-BE-go/internal/utilities/response"
|
||||
"legalgo-BE-go/internal/utilities/utils"
|
||||
@ -14,7 +14,7 @@ import (
|
||||
|
||||
func Update(
|
||||
router chi.Router,
|
||||
authSvc authsvc.Auth,
|
||||
userRepo userrepository.User,
|
||||
subSvc subscribesvc.Subscribe,
|
||||
) {
|
||||
router.
|
||||
@ -60,9 +60,11 @@ func Update(
|
||||
return
|
||||
}
|
||||
|
||||
user, err := authSvc.GetUserProfile(detail.Email)
|
||||
user, err := userRepo.GetUserProfile(detail.Email)
|
||||
|
||||
if err := subSvc.Update(user.ID, body); err != nil {
|
||||
body.ID = user.Subscribe.ID
|
||||
|
||||
if err := subSvc.Update(body); err != nil {
|
||||
response.ResponseWithErrorCode(
|
||||
ctx,
|
||||
w,
|
||||
@ -73,5 +75,11 @@ func Update(
|
||||
)
|
||||
return
|
||||
}
|
||||
|
||||
response.RespondJsonSuccess(ctx, w, struct {
|
||||
Message string
|
||||
}{
|
||||
Message: "update user plan success",
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
@ -49,7 +49,7 @@ func CreateSubscribePlan(
|
||||
return
|
||||
}
|
||||
|
||||
if err := subsSvc.CreatePlan(spec); err != nil {
|
||||
if err := subsSvc.Create(spec); err != nil {
|
||||
response.ResponseWithErrorCode(
|
||||
ctx,
|
||||
w,
|
||||
|
||||
53
internal/api/http/subscribe_plan/delete.go
Normal file
53
internal/api/http/subscribe_plan/delete.go
Normal file
@ -0,0 +1,53 @@
|
||||
package subscribeplanhttp
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
authmiddleware "legalgo-BE-go/internal/api/http/middleware/auth"
|
||||
subscribeplansvc "legalgo-BE-go/internal/services/subscribe_plan"
|
||||
"legalgo-BE-go/internal/utilities/response"
|
||||
"net/http"
|
||||
|
||||
"github.com/go-chi/chi/v5"
|
||||
)
|
||||
|
||||
func Delete(
|
||||
router chi.Router,
|
||||
subscribePlanSvc subscribeplansvc.SubscribePlan,
|
||||
) {
|
||||
router.
|
||||
With(authmiddleware.Authorize()).
|
||||
Delete("/subscribe-plan/{subsplan_id}/delete", func(w http.ResponseWriter, r *http.Request) {
|
||||
ctx := r.Context()
|
||||
subsPlanID := chi.URLParam(r, "subsplan_id")
|
||||
|
||||
if subsPlanID == "" {
|
||||
response.RespondJsonErrorWithCode(
|
||||
ctx,
|
||||
w,
|
||||
fmt.Errorf("subscribe plan id is not provided"),
|
||||
response.ErrBadRequest.Code,
|
||||
response.ErrBadRequest.HttpCode,
|
||||
"subscribe plan id is not provided",
|
||||
)
|
||||
return
|
||||
}
|
||||
|
||||
if err := subscribePlanSvc.Delete(subsPlanID); err != nil {
|
||||
response.RespondJsonErrorWithCode(
|
||||
ctx,
|
||||
w,
|
||||
err,
|
||||
response.ErrBadRequest.Code,
|
||||
response.ErrBadRequest.HttpCode,
|
||||
err.Error(),
|
||||
)
|
||||
return
|
||||
}
|
||||
|
||||
response.RespondJsonSuccess(ctx, w, struct {
|
||||
Message string
|
||||
}{
|
||||
Message: "subscribe plan has been deleted",
|
||||
})
|
||||
})
|
||||
}
|
||||
@ -6,5 +6,7 @@ var Module = fx.Module("subscribe-plan",
|
||||
fx.Invoke(
|
||||
CreateSubscribePlan,
|
||||
GetAllPlan,
|
||||
Update,
|
||||
Delete,
|
||||
),
|
||||
)
|
||||
|
||||
82
internal/api/http/subscribe_plan/update.go
Normal file
82
internal/api/http/subscribe_plan/update.go
Normal file
@ -0,0 +1,82 @@
|
||||
package subscribeplanhttp
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
authmiddleware "legalgo-BE-go/internal/api/http/middleware/auth"
|
||||
subscribeplandomain "legalgo-BE-go/internal/domain/subscribe_plan"
|
||||
subscribeplansvc "legalgo-BE-go/internal/services/subscribe_plan"
|
||||
"legalgo-BE-go/internal/utilities/response"
|
||||
"legalgo-BE-go/internal/utilities/utils"
|
||||
"net/http"
|
||||
|
||||
"github.com/go-chi/chi/v5"
|
||||
"github.com/go-playground/validator/v10"
|
||||
)
|
||||
|
||||
func Update(
|
||||
router chi.Router,
|
||||
validate *validator.Validate,
|
||||
subsPlanSvc subscribeplansvc.SubscribePlan,
|
||||
) {
|
||||
router.
|
||||
With(authmiddleware.Authorize()).
|
||||
Put("/subscribe-plan/{subsplan_id}/update", func(w http.ResponseWriter, r *http.Request) {
|
||||
ctx := r.Context()
|
||||
tagID := chi.URLParam(r, "subsplan_id")
|
||||
|
||||
if tagID == "" {
|
||||
response.RespondJsonErrorWithCode(
|
||||
ctx,
|
||||
w,
|
||||
fmt.Errorf("subscribe plan id is not provided"),
|
||||
response.ErrBadRequest.Code,
|
||||
response.ErrBadRequest.HttpCode,
|
||||
"subscribe plan id is not provided",
|
||||
)
|
||||
return
|
||||
}
|
||||
|
||||
var spec subscribeplandomain.SubscribePlanUpdate
|
||||
if err := utils.UnmarshalBody(r, &spec); err != nil {
|
||||
response.RespondJsonErrorWithCode(
|
||||
ctx,
|
||||
w,
|
||||
err,
|
||||
response.ErrBadRequest.Code,
|
||||
response.ErrBadRequest.HttpCode,
|
||||
"failed to unmarshal body",
|
||||
)
|
||||
return
|
||||
}
|
||||
|
||||
if err := validate.Struct(spec); err != nil {
|
||||
response.RespondJsonErrorWithCode(
|
||||
ctx,
|
||||
w,
|
||||
err,
|
||||
response.ErrBadRequest.Code,
|
||||
response.ErrBadRequest.HttpCode,
|
||||
err.(validator.ValidationErrors).Error(),
|
||||
)
|
||||
return
|
||||
}
|
||||
|
||||
if err := subsPlanSvc.Update(tagID, spec); err != nil {
|
||||
response.RespondJsonErrorWithCode(
|
||||
ctx,
|
||||
w,
|
||||
err,
|
||||
response.ErrBadRequest.Code,
|
||||
response.ErrBadRequest.HttpCode,
|
||||
err.Error(),
|
||||
)
|
||||
return
|
||||
}
|
||||
|
||||
response.RespondJsonSuccess(ctx, w, struct {
|
||||
Message string
|
||||
}{
|
||||
Message: "update subscribe plan success",
|
||||
})
|
||||
})
|
||||
}
|
||||
@ -16,23 +16,23 @@ func Delete(
|
||||
) {
|
||||
router.
|
||||
With(authmiddleware.Authorize()).
|
||||
Delete("/tag/{category_id}/delete", func(w http.ResponseWriter, r *http.Request) {
|
||||
Delete("/tag/{tag_id}/delete", func(w http.ResponseWriter, r *http.Request) {
|
||||
ctx := r.Context()
|
||||
categoryID := chi.URLParam(r, "category_id")
|
||||
tagID := chi.URLParam(r, "tag_id")
|
||||
|
||||
if categoryID == "" {
|
||||
if tagID == "" {
|
||||
response.RespondJsonErrorWithCode(
|
||||
ctx,
|
||||
w,
|
||||
fmt.Errorf("category id is not provided"),
|
||||
fmt.Errorf("tag id is not provided"),
|
||||
response.ErrBadRequest.Code,
|
||||
response.ErrBadRequest.HttpCode,
|
||||
"category id is not provided",
|
||||
"tag id is not provided",
|
||||
)
|
||||
return
|
||||
}
|
||||
|
||||
if err := tagSvc.Delete(categoryID); err != nil {
|
||||
if err := tagSvc.Delete(tagID); err != nil {
|
||||
response.RespondJsonErrorWithCode(
|
||||
ctx,
|
||||
w,
|
||||
|
||||
@ -14,8 +14,7 @@ func GetAll(
|
||||
) {
|
||||
router.Get("/tag", func(w http.ResponseWriter, r *http.Request) {
|
||||
ctx := r.Context()
|
||||
tags, err := tagSvc.GetAllModel()
|
||||
// tags, err := tagSvc.GetAll()
|
||||
tags, err := tagSvc.GetAll()
|
||||
if err != nil {
|
||||
response.ResponseWithErrorCode(
|
||||
ctx,
|
||||
|
||||
@ -3,7 +3,7 @@ package userhttp
|
||||
import (
|
||||
responsedomain "legalgo-BE-go/internal/domain/reponse"
|
||||
userdomain "legalgo-BE-go/internal/domain/user"
|
||||
authsvc "legalgo-BE-go/internal/services/auth"
|
||||
usersvc "legalgo-BE-go/internal/services/user"
|
||||
"legalgo-BE-go/internal/utilities/response"
|
||||
"legalgo-BE-go/internal/utilities/utils"
|
||||
"net/http"
|
||||
@ -15,7 +15,7 @@ import (
|
||||
|
||||
func Login(
|
||||
router chi.Router,
|
||||
authSvc authsvc.Auth,
|
||||
userSvc usersvc.User,
|
||||
validate *validator.Validate,
|
||||
rdb *redis.Client,
|
||||
) {
|
||||
@ -48,7 +48,7 @@ func Login(
|
||||
return
|
||||
}
|
||||
|
||||
token, err := authSvc.LoginAsUser(spec)
|
||||
token, err := userSvc.LoginAsUser(spec)
|
||||
if err != nil {
|
||||
response.ResponseWithErrorCode(
|
||||
ctx,
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
package userhttp
|
||||
|
||||
import (
|
||||
authsvc "legalgo-BE-go/internal/services/auth"
|
||||
usersvc "legalgo-BE-go/internal/services/user"
|
||||
"legalgo-BE-go/internal/utilities/response"
|
||||
"legalgo-BE-go/internal/utilities/utils"
|
||||
"net/http"
|
||||
@ -11,7 +11,7 @@ import (
|
||||
|
||||
func GetProfile(
|
||||
router chi.Router,
|
||||
authSvc authsvc.Auth,
|
||||
userSvc usersvc.User,
|
||||
) {
|
||||
router.Get("/user/profile", func(w http.ResponseWriter, r *http.Request) {
|
||||
ctx := r.Context()
|
||||
@ -28,7 +28,7 @@ func GetProfile(
|
||||
return
|
||||
}
|
||||
|
||||
userProfile, err := authSvc.GetUserProfile(destructedToken.Email)
|
||||
userProfile, err := userSvc.GetUserProfile(destructedToken.Email)
|
||||
if err != nil {
|
||||
response.ResponseWithErrorCode(
|
||||
ctx,
|
||||
|
||||
@ -3,7 +3,7 @@ package userhttp
|
||||
import (
|
||||
responsedomain "legalgo-BE-go/internal/domain/reponse"
|
||||
userdomain "legalgo-BE-go/internal/domain/user"
|
||||
authsvc "legalgo-BE-go/internal/services/auth"
|
||||
usersvc "legalgo-BE-go/internal/services/user"
|
||||
"legalgo-BE-go/internal/utilities/response"
|
||||
"legalgo-BE-go/internal/utilities/utils"
|
||||
"net/http"
|
||||
@ -16,7 +16,7 @@ import (
|
||||
func Register(
|
||||
router chi.Router,
|
||||
validate *validator.Validate,
|
||||
authSvc authsvc.Auth,
|
||||
authSvc usersvc.User,
|
||||
rdb *redis.Client,
|
||||
) {
|
||||
router.Post("/user/register", func(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
@ -1,28 +1,18 @@
|
||||
package subscribedomain
|
||||
|
||||
import (
|
||||
subscribeplandm "legalgo-BE-go/internal/domain/subscribe_plan_model"
|
||||
subscribeplan "legalgo-BE-go/internal/domain/subscribe_plan"
|
||||
"time"
|
||||
)
|
||||
|
||||
type SubscribeDepecrate struct {
|
||||
type Subscribe struct {
|
||||
ID string `json:"id"`
|
||||
SubscribePlanID string `json:"subscribe_plan_id"`
|
||||
}
|
||||
|
||||
type SubscribeUpdateReqDepecrate struct {
|
||||
ID string `json:"id"`
|
||||
StartDate time.Time `json:"start_date"`
|
||||
EndDate *time.Time `json:"end_date"`
|
||||
Status string `json:"status"`
|
||||
}
|
||||
AutoRenew bool `json:"auto_renew"`
|
||||
UpdatedAt time.Time `json:"updated_at"`
|
||||
|
||||
// refactored
|
||||
type Subscribe struct {
|
||||
ID string `gorm:"primaryKey" json:"id"`
|
||||
SubscribePlanID string `gorm:"not null" json:"subscribe_plan_id"`
|
||||
StartDate time.Time `gorm:"default:CURRENT_TIMESTAMP"`
|
||||
EndDate time.Time `gorm:"default:null"`
|
||||
Status string `gorm:"default:'inactive'"`
|
||||
AutoRenew bool `gorm:"default:true"`
|
||||
|
||||
SubscribePlan subscribeplandm.SubscribePlan `gorm:"foreignKey:SubscribePlanID;constraint:OnDelete:CASCADE" json:"subscribe_plan"`
|
||||
SubscribePlan subscribeplan.SubscribePlan `gorm:"foreignKey:SubscribePlanID" json:"subscribe_plan"`
|
||||
}
|
||||
|
||||
@ -1,17 +0,0 @@
|
||||
package subscribedm
|
||||
|
||||
import (
|
||||
subscribeplandm "legalgo-BE-go/internal/domain/subscribe_plan_model"
|
||||
"time"
|
||||
)
|
||||
|
||||
type Subscribe struct {
|
||||
ID string `json:"id"`
|
||||
SubscribePlanID string `json:"subscribe_plan_id"`
|
||||
StartDate time.Time `json:"start_date"`
|
||||
EndDate *time.Time `json:"end_date"`
|
||||
Status string `json:"status"`
|
||||
AutoRenew bool `json:"auto_renew"`
|
||||
|
||||
SubscribePlan subscribeplandm.SubscribePlan `gorm:"foreignKey:SubscribePlanID" json:"subscribe_plan"`
|
||||
}
|
||||
@ -1,12 +1,22 @@
|
||||
package subscribeplandomain
|
||||
|
||||
type SubscribePlanReq struct {
|
||||
Code string `json:"code" validate:"required"`
|
||||
Name string `json:"name" validate:"required"`
|
||||
}
|
||||
import "time"
|
||||
|
||||
type SubscribePlan struct {
|
||||
ID string `json:"id"`
|
||||
Code string `json:"code"`
|
||||
Name string `json:"name"`
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
UpdatedAt time.Time `json:"updated_at"`
|
||||
}
|
||||
|
||||
type SubscribePlanUpdate struct {
|
||||
Code string `json:"code" validate:"required"`
|
||||
Name string `json:"name" validate:"required"`
|
||||
UpdatedAt time.Time `json:"updated_at"`
|
||||
}
|
||||
|
||||
type SubscribePlanReq struct {
|
||||
Code string `json:"code" validate:"required"`
|
||||
Name string `json:"name" validate:"required"`
|
||||
}
|
||||
|
||||
@ -1,8 +0,0 @@
|
||||
package subscribeplandm
|
||||
|
||||
// refactored
|
||||
type SubscribePlan struct {
|
||||
ID string `json:"id"`
|
||||
Code string `json:"code"`
|
||||
Name string `json:"name"`
|
||||
}
|
||||
@ -1,6 +1,9 @@
|
||||
package userdomain
|
||||
|
||||
import subscribedm "legalgo-BE-go/internal/domain/subscribe_model"
|
||||
import (
|
||||
subscribe "legalgo-BE-go/internal/domain/subscribe"
|
||||
"time"
|
||||
)
|
||||
|
||||
type User struct {
|
||||
ID string `json:"id"`
|
||||
@ -9,7 +12,7 @@ type User struct {
|
||||
Email string `json:"email"`
|
||||
Phone string `json:"phone"`
|
||||
|
||||
Subscribe subscribedm.Subscribe `gorm:"foreignKey:SubscribeID" json:"subscribe"`
|
||||
Subscribe subscribe.Subscribe `gorm:"foreignKey:SubscribeID" json:"subscribe"`
|
||||
}
|
||||
|
||||
type UserRegister struct {
|
||||
@ -24,7 +27,7 @@ type UserProfile struct {
|
||||
Email string `json:"email"`
|
||||
Phone string `json:"phone"`
|
||||
|
||||
Subscribe subscribedm.Subscribe `gorm:"foreignKey:SubscribeID" json:"subscribe"`
|
||||
Subscribe subscribe.Subscribe `gorm:"foreignKey:SubscribeID" json:"subscribe"`
|
||||
}
|
||||
|
||||
type UserLogin struct {
|
||||
@ -33,5 +36,10 @@ type UserLogin struct {
|
||||
}
|
||||
|
||||
type UserSubsUpdate struct {
|
||||
ID string `json:"id"`
|
||||
Status string `json:"status"`
|
||||
SubscribePlanID string `json:"subscribe_plan_id"`
|
||||
AutoRenew bool `json:"auto_renew"`
|
||||
StartDate time.Time `json:"start_date"`
|
||||
EndDate *time.Time `json:"end_date"`
|
||||
}
|
||||
|
||||
@ -1,14 +0,0 @@
|
||||
package authsvc
|
||||
|
||||
import (
|
||||
userdomain "legalgo-BE-go/internal/domain/user"
|
||||
)
|
||||
|
||||
func (as *impl) GetUserProfile(email string) (*userdomain.UserProfile, error) {
|
||||
user, err := as.userRepo.GetUserProfile(email)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return user, nil
|
||||
}
|
||||
@ -3,7 +3,7 @@ package authsvc
|
||||
import (
|
||||
staffrepository "legalgo-BE-go/internal/accessor/staff"
|
||||
subscriberepository "legalgo-BE-go/internal/accessor/subscribe"
|
||||
subscribeplanrepository "legalgo-BE-go/internal/accessor/subscribeplan"
|
||||
subscribeplanrepository "legalgo-BE-go/internal/accessor/subscribe_plan"
|
||||
userrepository "legalgo-BE-go/internal/accessor/user"
|
||||
staffdomain "legalgo-BE-go/internal/domain/staff"
|
||||
userdomain "legalgo-BE-go/internal/domain/user"
|
||||
@ -12,8 +12,8 @@ import (
|
||||
type impl struct {
|
||||
staffRepo staffrepository.Staff
|
||||
userRepo userrepository.User
|
||||
subsRepo subscriberepository.SubsIntf
|
||||
subsPlanRepo subscribeplanrepository.SubsPlanIntf
|
||||
subsRepo subscriberepository.Subscribe
|
||||
subsPlanRepo subscribeplanrepository.SubscribePlan
|
||||
}
|
||||
|
||||
type Auth interface {
|
||||
@ -22,17 +22,13 @@ type Auth interface {
|
||||
GetStaffProfile(string) (*staffdomain.StaffProfile, error)
|
||||
GetUsers() ([]userdomain.UserProfile, error)
|
||||
UpdateStaff(staffdomain.Staff) error
|
||||
|
||||
LoginAsUser(userdomain.UserLogin) (string, error)
|
||||
RegisterUser(userdomain.UserRegister) (string, error)
|
||||
GetUserProfile(string) (*userdomain.UserProfile, error)
|
||||
}
|
||||
|
||||
func New(
|
||||
staffRepo staffrepository.Staff,
|
||||
userRepo userrepository.User,
|
||||
subsRepo subscriberepository.SubsIntf,
|
||||
subsPlanRepo subscribeplanrepository.SubsPlanIntf,
|
||||
subsRepo subscriberepository.Subscribe,
|
||||
subsPlanRepo subscribeplanrepository.SubscribePlan,
|
||||
) Auth {
|
||||
return &impl{
|
||||
staffRepo: staffRepo,
|
||||
|
||||
@ -16,7 +16,7 @@ func (sv *impl) LoginAsStaff(spec staffdomain.StaffLogin) (string, error) {
|
||||
return "", errors.New(err.Error())
|
||||
}
|
||||
|
||||
matchPassword := ComparePassword(staff.Password, spec.Password)
|
||||
matchPassword := utils.ComparePassword(staff.Password, spec.Password)
|
||||
if !matchPassword {
|
||||
return "", errors.New("wrong password")
|
||||
}
|
||||
|
||||
@ -15,7 +15,7 @@ func (a *impl) RegisterStaff(spec staffdomain.StaffRegister) (string, error) {
|
||||
if err == nil {
|
||||
return "", errors.New("this email address is already in use")
|
||||
}
|
||||
hashedPwd, err := HashPassword(spec.Password)
|
||||
hashedPwd, err := utils.HashPassword(spec.Password)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
@ -8,6 +8,7 @@ import (
|
||||
subscribesvc "legalgo-BE-go/internal/services/subscribe"
|
||||
subscribeplansvc "legalgo-BE-go/internal/services/subscribe_plan"
|
||||
tagsvc "legalgo-BE-go/internal/services/tag"
|
||||
usersvc "legalgo-BE-go/internal/services/user"
|
||||
|
||||
"go.uber.org/fx"
|
||||
)
|
||||
@ -21,5 +22,6 @@ var Module = fx.Module("services",
|
||||
categorysvc.New,
|
||||
newssvc.New,
|
||||
oss.NewOSSService,
|
||||
usersvc.New,
|
||||
),
|
||||
)
|
||||
|
||||
@ -6,14 +6,14 @@ import (
|
||||
)
|
||||
|
||||
type impl struct {
|
||||
subsRepo subscriberepository.SubsIntf
|
||||
subsRepo subscriberepository.Subscribe
|
||||
}
|
||||
|
||||
type Subscribe interface {
|
||||
Create(string) (string, error)
|
||||
Update(string, userdomain.UserSubsUpdate) error
|
||||
Update(userdomain.UserSubsUpdate) error
|
||||
}
|
||||
|
||||
func New(subsRepo subscriberepository.SubsIntf) Subscribe {
|
||||
func New(subsRepo subscriberepository.Subscribe) Subscribe {
|
||||
return &impl{subsRepo}
|
||||
}
|
||||
|
||||
@ -1,9 +1,20 @@
|
||||
package subscribesvc
|
||||
|
||||
import (
|
||||
subscribedomain "legalgo-BE-go/internal/domain/subscribe"
|
||||
userdomain "legalgo-BE-go/internal/domain/user"
|
||||
timeutils "legalgo-BE-go/internal/utilities/time_utils"
|
||||
)
|
||||
|
||||
func (i *impl) Update(id string, spec userdomain.UserSubsUpdate) error {
|
||||
return nil
|
||||
func (i *impl) Update(spec userdomain.UserSubsUpdate) error {
|
||||
newSpec := subscribedomain.Subscribe{
|
||||
ID: spec.ID,
|
||||
AutoRenew: spec.AutoRenew,
|
||||
StartDate: timeutils.Now(),
|
||||
EndDate: spec.EndDate,
|
||||
Status: spec.Status,
|
||||
SubscribePlanID: spec.SubscribePlanID,
|
||||
UpdatedAt: timeutils.Now(),
|
||||
}
|
||||
return i.subsRepo.Update(newSpec)
|
||||
}
|
||||
|
||||
16
internal/services/subscribe_plan/create.go
Normal file
16
internal/services/subscribe_plan/create.go
Normal file
@ -0,0 +1,16 @@
|
||||
package subscribeplansvc
|
||||
|
||||
import (
|
||||
subscribeplandomain "legalgo-BE-go/internal/domain/subscribe_plan"
|
||||
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
|
||||
func (sb *impl) Create(spec subscribeplandomain.SubscribePlanReq) error {
|
||||
data := subscribeplandomain.SubscribePlan{
|
||||
ID: uuid.NewString(),
|
||||
Code: spec.Code,
|
||||
Name: spec.Name,
|
||||
}
|
||||
return sb.subsRepo.Create(data)
|
||||
}
|
||||
@ -1,7 +0,0 @@
|
||||
package subscribeplansvc
|
||||
|
||||
import subscribeplandomain "legalgo-BE-go/internal/domain/subscribe_plan"
|
||||
|
||||
func (sb *impl) CreatePlan(spec subscribeplandomain.SubscribePlanReq) error {
|
||||
return sb.subsAccs.Create(spec)
|
||||
}
|
||||
5
internal/services/subscribe_plan/delete.go
Normal file
5
internal/services/subscribe_plan/delete.go
Normal file
@ -0,0 +1,5 @@
|
||||
package subscribeplansvc
|
||||
|
||||
func (i *impl) Delete(id string) error {
|
||||
return i.subsRepo.Delete(id)
|
||||
}
|
||||
@ -5,5 +5,5 @@ import (
|
||||
)
|
||||
|
||||
func (s *impl) GetAllPlan() ([]subscribeplandomain.SubscribePlan, error) {
|
||||
return s.subsAccs.GetAll()
|
||||
return s.subsRepo.GetAll()
|
||||
}
|
||||
@ -1,21 +1,23 @@
|
||||
package subscribeplansvc
|
||||
|
||||
import (
|
||||
subscribeplanrepository "legalgo-BE-go/internal/accessor/subscribeplan"
|
||||
subscribeplanrepository "legalgo-BE-go/internal/accessor/subscribe_plan"
|
||||
subscribeplandomain "legalgo-BE-go/internal/domain/subscribe_plan"
|
||||
)
|
||||
|
||||
type impl struct {
|
||||
subsAccs subscribeplanrepository.SubsPlanIntf
|
||||
subsRepo subscribeplanrepository.SubscribePlan
|
||||
}
|
||||
|
||||
type SubscribePlan interface {
|
||||
CreatePlan(subscribeplandomain.SubscribePlanReq) error
|
||||
Create(subscribeplandomain.SubscribePlanReq) error
|
||||
Update(string, subscribeplandomain.SubscribePlanUpdate) error
|
||||
GetAllPlan() ([]subscribeplandomain.SubscribePlan, error)
|
||||
Delete(string) error
|
||||
}
|
||||
|
||||
func New(
|
||||
subsAccs subscribeplanrepository.SubsPlanIntf,
|
||||
subsAccs subscribeplanrepository.SubscribePlan,
|
||||
) SubscribePlan {
|
||||
return &impl{subsAccs}
|
||||
}
|
||||
|
||||
16
internal/services/subscribe_plan/update.go
Normal file
16
internal/services/subscribe_plan/update.go
Normal file
@ -0,0 +1,16 @@
|
||||
package subscribeplansvc
|
||||
|
||||
import (
|
||||
subscribeplandomain "legalgo-BE-go/internal/domain/subscribe_plan"
|
||||
timeutils "legalgo-BE-go/internal/utilities/time_utils"
|
||||
)
|
||||
|
||||
func (i *impl) Update(id string, spec subscribeplandomain.SubscribePlanUpdate) error {
|
||||
newData := subscribeplandomain.SubscribePlan{
|
||||
ID: id,
|
||||
Code: spec.Code,
|
||||
Name: spec.Name,
|
||||
UpdatedAt: timeutils.Now(),
|
||||
}
|
||||
return i.subsRepo.Update(newData)
|
||||
}
|
||||
@ -1,9 +0,0 @@
|
||||
package tagsvc
|
||||
|
||||
import (
|
||||
tagdomain "legalgo-BE-go/internal/domain/tag"
|
||||
)
|
||||
|
||||
func (i *impl) GetAllModel() ([]tagdomain.Tag, error) {
|
||||
return i.tagRepo.GetAll()
|
||||
}
|
||||
@ -12,7 +12,6 @@ type impl struct {
|
||||
type Tag interface {
|
||||
Create(tagdomain.TagReq) error
|
||||
GetAll() ([]tagdomain.Tag, error)
|
||||
GetAllModel() ([]tagdomain.Tag, error)
|
||||
Update(string, tagdomain.TagReq) error
|
||||
Delete(string) error
|
||||
}
|
||||
|
||||
14
internal/services/user/get_user.go
Normal file
14
internal/services/user/get_user.go
Normal file
@ -0,0 +1,14 @@
|
||||
package usersvc
|
||||
|
||||
import (
|
||||
userdomain "legalgo-BE-go/internal/domain/user"
|
||||
)
|
||||
|
||||
func (i *impl) GetUserProfile(email string) (*userdomain.UserProfile, error) {
|
||||
user, err := i.userRepo.GetUserProfile(email)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return user, nil
|
||||
}
|
||||
32
internal/services/user/impl.go
Normal file
32
internal/services/user/impl.go
Normal file
@ -0,0 +1,32 @@
|
||||
package usersvc
|
||||
|
||||
import (
|
||||
subscriberepository "legalgo-BE-go/internal/accessor/subscribe"
|
||||
subscribeplanrepository "legalgo-BE-go/internal/accessor/subscribe_plan"
|
||||
userrepository "legalgo-BE-go/internal/accessor/user"
|
||||
userdomain "legalgo-BE-go/internal/domain/user"
|
||||
)
|
||||
|
||||
type impl struct {
|
||||
subsRepo subscriberepository.Subscribe
|
||||
userRepo userrepository.User
|
||||
subsPlanRepo subscribeplanrepository.SubscribePlan
|
||||
}
|
||||
|
||||
type User interface {
|
||||
GetUserProfile(string) (*userdomain.UserProfile, error)
|
||||
LoginAsUser(userdomain.UserLogin) (string, error)
|
||||
RegisterUser(userdomain.UserRegister) (string, error)
|
||||
}
|
||||
|
||||
func New(
|
||||
subsRepo subscriberepository.Subscribe,
|
||||
userRepo userrepository.User,
|
||||
subsPlanRepo subscribeplanrepository.SubscribePlan,
|
||||
) User {
|
||||
return &impl{
|
||||
subsRepo,
|
||||
userRepo,
|
||||
subsPlanRepo,
|
||||
}
|
||||
}
|
||||
@ -1,4 +1,4 @@
|
||||
package authsvc
|
||||
package usersvc
|
||||
|
||||
import (
|
||||
"errors"
|
||||
@ -10,13 +10,13 @@ import (
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
|
||||
func (a *impl) LoginAsUser(spec userdomain.UserLogin) (string, error) {
|
||||
user, err := a.userRepo.GetUserByEmail(spec.Email)
|
||||
func (i *impl) LoginAsUser(spec userdomain.UserLogin) (string, error) {
|
||||
user, err := i.userRepo.GetUserByEmail(spec.Email)
|
||||
if err != nil {
|
||||
return "", errors.New(err.Error())
|
||||
}
|
||||
|
||||
matchPassword := ComparePassword(user.Password, spec.Password)
|
||||
matchPassword := utils.ComparePassword(user.Password, spec.Password)
|
||||
if !matchPassword {
|
||||
return "", errors.New("wrong password")
|
||||
}
|
||||
@ -1,4 +1,4 @@
|
||||
package authsvc
|
||||
package usersvc
|
||||
|
||||
import (
|
||||
"errors"
|
||||
@ -10,15 +10,15 @@ import (
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
|
||||
func (a *impl) RegisterUser(spec userdomain.UserRegister) (string, error) {
|
||||
_, err := a.userRepo.GetUserByEmail(spec.Email)
|
||||
func (i *impl) RegisterUser(spec userdomain.UserRegister) (string, error) {
|
||||
_, err := i.userRepo.GetUserByEmail(spec.Email)
|
||||
|
||||
if err == nil {
|
||||
return "", errors.New("this email address is already in use")
|
||||
}
|
||||
|
||||
if spec.SubscribePlanID == "" {
|
||||
subsPlan, err := a.subsPlanRepo.GetDefault()
|
||||
subsPlan, err := i.subsPlanRepo.GetDefault()
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
@ -26,17 +26,17 @@ func (a *impl) RegisterUser(spec userdomain.UserRegister) (string, error) {
|
||||
spec.SubscribePlanID = subsPlan.ID
|
||||
}
|
||||
|
||||
_, err = a.subsPlanRepo.GetByID(spec.SubscribePlanID)
|
||||
_, err = i.subsPlanRepo.GetByID(spec.SubscribePlanID)
|
||||
if err != nil {
|
||||
return "", errors.New(err.Error())
|
||||
}
|
||||
|
||||
subsId, err := a.subsRepo.Create(spec.SubscribePlanID)
|
||||
subsId, err := i.subsRepo.Create(spec.SubscribePlanID)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
hashedPwd, err := HashPassword(spec.Password)
|
||||
hashedPwd, err := utils.HashPassword(spec.Password)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
@ -49,7 +49,7 @@ func (a *impl) RegisterUser(spec userdomain.UserRegister) (string, error) {
|
||||
Phone: spec.Phone,
|
||||
}
|
||||
|
||||
err = a.userRepo.CreateUser(user)
|
||||
err = i.userRepo.CreateUser(user)
|
||||
if err != nil {
|
||||
return "", errors.New(err.Error())
|
||||
}
|
||||
@ -1,4 +1,4 @@
|
||||
package authsvc
|
||||
package utils
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
Loading…
x
Reference in New Issue
Block a user