Source file
doc/progs/error2.go
1
2
3
4
5
6
7 package main
8
9 import (
10 "net/http"
11 "text/template"
12 )
13
14 func init() {
15 http.HandleFunc("/view", viewRecord)
16 }
17
18 func viewRecord(w http.ResponseWriter, r *http.Request) {
19 c := appengine.NewContext(r)
20 key := datastore.NewKey(c, "Record", r.FormValue("id"), 0, nil)
21 record := new(Record)
22 if err := datastore.Get(c, key, record); err != nil {
23 http.Error(w, err.Error(), http.StatusInternalServerError)
24 return
25 }
26 if err := viewTemplate.Execute(w, record); err != nil {
27 http.Error(w, err.Error(), http.StatusInternalServerError)
28 }
29 }
30
31
32
33 type ap struct{}
34
35 func (ap) NewContext(*http.Request) *ctx { return nil }
36
37 type ctx struct{}
38
39 func (*ctx) Errorf(string, ...interface{}) {}
40
41 var appengine ap
42
43 type ds struct{}
44
45 func (ds) NewKey(*ctx, string, string, int, *int) string { return "" }
46 func (ds) Get(*ctx, string, *Record) error { return nil }
47
48 var datastore ds
49
50 type Record struct{}
51
52 var viewTemplate *template.Template
53
54 func main() {}
55
View as plain text