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  }