/
data.go
37 lines (31 loc) · 848 Bytes
/
data.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package search
import (
"html/template"
"golang.org/x/net/context"
"google.golang.org/appengine/datastore"
)
func getRecentMovies(ctx context.Context, maxItems int) ([]movie, error) {
q := datastore.NewQuery("Movie").Project("Name", "URL").Limit(maxItems)
var movies []movie
_, err := q.GetAll(ctx, &movies)
return movies, err
}
func addMovie(ctx context.Context, mov *movie) error {
key := datastore.NewKey(ctx, "Movie", mov.URL, 0, nil)
_, err := datastore.Put(ctx, key, mov)
if err != nil {
return err
}
return addToIndex(ctx, mov)
}
type templateMovie struct {
Name string
URL string
Summary template.HTML
}
func getMovie(ctx context.Context, URL string) (*templateMovie, error) {
key := datastore.NewKey(ctx, "Movie", URL, 0, nil)
var mov templateMovie
err := datastore.Get(ctx, key, &mov)
return &mov, err
}