talksapp: use new App Engine import paths
Change-Id: I49139379c797ef492ad8be5296e88bd7f689ff4c
Reviewed-on: https://go-review.googlesource.com/27560
Reviewed-by: Chris Broadfoot <cbro@golang.org>
diff --git a/talksapp/main.go b/talksapp/main.go
index 0dbe172..0626494 100644
--- a/talksapp/main.go
+++ b/talksapp/main.go
@@ -18,13 +18,15 @@
"path"
"time"
- "appengine"
- "appengine/memcache"
- "appengine/urlfetch"
+ "google.golang.org/appengine"
+ "google.golang.org/appengine/log"
+ "google.golang.org/appengine/memcache"
+ "google.golang.org/appengine/urlfetch"
"github.com/golang/gddo/gosrc"
"github.com/golang/gddo/httputil"
+ "golang.org/x/net/context"
"golang.org/x/tools/present"
)
@@ -115,7 +117,7 @@
}
func httpClient(r *http.Request) *http.Client {
- c := appengine.NewContext(r)
+ ctx, _ := context.WithTimeout(appengine.NewContext(r), 10*time.Second)
github := httputil.NewAuthTransportFromEnvironment(nil)
return &http.Client{
@@ -123,8 +125,8 @@
Token: github.Token,
ClientID: github.ClientID,
ClientSecret: github.ClientSecret,
- Base: &urlfetch.Transport{Context: c, Deadline: 10 * time.Second},
- UserAgent: fmt.Sprintf("%s (+http://%s/-/bot)", appengine.AppID(c), r.Host),
+ Base: &urlfetch.Transport{Context: ctx},
+ UserAgent: fmt.Sprintf("%s (+http://%s/-/bot)", appengine.AppID(ctx), r.Host),
},
}
}
@@ -132,7 +134,7 @@
type handlerFunc func(http.ResponseWriter, *http.Request) error
func (f handlerFunc) ServeHTTP(w http.ResponseWriter, r *http.Request) {
- c := appengine.NewContext(r)
+ ctx := appengine.NewContext(r)
err := f(w, r)
if err == nil {
return
@@ -142,14 +144,14 @@
} else if e, ok := err.(*gosrc.RemoteError); ok {
writeTextHeader(w, 500)
fmt.Fprintf(w, "Error accessing %s.\n%v", e.Host, e)
- c.Infof("Remote error %s: %v", e.Host, e)
+ log.Infof(ctx, "Remote error %s: %v", e.Host, e)
} else if e, ok := err.(presFileNotFoundError); ok {
writeTextHeader(w, 200)
io.WriteString(w, e.Error())
} else if err != nil {
writeTextHeader(w, 500)
io.WriteString(w, "Internal server error.")
- c.Errorf("Internal error %v", err)
+ log.Errorf(ctx, "Internal error %v", err)
}
}
@@ -169,10 +171,10 @@
}
func servePresentation(w http.ResponseWriter, r *http.Request) error {
- c := appengine.NewContext(r)
+ ctx := appengine.NewContext(r)
importPath := r.URL.Path[1:]
- item, err := memcache.Get(c, importPath)
+ item, err := memcache.Get(ctx, importPath)
if err == nil {
writeHTMLHeader(w, 200)
w.Write(item.Value)
@@ -181,13 +183,13 @@
return err
}
- c.Infof("Fetching presentation %s.", importPath)
+ log.Infof(ctx, "Fetching presentation %s.", importPath)
pres, err := getPresentation(httpClient(r), importPath)
if err != nil {
return err
}
- ctx := &present.Context{
+ parser := &present.Context{
ReadFile: func(name string) ([]byte, error) {
if p, ok := pres.Files[name]; ok {
return p, nil
@@ -196,7 +198,7 @@
},
}
- doc, err := ctx.Parse(bytes.NewReader(pres.Files[pres.Filename]), pres.Filename, 0)
+ doc, err := parser.Parse(bytes.NewReader(pres.Files[pres.Filename]), pres.Filename, 0)
if err != nil {
return err
}
@@ -206,7 +208,7 @@
return err
}
- if err := memcache.Add(c, &memcache.Item{
+ if err := memcache.Add(ctx, &memcache.Item{
Key: importPath,
Value: buf.Bytes(),
Expiration: time.Hour,
@@ -235,8 +237,8 @@
}
func serveBot(w http.ResponseWriter, r *http.Request) error {
- c := appengine.NewContext(r)
+ ctx := appengine.NewContext(r)
writeTextHeader(w, 200)
- _, err := fmt.Fprintf(w, "Contact %s for help with the %s bot.", contactEmail, appengine.AppID(c))
+ _, err := fmt.Fprintf(w, "Contact %s for help with the %s bot.", contactEmail, appengine.AppID(ctx))
return err
}
diff --git a/talksapp/main_test.go b/talksapp/main_test.go
index 936143f..a50c13a 100644
--- a/talksapp/main_test.go
+++ b/talksapp/main_test.go
@@ -15,11 +15,11 @@
"testing"
"time"
- "github.com/golang/gddo/gosrc"
+ "google.golang.org/appengine"
+ "google.golang.org/appengine/aetest"
+ "google.golang.org/appengine/memcache"
- "appengine"
- "appengine/aetest"
- "appengine/memcache"
+ "github.com/golang/gddo/gosrc"
)
const importPath = "github.com/user/repo/path/to/presentation.slide"