package routes import ( "encoding/json" "fmt" "net/http" "github.com/andreanidouglas/auth/model" ) type UserRequest struct { ID uint64 `json:"id"` } type UserRoutes struct{} func (u *UserRoutes) Register(r *Routes) { GetUserDetail(r) } func GetUserDetail(route *Routes) { handler := func(w http.ResponseWriter, r *http.Request) { var request_body UserRequest json_decoder := json.NewDecoder(r.Body) json_decoder.Decode(&request_body) user, err := model.GetUserById(request_body.ID, &route.Pool) if err != nil { w.WriteHeader(500) fmt.Fprintf(w, "Error getting user details: %v", err) return } err_json := json.NewEncoder(w).Encode(user) if err_json != nil { w.WriteHeader(500) fmt.Fprintf(w, "Error serializing user: %v", err_json) return } } route.RegisterRoute("/api/user", "POST", true, handler) }