// Code generated by go-omni api. DO NOT EDIT. package demo import ( "context" "example.com/managed/internal/svc" "example.com/managed/internal/types" "fmt" "git.yuntuo.hk/k2safe/go-omni/contract" "git.yuntuo.hk/k2safe/go-omni/httpx" ) type Logic interface { Check(ctx context.Context, req *types.CheckReq) (*types.Receipt, error) Other(ctx context.Context, req *types.CheckReq) (*types.Receipt, error) RawJSON(ctx context.Context) (*types.Receipt, error) Upload(ctx context.Context, body *httpx.Body) (*types.Receipt, error) Callback(ctx context.Context, body *httpx.Body) (*httpx.Stream, error) Download(ctx context.Context) (*httpx.Stream, error) Slow(ctx context.Context) (*types.Receipt, error) } type Handler struct { logic Logic deps *svc.ServiceContext } func New(s Logic, deps ...*svc.ServiceContext) *Handler { h := &Handler{logic: s} if len(deps) > 0 { h.deps = deps[0] } return h } var checkRequest = contract.MustNew[types.CheckReq]() func (h *Handler) Check(c *httpx.Context) error { var req types.CheckReq if err := checkRequest.BindWithPolicy(c.Request(), httpx.RouteParams(c.Context()), &req, contract.RequestPolicy{UnknownQuery: "", UTF8: "", Charset: "", Body: ""}); err != nil { return err } resp, err := h.logic.Check(c.Context(), &req) if err != nil { return err } if resp == nil { return fmt.Errorf("Check returned a nil response") } return c.OK(resp) } var otherRequest = contract.MustNew[types.CheckReq]() func (h *Handler) Other(c *httpx.Context) error { var req types.CheckReq if err := otherRequest.BindWithPolicy(c.Request(), httpx.RouteParams(c.Context()), &req, contract.RequestPolicy{UnknownQuery: "", UTF8: "", Charset: "", Body: ""}); err != nil { return err } resp, err := h.logic.Other(c.Context(), &req) if err != nil { return err } if resp == nil { return fmt.Errorf("Other returned a nil response") } return c.OK(resp) } var rawJSONRequest = contract.MustNew[struct{}]() func (h *Handler) RawJSON(c *httpx.Context) error { if err := rawJSONRequest.BindWithPolicy(c.Request(), httpx.RouteParams(c.Context()), &struct{}{}, contract.RequestPolicy{UnknownQuery: "", UTF8: "", Charset: "", Body: ""}); err != nil { return err } resp, err := h.logic.RawJSON(c.Context()) if err != nil { return err } if resp == nil { return fmt.Errorf("RawJSON returned a nil response") } return c.OK(resp) } var uploadRequest = contract.MustNew[struct{}]() func (h *Handler) Upload(c *httpx.Context) error { if err := uploadRequest.BindWithPolicy(c.Request(), httpx.RouteParams(c.Context()), &struct{}{}, contract.RequestPolicy{UnknownQuery: "", UTF8: "", Charset: "", Body: "auto"}, 2048); err != nil { return err } body, err := httpx.NewBody(c.Request(), "multipart") if err != nil { return err } resp, err := h.logic.Upload(c.Context(), body) if err != nil { return err } if resp == nil { return fmt.Errorf("Upload returned a nil response") } if err := body.Complete(); err != nil { return err } return c.OK(resp) } var callbackRequest = contract.MustNew[struct{}]() func (h *Handler) Callback(c *httpx.Context) error { if err := callbackRequest.BindWithPolicy(c.Request(), httpx.RouteParams(c.Context()), &struct{}{}, contract.RequestPolicy{UnknownQuery: "", UTF8: "", Charset: "", Body: "auto"}, 64); err != nil { return err } body, err := httpx.NewBody(c.Request(), "raw") if err != nil { return err } resp, err := h.logic.Callback(c.Context(), body) if err != nil { if resp != nil { _ = resp.Close() } return err } if err := body.Complete(); err != nil { if resp != nil { _ = resp.Close() } return err } return c.WriteStream(200, "text/plain", resp) } var downloadRequest = contract.MustNew[struct{}]() func (h *Handler) Download(c *httpx.Context) error { if err := downloadRequest.BindWithPolicy(c.Request(), httpx.RouteParams(c.Context()), &struct{}{}, contract.RequestPolicy{UnknownQuery: "", UTF8: "", Charset: "", Body: ""}); err != nil { return err } resp, err := h.logic.Download(c.Context()) if err != nil { if resp != nil { _ = resp.Close() } return err } return c.WriteStream(200, "application/octet-stream", resp) } var slowRequest = contract.MustNew[struct{}]() func (h *Handler) Slow(c *httpx.Context) error { if err := slowRequest.BindWithPolicy(c.Request(), httpx.RouteParams(c.Context()), &struct{}{}, contract.RequestPolicy{UnknownQuery: "", UTF8: "", Charset: "", Body: ""}); err != nil { return err } resp, err := h.logic.Slow(c.Context()) if err != nil { return err } if resp == nil { return fmt.Errorf("Slow returned a nil response") } return c.OK(resp) }