rule_chain.go 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. package controllers
  2. import (
  3. "github.com/kataras/iris"
  4. "sparrow/pkg/models"
  5. "sparrow/services/knowoapi/services"
  6. )
  7. // RuleChainController api
  8. type RuleChainController struct {
  9. Ctx iris.Context
  10. Service services.RuleChainService
  11. Token Token
  12. }
  13. // Post ``
  14. // POST /admin/rule_chain
  15. func (a *RuleChainController) Post() {
  16. ptl := new(models.RuleChain)
  17. if err := parseBody(a.Ctx, ptl); err != nil {
  18. badRequest(a.Ctx, err)
  19. return
  20. }
  21. err := a.Service.Create(ptl)
  22. if err != nil {
  23. responseError(a.Ctx, ErrDatabase, err.Error())
  24. return
  25. }
  26. done(a.Ctx, ptl)
  27. }
  28. // Delete delete
  29. // DELETE /admin/rule_chain
  30. func (a *RuleChainController) Delete() {
  31. RuleChain := new(models.RuleChain)
  32. if err := parseBody(a.Ctx, RuleChain); err != nil {
  33. badRequest(a.Ctx, err)
  34. return
  35. }
  36. if err := a.Service.Delete(RuleChain); err != nil {
  37. responseError(a.Ctx, ErrDatabase, err.Error())
  38. return
  39. }
  40. done(a.Ctx, RuleChain)
  41. }
  42. // Put 更新
  43. // PUT /admin/rule_chain
  44. func (a *RuleChainController) Put() {
  45. RuleChain := new(models.RuleChain)
  46. if err := parseBody(a.Ctx, RuleChain); err != nil {
  47. badRequest(a.Ctx, err)
  48. return
  49. }
  50. if err := a.Service.Update(RuleChain); err != nil {
  51. responseError(a.Ctx, ErrDatabase, err.Error())
  52. return
  53. }
  54. done(a.Ctx, RuleChain)
  55. }
  56. // Get get RuleChains
  57. // GET /admin/rule_chain?pi=&ps=&name=
  58. func (a *RuleChainController) Get() {
  59. pi, err := a.Ctx.URLParamInt("pi")
  60. if err != nil {
  61. badRequest(a.Ctx, err)
  62. return
  63. }
  64. ps, err := a.Ctx.URLParamInt("ps")
  65. if err != nil {
  66. badRequest(a.Ctx, err)
  67. return
  68. }
  69. name := a.Ctx.URLParam("name")
  70. datas, total, err := a.Service.Query(pi, ps, name)
  71. if err != nil {
  72. responseError(a.Ctx, ErrDatabase, err.Error())
  73. return
  74. }
  75. done(a.Ctx, map[string]interface{}{
  76. "list": datas,
  77. "total": total,
  78. })
  79. }