示例#1
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
}