feat: customer list

This commit is contained in:
fernanda-one 2024-08-15 22:37:57 +07:00
parent f2029ab5b4
commit b39b791c0e
5 changed files with 38 additions and 2 deletions

View File

@ -71,6 +71,8 @@ func (u *UserDB) ToUser() *User {
ID: u.ID, ID: u.ID,
Name: u.Name, Name: u.Name,
Email: u.Email, Email: u.Email,
NIK: u.NIK,
PhoneNumber: u.PhoneNumber,
Status: u.Status, Status: u.Status,
CreatedAt: u.CreatedAt, CreatedAt: u.CreatedAt,
UpdatedAt: u.UpdatedAt, UpdatedAt: u.UpdatedAt,

View File

@ -28,6 +28,7 @@ func (h *Handler) Route(group *gin.RouterGroup, jwt gin.HandlerFunc) {
route.GET("/customer/list", jwt, h.GetAllCustomer) route.GET("/customer/list", jwt, h.GetAllCustomer)
route.GET("/:id", jwt, h.GetByID) route.GET("/:id", jwt, h.GetByID)
route.PUT("/:id", jwt, h.Update) route.PUT("/:id", jwt, h.Update)
route.PUT("/customer/:id", jwt, h.UpdateCustomer)
route.DELETE("/:id", jwt, h.Delete) route.DELETE("/:id", jwt, h.Delete)
} }
@ -146,6 +147,35 @@ func (h *Handler) Update(c *gin.Context) {
Data: h.toUserResponse(updatedUser), Data: h.toUserResponse(updatedUser),
}) })
} }
func (h *Handler) UpdateCustomer(c *gin.Context) {
ctx := request.GetMyContext(c)
id := c.Param("id")
userID, err := strconv.ParseInt(id, 10, 64)
if err != nil {
response.ErrorWrapper(c, errors.ErrorBadRequest)
return
}
var req request.User
if err := c.ShouldBindJSON(&req); err != nil {
response.ErrorWrapper(c, errors.ErrorBadRequest)
return
}
updatedUser, err := h.service.Update(ctx, userID, req.ToEntity())
if err != nil {
response.ErrorWrapper(c, err)
return
}
c.JSON(http.StatusOK, response.BaseResponse{
Success: true,
Status: http.StatusOK,
Data: h.toUserResponse(updatedUser),
})
}
// GetAll retrieves a list of users. // GetAll retrieves a list of users.
// @Summary Get a list of users // @Summary Get a list of users
@ -289,6 +319,8 @@ func (h *Handler) toUserResponse(resp *entity.User) response.User {
ID: resp.ID, ID: resp.ID,
Name: resp.Name, Name: resp.Name,
Email: resp.Email, Email: resp.Email,
PhoneNumber: resp.PhoneNumber,
NIK: resp.NIK,
Status: string(resp.Status), Status: string(resp.Status),
RoleID: int64(resp.RoleID), RoleID: int64(resp.RoleID),
RoleName: resp.RoleName, RoleName: resp.RoleName,

View File

@ -6,6 +6,8 @@ type User struct {
ID int64 `json:"id"` ID int64 `json:"id"`
Name string `json:"name"` Name string `json:"name"`
Email string `json:"email"` Email string `json:"email"`
PhoneNumber string `json:"phone_number"`
NIK string `json:"nik"`
Status string `json:"status"` Status string `json:"status"`
RoleID int64 `json:"role_id"` RoleID int64 `json:"role_id"`
RoleName string `json:"role_name"` RoleName string `json:"role_name"`

View File

@ -176,7 +176,7 @@ func (b *UserRepository) GetUserByID(ctx context.Context, id int64) (*entity.Use
var user *entity.UserDB var user *entity.UserDB
query := b.db.Table("users"). query := b.db.Table("users").
Select("users.id, users.email, users.password , users.name, users.status, users.created_at, users.updated_at, ur.role_id, r.role_name, ur.partner_id, b.name as partner_name"). Select("users.id, users.email,users.phone_number,users.nik, users.password , users.name, users.status, users.created_at, users.updated_at, ur.role_id, r.role_name, ur.partner_id, b.name as partner_name").
Joins("LEFT JOIN user_roles ur ON users.id = ur.user_id"). Joins("LEFT JOIN user_roles ur ON users.id = ur.user_id").
Joins("LEFT JOIN roles r ON ur.role_id = r.role_id"). Joins("LEFT JOIN roles r ON ur.role_id = r.role_id").
Joins("LEFT JOIN partners b ON ur.partner_id = b.id"). Joins("LEFT JOIN partners b ON ur.partner_id = b.id").

View File

@ -118,7 +118,7 @@ func (s *UserService) Update(ctx mycontext.Context, id int64, userReq *entity.Us
} }
//if changed branch //if changed branch
if *userReq.PartnerID > 0 { if userReq.PartnerID != nil {
branch, err := s.branchRepo.GetBranchByID(ctx, *userReq.PartnerID) branch, err := s.branchRepo.GetBranchByID(ctx, *userReq.PartnerID)
if err != nil { if err != nil {
return nil, err return nil, err