Skip to content

Commit f8cd7b6

Browse files
committed
feat: owner get endpoint
1 parent 48abe19 commit f8cd7b6

File tree

4 files changed

+45
-4
lines changed

4 files changed

+45
-4
lines changed

backend/cms-sys/internal/handler/owner_handler.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
type OwnerHandle interface {
1212
Create(c *fiber.Ctx) error
1313
Update(c *fiber.Ctx) error
14+
GetOwnerByID(c *fiber.Ctx) error
1415
}
1516
type OwnerHandler struct {
1617
service service.OwnerService
@@ -59,3 +60,14 @@ func (o OwnerHandler) Update(c *fiber.Ctx) error {
5960

6061
return utils.SuccessResponse(c, "Owner updated", ownerResponse)
6162
}
63+
64+
func (o OwnerHandler) GetOwnerByID(c *fiber.Ctx) error {
65+
id := c.Params("id")
66+
67+
ownerResponse, err := o.service.GetOwnerByID(id)
68+
if err != nil {
69+
return utils.InternalServerErrorResponse(c, "Failed to fetch owner", err.Error())
70+
}
71+
72+
return utils.SuccessResponse(c, "Fetched owner", ownerResponse)
73+
}

backend/cms-sys/internal/repository/owner_repo.go

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,9 @@ import (
88

99
type OwnerRepository interface {
1010
CreateOwner(owner *types.CMSUser) error
11-
GeyById(id string) (*types.CMSUser, error)
11+
GetById(id string) (*types.CMSUser, error)
1212
UpdateOwner(owner *types.CMSUser) error
13+
GetOwnerByID(id string) (*types.CMSUser, error)
1314
}
1415

1516
type OwnerRepositoryImpl struct {
@@ -31,7 +32,7 @@ func (r *OwnerRepositoryImpl) CreateOwner(owner *types.CMSUser) error {
3132
return nil
3233
}
3334

34-
func (r *OwnerRepositoryImpl) GeyById(id string) (*types.CMSUser, error) {
35+
func (r *OwnerRepositoryImpl) GetById(id string) (*types.CMSUser, error) {
3536
var owner types.CMSUser
3637
err := r.db.Where("cms_user_id", id).First(&owner).Error
3738
return &owner, err
@@ -43,3 +44,11 @@ func (r *OwnerRepositoryImpl) UpdateOwner(owner *types.CMSUser) error {
4344
}
4445
return nil
4546
}
47+
48+
func (r *OwnerRepositoryImpl) GetOwnerByID(id string) (*types.CMSUser, error) {
49+
var owner types.CMSUser
50+
err := r.db.Joins("JOIN cms_whole_sys_role r ON r.role_id = cms_user.cms_user_role").
51+
Where("cms_user_id = ? AND r.role_name = ?", id, string(types.CMSCustomer)).
52+
Find(&owner).Error
53+
return &owner, err
54+
}

backend/cms-sys/internal/routes/owner_route.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,5 @@ func SetupOwnerRoutes(app *fiber.App, handler handler.OwnerHandle) {
99
ownerRoute := app.Group("/owners")
1010
ownerRoute.Post("/create", handler.Create)
1111
ownerRoute.Put("/update/:id", handler.Update)
12+
ownerRoute.Get("/:id", handler.GetOwnerByID)
1213
}

backend/cms-sys/internal/service/owner_service.go

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,19 @@ package service
22

33
import (
44
"errors"
5+
"time"
6+
57
"github.com/google/uuid"
68
"github.com/multi-tenants-cms-golang/cms-sys/internal/repository"
79
"github.com/multi-tenants-cms-golang/cms-sys/internal/types"
810
"github.com/multi-tenants-cms-golang/cms-sys/pkg/utils"
911
"github.com/sirupsen/logrus"
10-
"time"
1112
)
1213

1314
type OwnerService interface {
1415
Create(req types.OwnerCreateRequest) (*types.OwnerResponse, error)
1516
Update(id string, req types.OwnerUpdateRequest) (*types.OwnerResponse, error)
17+
GetOwnerByID(id string) (*types.OwnerResponse, error)
1618
}
1719

1820
type OwnerServiceImpl struct {
@@ -75,7 +77,7 @@ func (os *OwnerServiceImpl) Create(req types.OwnerCreateRequest) (*types.OwnerRe
7577
}
7678

7779
func (os *OwnerServiceImpl) Update(id string, req types.OwnerUpdateRequest) (*types.OwnerResponse, error) {
78-
owner, err := os.repo.GeyById(id)
80+
owner, err := os.repo.GetById(id)
7981
if err != nil {
8082
os.log.WithError(err).Error("Failed to get owner with id ", id)
8183
return nil, errors.New("failed to get owner")
@@ -97,3 +99,20 @@ func (os *OwnerServiceImpl) Update(id string, req types.OwnerUpdateRequest) (*ty
9799
Verified: owner.Verified,
98100
}, nil
99101
}
102+
103+
func (os *OwnerServiceImpl) GetOwnerByID(id string) (*types.OwnerResponse, error) {
104+
owner, err := os.repo.GetById(id)
105+
if err != nil {
106+
os.log.WithError(err).Error("Failed to get owner with id ", id)
107+
return nil, errors.New("failed to fetch owner")
108+
}
109+
110+
return &types.OwnerResponse{
111+
ID: owner.CMSUserID,
112+
Name: owner.CMSUserName,
113+
Email: owner.CMSUserEmail,
114+
Role: owner.CMSUserRole,
115+
NameSpace: *owner.CMSNameSpace,
116+
Verified: owner.Verified,
117+
}, nil
118+
}

0 commit comments

Comments
 (0)