api_w_raw.go 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. package route
  2. import (
  3. "database/sql"
  4. "encoding/json"
  5. "fmt"
  6. "log"
  7. "opennamu/route/tool"
  8. )
  9. func Api_w_raw(call_arg []string) {
  10. db_set := map[string]string{}
  11. json.Unmarshal([]byte(call_arg[0]), &db_set)
  12. other_set := map[string]string{}
  13. json.Unmarshal([]byte(call_arg[1]), &other_set)
  14. db := tool.DB_connect(db_set)
  15. if db == nil {
  16. return
  17. }
  18. defer db.Close()
  19. if other_set["exist_check"] != "" {
  20. stmt, err := db.Prepare(tool.DB_change(db_set, "select title from data where title = ?"))
  21. if err != nil {
  22. log.Fatal(err)
  23. }
  24. defer stmt.Close()
  25. new_data := map[string]string{}
  26. var title string
  27. err = stmt.QueryRow(other_set["name"]).Scan(&title)
  28. if err != nil {
  29. if err == sql.ErrNoRows {
  30. } else {
  31. log.Fatal(err)
  32. }
  33. } else {
  34. new_data["exist"] = "1"
  35. }
  36. json_data, _ := json.Marshal(new_data)
  37. fmt.Print(string(json_data))
  38. } else {
  39. new_data := map[string]string{}
  40. var data string
  41. if other_set["rev"] != "" {
  42. stmt, err := db.Prepare(tool.DB_change(db_set, "select data from history where title = ? and id = ?"))
  43. if err != nil {
  44. log.Fatal(err)
  45. }
  46. defer stmt.Close()
  47. err = stmt.QueryRow(other_set["name"], other_set["rev"]).Scan(&data)
  48. if err != nil {
  49. if err == sql.ErrNoRows {
  50. } else {
  51. log.Fatal(err)
  52. }
  53. } else {
  54. new_data["title"] = other_set["name"]
  55. new_data["data"] = data
  56. }
  57. json_data, _ := json.Marshal(new_data)
  58. fmt.Print(string(json_data))
  59. } else {
  60. stmt, err := db.Prepare(tool.DB_change(db_set, "select data from data where title = ?"))
  61. if err != nil {
  62. log.Fatal(err)
  63. }
  64. defer stmt.Close()
  65. err = stmt.QueryRow(other_set["name"]).Scan(&data)
  66. if err != nil {
  67. if err == sql.ErrNoRows {
  68. } else {
  69. log.Fatal(err)
  70. }
  71. } else {
  72. new_data["title"] = other_set["name"]
  73. new_data["data"] = data
  74. }
  75. json_data, _ := json.Marshal(new_data)
  76. fmt.Print(string(json_data))
  77. }
  78. }
  79. }