Guest User

Untitled

a guest
Sep 30th, 2018
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.75 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4. "encoding/json"
  5. "github.com/gorilla/mux"
  6. "github.com/jinzhu/gorm"
  7. "github.com/rs/cors"
  8. "log"
  9. "net/http"
  10.  
  11. _ "github.com/jinzhu/gorm/dialects/postgres"
  12. )
  13.  
  14. type Resource struct {
  15. gorm.Model
  16.  
  17. Name string
  18. TTS string
  19. TTC string
  20. }
  21.  
  22. var db *gorm.DB
  23. var err error
  24.  
  25. func main() {
  26. router := mux.NewRouter()
  27.  
  28. db, err = gorm.Open(
  29. "postgres",
  30. "host=localhost"+" user=postgres"+
  31. " dbname=Shoes"+" sslmode=disable password=root")
  32.  
  33. if err != nil {
  34. panic("failed to connect database")
  35. }
  36.  
  37. defer db.Close()
  38.  
  39. db.AutoMigrate(&Resource{})
  40.  
  41. router.HandleFunc("/resources", GetResources).Methods("GET")
  42. router.HandleFunc("/resources/{id}", GetResource).Methods("GET")
  43. router.HandleFunc("/resources", CreateResource).Methods("POST")
  44. router.HandleFunc("/resources/{id}", DeleteResource).Methods("DELETE")
  45.  
  46. handler := cors.Default().Handler(router)
  47.  
  48. log.Fatal(http.ListenAndServe(":8080", handler))
  49. }
  50.  
  51. func GetResources(w http.ResponseWriter, r *http.Request) {
  52. var resources []Resource
  53. db.Find(&resources)
  54. json.NewEncoder(w).Encode(&resources)
  55. }
  56.  
  57. func GetResource(w http.ResponseWriter, r *http.Request) {
  58. params := mux.Vars(r)
  59. var resource Resource
  60. db.First(&resource, params["id"])
  61. json.NewEncoder(w).Encode(&resource)
  62. }
  63.  
  64. func CreateResource(w http.ResponseWriter, r *http.Request) {
  65. var resource Resource
  66. json.NewDecoder(r.Body).Decode(&resource)
  67. db.Create(&resource)
  68. json.NewEncoder(w).Encode(&resource)
  69. }
  70.  
  71. func DeleteResource(w http.ResponseWriter, r *http.Request) {
  72. params := mux.Vars(r)
  73. var resource Resource
  74. db.First(&resource, params["id"])
  75. db.Delete(&resource)
  76.  
  77. var resources []Resource
  78. db.Find(&resources)
  79. json.NewEncoder(w).Encode(&resources)
  80. }
Advertisement
Add Comment
Please, Sign In to add comment