Commit 5900ea9a authored by 李宇怀's avatar 李宇怀
Browse files

删了foo(终于想起来删了)

parent 1e47dcba
package dto
import "go-svc-tpl/internal/dao/model"
type GetFooReq struct {
Name string `json:"name"`
}
type GetFooResp struct {
model.Foo
}
package route
import (
"go-svc-tpl/api/dto"
"go-svc-tpl/internal/controller"
"github.com/gin-gonic/gin"
)
func setupFooController(r *gin.RouterGroup) {
cw := FooCtlWrapper{
ctl: controller.NewFooController(),
}
p := r.Group("/foo")
p.GET("/get", cw.GetFoo)
}
type FooCtlWrapper struct {
ctl controller.IFooController
}
// >>>>>>>>>>>>>>>>>> Controller >>>>>>>>>>>>>>>>>>
func (w FooCtlWrapper) GetFoo(c *gin.Context) {
var req dto.GetFooReq
if err := dto.BindReq(c, &req); err != nil {
dto.ResponseFail(c, err)
return
}
resp, err := w.ctl.GetFoo(c, &req)
if err != nil {
dto.ResponseFail(c, err)
return
}
dto.ResponseSuccess(c, resp)
}
package controller
import (
"go-svc-tpl/api/dto"
"go-svc-tpl/internal/dao"
"go-svc-tpl/internal/dao/model"
"github.com/gin-gonic/gin"
)
// >>>>>>>>>>>>>>>>>> Interface >>>>>>>>>>>>>>>>>>
type IFooController interface {
GetFoo(*gin.Context, *dto.GetFooReq) (*dto.GetFooResp, error)
}
// >>>>>>>>>>>>>>>>>> Controller >>>>>>>>>>>>>>>>>>
// check interface implementation
var _ IFooController = (*FooController)(nil)
var NewFooController = func() *FooController {
return &FooController{}
}
type FooController struct {
// maybe some logic config to read from viper
// or a service dependency
}
// ---------------------- GetFoo ----------------------
func (c *FooController) GetFoo(ctx *gin.Context, req *dto.GetFooReq) (*dto.GetFooResp, error) {
var resp dto.GetFooResp
dao.DB(ctx).Model(model.Foo{Name: req.Name}).First(&resp)
return &resp, nil
}
package model
type Foo struct {
ID int64 `json:"id" gorm:"primary_key;AUTO_INCREMENT"`
Name string `json:"name" gorm:"type:varchar(255);not null"`
Age int64 `json:"age" gorm:"type:int"`
}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment