Example #1
0
func LookupISBN(ctx ae.Context, country string, isbn isbn13.ISBN13) (resp *data.BookMetaData, err error) {
	keyString := data.BookInfoPrototypeKey(ctx, isbn, country)
	target := new(data.BookMetaData)

	if _, err = mc.Gob.Get(ctx, keyString, target); err == nil {
		target.Parent = country
		resp = target
	} else {
		key := ds.NewKey(ctx, data.KindBookInfo, keyString, 0, nil)

		if err = ds.Get(ctx, key, target); err == nil {
			resp = target
			resp.Parent = country
			cacheISBNResult(ctx, keyString, resp)
		}
	}

	return
}