示例#1
0
文件: todo.go 项目: dthomas/tudu
func serveTodoUpdate(w http.ResponseWriter, r *http.Request) *AppResponse {
	todo := new(datastore.Todo)
	err := json.NewDecoder(r.Body).Decode(&AppRequest{todo})
	if err != nil {
		return &AppResponse{"Bad Request", http.StatusBadRequest, todo, nil}
	}

	id, err := strconv.Atoi(mux.Vars(r)["ID"])
	if err != nil {
		return &AppResponse{"Invalid ID", http.StatusBadRequest, nil, nil} // Send 400 Bad Request
	}

	todo.ID = id

	errors, success := todo.Validate()

	if success != true {
		return &AppResponse{"Unprocessable Entity", 422, todo, errors}
	}

	err = todo.Update()
	if err != nil {
		return &AppResponse{err.Error(), 422, todo, nil}
	}

	resp := &AppResponse{"Success", http.StatusOK, todo, nil}
	return resp
}
示例#2
0
文件: todo.go 项目: dthomas/tudu
func serveTodoCreate(w http.ResponseWriter, r *http.Request) *AppResponse {
	todo := new(datastore.Todo)
	err := json.NewDecoder(r.Body).Decode(&AppRequest{todo})
	if err != nil {
		return &AppResponse{"Bad Request", http.StatusBadRequest, nil, nil}
	}

	errors, success := todo.Validate()

	if success != true {
		return &AppResponse{"Unprocessable Entity", 422, todo, errors}
	}

	err = todo.Save()

	if err != nil {
		return &AppResponse{err.Error(), 422, nil, nil}
	}

	resp := &AppResponse{"Success", http.StatusCreated, todo, nil}
	return resp
}