domName := vars["domName"]
secName := vars["secretName"]
- h.secretBackend.GetSecret(domName, secName)
- //encode and return response
+ sec, err := h.secretBackend.GetSecret(domName, secName)
+ if err != nil {
+ http.Error(w, err.Error(), 500)
+ return
+ }
+
+ err = json.NewEncoder(w).Encode(sec)
+ if err != nil {
+ http.Error(w, err.Error(), 400)
+ return
+ }
+}
+
+// listSecretHandler handles listing all secrets under a particular domain name
+func (h handler) listSecretHandler(w http.ResponseWriter, r *http.Request) {
+ vars := mux.Vars(r)
+ domName := vars["domName"]
+
+ sec, err := h.secretBackend.ListSecret(domName)
+ if err != nil {
+ http.Error(w, err.Error(), http.StatusInternalServerError)
+ return
+ }
+
+ err = json.NewEncoder(w).Encode(sec)
+ if err != nil {
+ http.Error(w, err.Error(), http.StatusInternalServerError)
+ return
+ }
}
// deleteSecretHandler handles deleting a secret by given domain name and secret name
domName := vars["domName"]
secName := vars["secretName"]
- h.secretBackend.DeleteSecret(domName, secName)
+ err := h.secretBackend.DeleteSecret(domName, secName)
+ if err != nil {
+ http.Error(w, err.Error(), http.StatusInternalServerError)
+ return
+ }
}
// struct that tracks various status items for SMS and backend
router.HandleFunc("/v1/sms/domain/{domName}", h.deleteSecretDomainHandler).Methods("DELETE")
router.HandleFunc("/v1/sms/domain/{domName}/secret", h.createSecretHandler).Methods("POST")
+ router.HandleFunc("/v1/sms/domain/{domName}/secret", h.listSecretHandler).Methods("GET")
router.HandleFunc("/v1/sms/domain/{domName}/secret/{secretName}", h.getSecretHandler).Methods("GET")
router.HandleFunc("/v1/sms/domain/{domName}/secret/{secretName}", h.deleteSecretHandler).Methods("DELETE")