131 lines
3.5 KiB
Go
131 lines
3.5 KiB
Go
// Code generated by go-omni api. DO NOT EDIT.
|
|
package user
|
|
|
|
import (
|
|
"context"
|
|
"example.com/userService/internal/servicecontext"
|
|
"example.com/userService/internal/types"
|
|
"fmt"
|
|
"git.yuntuo.hk/k2safe/go-omni/contract"
|
|
"git.yuntuo.hk/k2safe/go-omni/httpx"
|
|
)
|
|
|
|
type Service interface {
|
|
CreateUser(ctx context.Context, req *types.CreateUserReq) (*types.UserResp, error)
|
|
GetUser(ctx context.Context, req *types.UserIDReq) (*types.UserResp, error)
|
|
ListUsers(ctx context.Context, req *types.ListUsersReq) (*types.UserPageResp, error)
|
|
UpdateUser(ctx context.Context, req *types.UpdateUserReq) (*types.UserResp, error)
|
|
DeleteUser(ctx context.Context, req *types.UserIDReq) error
|
|
ExportUser(ctx context.Context, req *types.UserIDReq) (*types.ExportResp, error)
|
|
}
|
|
type Handler struct {
|
|
service Service
|
|
deps *servicecontext.Context
|
|
}
|
|
|
|
func New(s Service, deps ...*servicecontext.Context) *Handler {
|
|
h := &Handler{service: s}
|
|
if len(deps) > 0 {
|
|
h.deps = deps[0]
|
|
}
|
|
return h
|
|
}
|
|
|
|
var createUserRequest = contract.MustNew[types.CreateUserReq]()
|
|
|
|
func (h *Handler) CreateUser(c *httpx.Context) error {
|
|
var req types.CreateUserReq
|
|
if err := createUserRequest.Bind(c.Request(), httpx.RouteParams(c.Context()), &req); err != nil {
|
|
return err
|
|
}
|
|
resp, err := h.service.CreateUser(c.Context(), &req)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if resp == nil {
|
|
return fmt.Errorf("CreateUser returned a nil response")
|
|
}
|
|
return c.Created(resp)
|
|
}
|
|
|
|
var getUserRequest = contract.MustNew[types.UserIDReq]()
|
|
|
|
func (h *Handler) GetUser(c *httpx.Context) error {
|
|
var req types.UserIDReq
|
|
if err := getUserRequest.Bind(c.Request(), httpx.RouteParams(c.Context()), &req); err != nil {
|
|
return err
|
|
}
|
|
resp, err := h.service.GetUser(c.Context(), &req)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if resp == nil {
|
|
return fmt.Errorf("GetUser returned a nil response")
|
|
}
|
|
return c.OK(resp)
|
|
}
|
|
|
|
var listUsersRequest = contract.MustNew[types.ListUsersReq]()
|
|
|
|
func (h *Handler) ListUsers(c *httpx.Context) error {
|
|
var req types.ListUsersReq
|
|
if err := listUsersRequest.Bind(c.Request(), httpx.RouteParams(c.Context()), &req); err != nil {
|
|
return err
|
|
}
|
|
resp, err := h.service.ListUsers(c.Context(), &req)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if resp == nil {
|
|
return fmt.Errorf("ListUsers returned a nil response")
|
|
}
|
|
return c.OK(resp)
|
|
}
|
|
|
|
var updateUserRequest = contract.MustNew[types.UpdateUserReq]()
|
|
|
|
func (h *Handler) UpdateUser(c *httpx.Context) error {
|
|
var req types.UpdateUserReq
|
|
if err := updateUserRequest.Bind(c.Request(), httpx.RouteParams(c.Context()), &req); err != nil {
|
|
return err
|
|
}
|
|
resp, err := h.service.UpdateUser(c.Context(), &req)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if resp == nil {
|
|
return fmt.Errorf("UpdateUser returned a nil response")
|
|
}
|
|
return c.OK(resp)
|
|
}
|
|
|
|
var deleteUserRequest = contract.MustNew[types.UserIDReq]()
|
|
|
|
func (h *Handler) DeleteUser(c *httpx.Context) error {
|
|
var req types.UserIDReq
|
|
if err := deleteUserRequest.Bind(c.Request(), httpx.RouteParams(c.Context()), &req); err != nil {
|
|
return err
|
|
}
|
|
if err := h.service.DeleteUser(c.Context(), &req); err != nil {
|
|
return err
|
|
}
|
|
return c.NoContent()
|
|
}
|
|
|
|
var exportUserRequest = contract.MustNew[types.UserIDReq]()
|
|
|
|
func (h *Handler) ExportUser(c *httpx.Context) error {
|
|
var req types.UserIDReq
|
|
if err := exportUserRequest.Bind(c.Request(), httpx.RouteParams(c.Context()), &req); err != nil {
|
|
return err
|
|
}
|
|
resp, err := h.service.ExportUser(c.Context(), &req)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if resp == nil {
|
|
return fmt.Errorf("ExportUser returned a nil response")
|
|
}
|
|
return c.OK(resp)
|
|
}
|