123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- package handlers
- import (
- "encoding/json"
- "net/http"
- "strconv"
- "git.familybaby.top/flight/csdn/database"
- "git.familybaby.top/flight/csdn/models"
- "github.com/gorilla/mux"
- )
- func CreateUser(w http.ResponseWriter, r *http.Request) {
- var User models.User
- err := json.NewDecoder(r.Body).Decode(&User)
- if err != nil {
- http.Error(w, err.Error(), http.StatusBadRequest)
- return
- }
- result := database.DB.Create(&User)
- if result.Error != nil {
- http.Error(w, result.Error.Error(), http.StatusInternalServerError)
- return
- }
- w.Header().Set("Content-Type", "application/json")
- w.WriteHeader(http.StatusCreated)
- json.NewEncoder(w).Encode(User)
- }
- func GetUsers(w http.ResponseWriter, r *http.Request) {
- var Users []models.User
- result := database.DB.Find(&Users)
- if result.Error != nil {
- http.Error(w, result.Error.Error(), http.StatusInternalServerError)
- return
- }
- w.Header().Set("Content-Type", "application/json")
- json.NewEncoder(w).Encode(Users)
- }
- func GetUser(w http.ResponseWriter, r *http.Request) {
- params := mux.Vars(r)
- id, err := strconv.Atoi(params["id"])
- if err != nil {
- http.Error(w, "Invalid ID", http.StatusBadRequest)
- return
- }
- var User models.User
- result := database.DB.First(&User, id)
- if result.Error != nil {
- http.Error(w, result.Error.Error(), http.StatusNotFound)
- return
- }
- w.Header().Set("Content-Type", "application/json")
- json.NewEncoder(w).Encode(User)
- }
- func UpdateUser(w http.ResponseWriter, r *http.Request) {
- params := mux.Vars(r)
- id, err := strconv.Atoi(params["id"])
- if err != nil {
- http.Error(w, "Invalid ID", http.StatusBadRequest)
- return
- }
- var User models.User
- err = json.NewDecoder(r.Body).Decode(&User)
- if err != nil {
- http.Error(w, err.Error(), http.StatusBadRequest)
- return
- }
- result := database.DB.Model(&models.User{}).Where("id = ?", id).Updates(User)
- if result.Error != nil {
- http.Error(w, result.Error.Error(), http.StatusInternalServerError)
- return
- }
- w.Header().Set("Content-Type", "application/json")
- w.WriteHeader(http.StatusOK)
- json.NewEncoder(w).Encode(User)
- }
- func DeleteUser(w http.ResponseWriter, r *http.Request) {
- params := mux.Vars(r)
- id, err := strconv.Atoi(params["id"])
- if err != nil {
- http.Error(w, "Invalid ID", http.StatusBadRequest)
- return
- }
- result := database.DB.Delete(&models.User{}, id)
- if result.Error != nil {
- http.Error(w, result.Error.Error(), http.StatusInternalServerError)
- return
- }
- w.WriteHeader(http.StatusNoContent)
- }
|