user.go 857 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package routes
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "net/http"
  6. "github.com/andreanidouglas/auth/model"
  7. )
  8. type UserRequest struct {
  9. ID uint64 `json:"id"`
  10. }
  11. type UserRoutes struct{}
  12. func (u *UserRoutes) Register(r *Routes) {
  13. GetUserDetail(r)
  14. }
  15. func GetUserDetail(route *Routes) {
  16. handler := func(w http.ResponseWriter, r *http.Request) {
  17. var request_body UserRequest
  18. json_decoder := json.NewDecoder(r.Body)
  19. json_decoder.Decode(&request_body)
  20. user, err := model.GetUserById(request_body.ID, &route.Pool)
  21. if err != nil {
  22. w.WriteHeader(500)
  23. fmt.Fprintf(w, "Error getting user details: %v", err)
  24. return
  25. }
  26. err_json := json.NewEncoder(w).Encode(user)
  27. if err_json != nil {
  28. w.WriteHeader(500)
  29. fmt.Fprintf(w, "Error serializing user: %v", err_json)
  30. return
  31. }
  32. }
  33. route.RegisterRoute("/api/user", "POST", true, handler)
  34. }