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  }