api_edit_post.go 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. package route
  2. import (
  3. "opennamu/route/tool"
  4. "strings"
  5. )
  6. func Api_edit_post(config tool.Config, doc_name string, data string, send string, agree string) map[string]any {
  7. db := tool.DB_connect()
  8. defer tool.DB_close(db)
  9. return_data := make(map[string]any)
  10. date := tool.Get_time()
  11. data = strings.ReplaceAll(data, "\r", "")
  12. if !tool.Do_edit_slow_check(db, config, "edit") {
  13. return_data["response"] = "error"
  14. return_data["data"] = "slow edit limit"
  15. return return_data
  16. } else if !tool.Do_edit_filter(db, config, doc_name, data) {
  17. return_data["response"] = "error"
  18. return_data["data"] = "edit filter (content)"
  19. return return_data
  20. } else if !tool.Do_edit_filter(db, config, doc_name, send) {
  21. return_data["response"] = "error"
  22. return_data["data"] = "edit filter (send)"
  23. return return_data
  24. } else if !tool.Do_edit_send_require_check(db, config, send) {
  25. return_data["response"] = "error"
  26. return_data["data"] = "send require"
  27. return return_data
  28. } else if !tool.Do_edit_text_checkbox_check(db, config, agree) {
  29. return_data["response"] = "error"
  30. return_data["data"] = "checkbox check require"
  31. return return_data
  32. } else if !tool.Do_edit_max_length_check(db, config, data) {
  33. return_data["response"] = "error"
  34. return_data["data"] = "overflow max length"
  35. return return_data
  36. }
  37. var old_data string
  38. tool.QueryRow_DB(
  39. db,
  40. `select data from data where title = ?`,
  41. []any{ &old_data },
  42. doc_name,
  43. )
  44. length := tool.Get_edit_length_diff(old_data, data)
  45. tool.Exec_DB(
  46. db,
  47. `delete from data where title = ?`,
  48. doc_name,
  49. )
  50. tool.Exec_DB(
  51. db,
  52. `insert into data (title, data) values (?, ?)`,
  53. doc_name,
  54. data,
  55. )
  56. tool.Do_add_history(
  57. db,
  58. doc_name,
  59. data,
  60. date,
  61. config.IP,
  62. send,
  63. length,
  64. "",
  65. "",
  66. )
  67. return_data["response"] = "ok"
  68. return return_data
  69. }