SHARE
TWEET
Untitled
a guest
Sep 30th, 2018
98
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
- package main
- import (
- "encoding/json"
- "github.com/gorilla/mux"
- "github.com/jinzhu/gorm"
- "github.com/rs/cors"
- "log"
- "net/http"
- _ "github.com/jinzhu/gorm/dialects/postgres"
- )
- type Resource struct {
- gorm.Model
- Name string
- TTS string
- TTC string
- }
- var db *gorm.DB
- var err error
- func main() {
- router := mux.NewRouter()
- db, err = gorm.Open(
- "postgres",
- "host=localhost"+" user=postgres"+
- " dbname=Shoes"+" sslmode=disable password=root")
- if err != nil {
- panic("failed to connect database")
- }
- defer db.Close()
- db.AutoMigrate(&Resource{})
- router.HandleFunc("/resources", GetResources).Methods("GET")
- router.HandleFunc("/resources/{id}", GetResource).Methods("GET")
- router.HandleFunc("/resources", CreateResource).Methods("POST")
- router.HandleFunc("/resources/{id}", DeleteResource).Methods("DELETE")
- handler := cors.Default().Handler(router)
- log.Fatal(http.ListenAndServe(":8080", handler))
- }
- func GetResources(w http.ResponseWriter, r *http.Request) {
- var resources []Resource
- db.Find(&resources)
- json.NewEncoder(w).Encode(&resources)
- }
- func GetResource(w http.ResponseWriter, r *http.Request) {
- params := mux.Vars(r)
- var resource Resource
- db.First(&resource, params["id"])
- json.NewEncoder(w).Encode(&resource)
- }
- func CreateResource(w http.ResponseWriter, r *http.Request) {
- var resource Resource
- json.NewDecoder(r.Body).Decode(&resource)
- db.Create(&resource)
- json.NewEncoder(w).Encode(&resource)
- }
- func DeleteResource(w http.ResponseWriter, r *http.Request) {
- params := mux.Vars(r)
- var resource Resource
- db.First(&resource, params["id"])
- db.Delete(&resource)
- var resources []Resource
- db.Find(&resources)
- json.NewEncoder(w).Encode(&resources)
- }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy.
