request.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. package binding
  2. import (
  3. "git.sxidc.com/go-framework/baize/api"
  4. "github.com/gin-gonic/gin/binding"
  5. "net/http"
  6. )
  7. func JsonBody[O any](c *api.Context, request any, sendFunc SendFunc[O]) bool {
  8. err := c.ShouldBindJSON(request)
  9. if err != nil {
  10. var zero O
  11. sendFunc(c, http.StatusBadRequest, zero, err)
  12. return false
  13. }
  14. return true
  15. }
  16. func QueryParams[O any](c *api.Context, query any, sendFunc SendFunc[O]) bool {
  17. err := c.ShouldBindQuery(query)
  18. if err != nil {
  19. var zero O
  20. sendFunc(c, http.StatusBadRequest, zero, err)
  21. return false
  22. }
  23. return true
  24. }
  25. func MultipartForm[O any](c *api.Context, request any, sendFunc SendFunc[O]) bool {
  26. err := c.ShouldBindWith(request, binding.FormMultipart)
  27. if err != nil {
  28. var zero O
  29. sendFunc(c, http.StatusBadRequest, zero, err)
  30. return false
  31. }
  32. return true
  33. }
  34. func Form[T any](c *api.Context, request interface{}, sendFunc SendFunc[T]) bool {
  35. err := c.ShouldBindWith(request, binding.Form)
  36. if err != nil {
  37. var zero T
  38. sendFunc(c, http.StatusBadRequest, zero, err)
  39. return false
  40. }
  41. return true
  42. }
  43. func XMLBody[T any](c *api.Context, request interface{}, sendFunc SendFunc[T]) bool {
  44. err := c.ShouldBindXML(request)
  45. if err != nil {
  46. var zero T
  47. sendFunc(c, http.StatusBadRequest, zero, err)
  48. return false
  49. }
  50. return true
  51. }