// Code generated by go-omni api. DO NOT EDIT. package user import ( "context" "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 } func New(s Service) *Handler { return &Handler{service: s} } 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) }