Example #1
0
func LoginUser(res http.ResponseWriter, req *http.Request, dbmap *gorp.DbMap) {
	// get email and password
	item := new(models.User)
	// vars := mux.Vars(req)
	// email := vars["email"]
	// password := vars["password"]

	var userWrapper UserWrapper
	var err error

	err = json.NewDecoder(req.Body).Decode(&userWrapper)
	if err != nil {
		Respond(nil, err, res)
		return
	}

	// get the user
	err = dbmap.SelectOne(&item, "select * from users where email=$1", userWrapper.Email)
	if err != nil {
		Respond(nil, err, res)
		return
	}

	// check the password
	err = item.ComparePassword(userWrapper.Password)
	if err != nil {
		Respond(nil, err, res)
		return
	}

	Respond(item, nil, res)
}