diff --git a/handlers.go b/handlers.go index 3da7f58..68aa082 100644 --- a/handlers.go +++ b/handlers.go @@ -59,7 +59,7 @@ func (h *Handler) CreateUser(w http.ResponseWriter, r *http.Request, _ httproute json.NewEncoder(w).Encode(user) } -func (h *Handler) GetUsersByPhone(w http.ResponseWriter, r *http.Request, _ httprouter.Params) { +func (h *Handler) GetUserByPhone(w http.ResponseWriter, r *http.Request, _ httprouter.Params) { // Parse phone, err := ParsePhone(r.FormValue("phone_number")) @@ -70,33 +70,22 @@ func (h *Handler) GetUsersByPhone(w http.ResponseWriter, r *http.Request, _ http } // Response object - users := make([]User, 0) + user := User{} // Select - rows, err := h.db.Query(` - SELECT id, username, bio, profile_pic, first_name, last_name FROM "user" WHERE phone_number = $1 - `, phone) + err = h.db.QueryRow(` + SELECT id, username, bio, profile_pic, first_name, last_name, phone_number FROM "user" WHERE phone_number = $1 + `, phone).Scan(&user.ID, &user.Username, &user.Bio, &user.ProfilePic, &user.FirstName, &user.LastName, &user.PhoneNumber) + if err != nil { http.Error(w, http.StatusText(http.StatusInternalServerError), http.StatusInternalServerError) - log.Print(err) + log.Print(err) return } - defer rows.Close() - - // Scan - for rows.Next() { - user := User{} - if err := rows.Scan(&user.ID, &user.Username, &user.Bio, &user.ProfilePic, &user.FirstName, &user.LastName); err != nil { - http.Error(w, http.StatusText(http.StatusInternalServerError), http.StatusInternalServerError) - log.Print(err) - return - } - users = append(users, user) - } // Respond w.Header().Set("Content-Type", "application/json") - json.NewEncoder(w).Encode(users) + json.NewEncoder(w).Encode(user) } func (h *Handler) GetUser(w http.ResponseWriter, r *http.Request, p httprouter.Params) { diff --git a/main.go b/main.go index 1269057..246620f 100644 --- a/main.go +++ b/main.go @@ -40,7 +40,7 @@ func main() { router := httprouter.New() // Users router.POST("/user", h.CreateUser) - router.GET("/user", h.GetUsersByPhone) + router.GET("/user", h.GetUserByPhone) router.GET("/user/id/:user", h.GetUser) router.GET("/user/username/:username", h.GetUserByUsername) router.PATCH("/user", h.UpdateUser)