github.com/louisevanderlith/droxolite@v1.20.2/sample/clients/store.go (about) 1 package clients 2 3 import ( 4 "encoding/base64" 5 "fmt" 6 "github.com/louisevanderlith/droxolite/mix" 7 "github.com/louisevanderlith/husk/keys" 8 "log" 9 "net/http" 10 11 "github.com/louisevanderlith/droxolite/drx" 12 ) 13 14 func StoreGet(w http.ResponseWriter, r *http.Request) { 15 err := mix.Write(w, mix.JSON([]string{"Berry", "Orange", "Apple"})) 16 17 if err != nil { 18 log.Println(err) 19 } 20 } 21 22 func StoreSearch(w http.ResponseWriter, r *http.Request) { 23 page, size := drx.GetPageData(r) 24 hsh := drx.FindParam(r, "hash") 25 26 decoded, err := base64.URLEncoding.DecodeString(hsh) 27 28 if err != nil { 29 http.Error(w, err.Error(), http.StatusInternalServerError) 30 return 31 } 32 33 mxr := mix.JSON(fmt.Sprintf("Page: %v Size: %v Decode: %s", page, size, string(decoded))) 34 35 err = mix.Write(w, mxr) 36 37 if err != nil { 38 log.Println(err) 39 } 40 } 41 42 func StoreView(w http.ResponseWriter, r *http.Request) { 43 param := drx.FindParam(r, "key") 44 result, err := keys.ParseKey(param) 45 46 if err != nil { 47 http.Error(w, err.Error(), http.StatusInternalServerError) 48 return 49 } 50 51 mxr := mix.JSON(fmt.Sprintf("Got a Key %s", result)) 52 53 err = mix.Write(w, mxr) 54 55 if err != nil { 56 log.Println(err) 57 } 58 } 59 60 func StoreCreate(w http.ResponseWriter, r *http.Request) { 61 param := drx.FindParam(r, "id") 62 body := struct{ Act string }{} 63 err := drx.JSONBody(r, &body) 64 65 if err != nil { 66 http.Error(w, err.Error(), http.StatusBadRequest) 67 return 68 } 69 70 mxr := mix.JSON(fmt.Sprintf("#%v: %s", param, body.Act)) 71 72 err = mix.Write(w, mxr) 73 74 if err != nil { 75 log.Println(err) 76 } 77 } 78 79 func StoreUpdate(w http.ResponseWriter, r *http.Request) { 80 param := drx.FindParam(r, "key") 81 result, err := keys.ParseKey(param) 82 83 if err != nil { 84 http.Error(w, err.Error(), http.StatusInternalServerError) 85 return 86 } 87 88 mxr := mix.JSON(fmt.Sprintf("Updated item with Key %s", result)) 89 90 err = mix.Write(w, mxr) 91 92 if err != nil { 93 log.Println(err) 94 } 95 } 96 97 func StoreDelete(w http.ResponseWriter, r *http.Request) { 98 param := drx.FindParam(r, "key") 99 result, err := keys.ParseKey(param) 100 101 if err != nil { 102 http.Error(w, err.Error(), http.StatusInternalServerError) 103 return 104 } 105 106 mxr := mix.JSON(fmt.Sprintf("Deleted item with Key %s", result)) 107 108 err = mix.Write(w, mxr) 109 110 if err != nil { 111 log.Println(err) 112 } 113 }