/
routes_gen.go
84 lines (73 loc) · 1.83 KB
/
routes_gen.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
// Code generated by server_generator. DO NOT EDIT.
// generated version: devel
package room
import (
"io"
"log"
"net/http"
"github.com/go-generalize/api_gen/server_generator/sample2/props"
"github.com/go-generalize/api_gen/server_generator/sample2/wrapper"
"github.com/labstack/echo/v4"
"golang.org/x/xerrors"
)
// Routes ...
type Routes struct {
router *echo.Group
}
// NewRoutes ...
func NewRoutes(p *props.ControllerProps, router *echo.Group, opts ...io.Writer) *Routes {
if len(opts) > 0 {
if w := opts[0]; w != nil {
log.SetOutput(w)
}
}
r := &Routes{
router: router,
}
router.GET(":roomID", r.GetRoom(p))
return r
}
// GetRoom ...
func (r *Routes) GetRoom(p *props.ControllerProps) echo.HandlerFunc {
i := NewGetRoomController(p)
b, ok := (interface{})(i).(interface{ AutoBind() bool })
bindable := !ok || b.AutoBind()
return func(c echo.Context) error {
var (
req *GetRoomRequest
werr *wrapper.APIError
)
if bindable {
req = new(GetRoomRequest)
if err := c.Bind(req); err != nil {
log.Printf("failed to JSON binding(/api/event/{eventID}/room/{roomID}): %+v", err)
return c.JSON(http.StatusBadRequest, map[string]interface{}{
"code": http.StatusBadRequest,
"message": "invalid request.",
})
}
if err := c.Validate(req); err != nil && err != echo.ErrValidatorNotRegistered {
if xerrors.As(err, &werr) {
return c.JSON(werr.Status, werr.Body)
}
return err
}
}
res, err := i.GetRoom(c, req)
if err != nil {
if xerrors.As(err, &werr) {
log.Printf("%+v", werr)
return c.JSON(werr.Status, werr.Body)
}
return err
}
if res == nil {
return nil
}
return c.JSON(http.StatusOK, res)
}
}
// IGetRoomController ...
type IGetRoomController interface {
GetRoom(c echo.Context, req *GetRoomRequest) (res *GetRoomResponse, err error)
}