github.com/louisevanderlith/droxolite@v1.20.2/sample/clients/interface.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 InterfaceGet(fact mix.MixerFactory) http.HandlerFunc { 15 return func(w http.ResponseWriter, r *http.Request) { 16 b := mix.NewDataBag("You are Home!") 17 err := mix.Write(w, fact.Create(r, "Index", "./views/index.html", b)) 18 19 if err != nil { 20 log.Println(err) 21 } 22 } 23 } 24 25 func InterfaceSearch(fact mix.MixerFactory) http.HandlerFunc { 26 return func(w http.ResponseWriter, r *http.Request) { 27 hsh := drx.FindParam(r, "hash") 28 29 decoded, err := base64.URLEncoding.DecodeString(hsh) 30 31 if err != nil { 32 http.Error(w, err.Error(), http.StatusInternalServerError) 33 return 34 } 35 36 b := mix.NewDataBag(string(decoded)) 37 err = mix.Write(w, fact.Create(r, "Index", "./views/index.html", b)) 38 39 if err != nil { 40 log.Println(err) 41 } 42 } 43 } 44 45 func InterfaceView(fact mix.MixerFactory) http.HandlerFunc { 46 return func(w http.ResponseWriter, r *http.Request) { 47 param := drx.FindParam(r, "key") 48 result, err := keys.ParseKey(param) 49 50 if err != nil { 51 http.Error(w, err.Error(), http.StatusInternalServerError) 52 return 53 } 54 55 b := mix.NewDataBag(fmt.Sprintf("Viewing %s", result)) 56 57 err = mix.Write(w, fact.Create(r, "Index", "./views/index.html", b)) 58 59 if err != nil { 60 log.Println(err) 61 } 62 } 63 } 64 65 func InterfaceCreate(fact mix.MixerFactory) http.HandlerFunc { 66 return func(w http.ResponseWriter, r *http.Request) { 67 b := mix.NewDataBag("Nothing Created") 68 err := mix.Write(w, fact.Create(r, "Index", "./views/index.html", b)) 69 70 if err != nil { 71 log.Println(err) 72 } 73 } 74 }