2
0

api_w_raw.go 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package route
  2. import (
  3. "opennamu/route/tool"
  4. )
  5. func Api_w_raw(config tool.Config, doc_name string, exist_check string, rev string) map[string]any {
  6. db := tool.DB_connect()
  7. defer tool.DB_close(db)
  8. new_data := make(map[string]any)
  9. if !tool.Check_acl(db, doc_name, "", "render", config.IP) {
  10. new_data["response"] = "require auth"
  11. } else if exist_check != "" {
  12. title := ""
  13. exist := tool.QueryRow_DB(
  14. db,
  15. "select title from data where title = ? collate nocase",
  16. []any{ &title },
  17. doc_name,
  18. )
  19. if !exist {
  20. new_data["exist"] = false
  21. } else {
  22. new_data["exist"] = true
  23. }
  24. new_data["data"] = title
  25. new_data["response"] = "ok"
  26. } else {
  27. exist := false
  28. data := ""
  29. hide := ""
  30. if rev != "" {
  31. exist = tool.QueryRow_DB(
  32. db,
  33. "select data, hide from history where title = ? and id = ?",
  34. []any{ &data, &hide },
  35. doc_name, rev,
  36. )
  37. } else {
  38. exist = tool.QueryRow_DB(
  39. db,
  40. "select data from data where title = ?",
  41. []any{ &data },
  42. doc_name,
  43. )
  44. }
  45. if !exist {
  46. new_data["response"] = "not exist"
  47. } else {
  48. check_pass := false
  49. if hide != "" {
  50. if tool.Check_acl(db, "", "", "hidel_auth", config.IP) {
  51. check_pass = true
  52. } else {
  53. new_data["response"] = "require auth"
  54. }
  55. } else {
  56. check_pass = true
  57. }
  58. if check_pass {
  59. new_data["title"] = doc_name
  60. new_data["data"] = data
  61. new_data["response"] = "ok"
  62. }
  63. }
  64. }
  65. return new_data
  66. }