You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
1.3 KiB
60 lines
1.3 KiB
package user |
|
|
|
import ( |
|
"git.echinacities.com/mogfee/protoc-gen-kit/response" |
|
"github.com/gin-gonic/gin" |
|
) |
|
|
|
func NewGin(app *gin.Engine, srv UserServer) { |
|
app.GET("/api/v1/user/list", httpList(srv)) |
|
app.POST("/api/v1/user/login", httpLogin(srv)) |
|
app.DELETE("/api/v1/user/delete", httpDelete(srv)) |
|
} |
|
func httpList(srv UserServer) func(c *gin.Context) { |
|
return func(c *gin.Context) { |
|
post := LoginRequest{} |
|
resp := response.New(c) |
|
if err := resp.BindQuery(&post); err != nil { |
|
resp.Error(err) |
|
return |
|
} |
|
result, err := srv.List(c, &post) |
|
if err != nil { |
|
resp.Error(err) |
|
return |
|
} |
|
c.JSON(200, result) |
|
} |
|
} |
|
func httpLogin(srv UserServer) func(c *gin.Context) { |
|
return func(c *gin.Context) { |
|
post := LoginRequest{} |
|
resp := response.New(c) |
|
if err := resp.BindJSON(&post); err != nil { |
|
resp.Error(err) |
|
return |
|
} |
|
result, err := srv.Login(c, &post) |
|
if err != nil { |
|
resp.Error(err) |
|
return |
|
} |
|
c.JSON(200, result) |
|
} |
|
} |
|
func httpDelete(srv UserServer) func(c *gin.Context) { |
|
return func(c *gin.Context) { |
|
post := LoginRequest{} |
|
resp := response.New(c) |
|
if err := resp.BindJSON(&post); err != nil { |
|
resp.Error(err) |
|
return |
|
} |
|
result, err := srv.Delete(c, &post) |
|
if err != nil { |
|
resp.Error(err) |
|
return |
|
} |
|
c.JSON(200, result) |
|
} |
|
}
|
|
|