go.mercari.io/datastore@v1.8.2/aeprodtest/main.go (about) 1 package aeprodtest 2 3 import ( 4 "net/http" 5 6 "google.golang.org/appengine" 7 originaldatastore "google.golang.org/appengine/datastore" 8 "google.golang.org/appengine/log" 9 10 "go.mercari.io/datastore/aedatastore" 11 ) 12 13 func init() { 14 // Put Entity via original AppEngine Datastore 15 http.HandleFunc("/api/test1", func(w http.ResponseWriter, r *http.Request) { 16 ctx := appengine.NewContext(r) 17 18 type Inner struct { 19 A string 20 B string 21 } 22 23 type Data struct { 24 Slice []Inner 25 } 26 27 key := originaldatastore.NewIncompleteKey(ctx, "AETest", nil) 28 _, err := originaldatastore.Put(ctx, key, &Data{ 29 Slice: []Inner{ 30 {A: "A1", B: "B1"}, 31 {A: "A2", B: "B2"}, 32 {A: "A3", B: "B3"}, 33 }, 34 }) 35 if err != nil { 36 w.WriteHeader(http.StatusInternalServerError) 37 log.Warningf(ctx, "error: %v", err) 38 return 39 } 40 41 w.WriteHeader(200) 42 }) 43 44 // Put Entity via datastore 45 http.HandleFunc("/api/test2", func(w http.ResponseWriter, r *http.Request) { 46 ctx := appengine.NewContext(r) 47 48 ds, err := aedatastore.FromContext(ctx) 49 if err != nil { 50 w.WriteHeader(http.StatusInternalServerError) 51 log.Warningf(ctx, "error: %v", err) 52 return 53 } 54 55 type Inner struct { 56 A string 57 B string 58 } 59 60 type Data struct { 61 Slice []Inner 62 } 63 64 key := ds.IncompleteKey("AETest", nil) 65 _, err = ds.Put(ctx, key, &Data{ 66 Slice: []Inner{ 67 {A: "A1", B: "B1"}, 68 {A: "A2", B: "B2"}, 69 {A: "A3", B: "B3"}, 70 }, 71 }) 72 if err != nil { 73 w.WriteHeader(http.StatusInternalServerError) 74 log.Warningf(ctx, "error: %v", err) 75 return 76 } 77 78 w.WriteHeader(200) 79 }) 80 81 // Put Entity via datastore 82 http.HandleFunc("/api/test3", func(w http.ResponseWriter, r *http.Request) { 83 ctx := appengine.NewContext(r) 84 85 ds, err := aedatastore.FromContext(ctx) 86 if err != nil { 87 w.WriteHeader(http.StatusInternalServerError) 88 log.Warningf(ctx, "error: %v", err) 89 return 90 } 91 92 type Inner struct { 93 A string 94 B string 95 } 96 97 type Data struct { 98 Slice []Inner `datastore:",flatten"` 99 } 100 101 key := ds.IncompleteKey("AETest", nil) 102 _, err = ds.Put(ctx, key, &Data{ 103 Slice: []Inner{ 104 {A: "A1", B: "B1"}, 105 {A: "A2", B: "B2"}, 106 {A: "A3", B: "B3"}, 107 }, 108 }) 109 if err != nil { 110 w.WriteHeader(http.StatusInternalServerError) 111 log.Warningf(ctx, "error: %v", err) 112 return 113 } 114 115 w.WriteHeader(200) 116 }) 117 }