Swap json decoding to Decoder API for shorter/clearer code

This commit is contained in:
David Dworken 2023-09-21 11:42:02 -07:00
parent 63dea34007
commit 9fc1140ab9
No known key found for this signature in database
2 changed files with 9 additions and 29 deletions

View File

@ -5,7 +5,6 @@ import (
"encoding/json" "encoding/json"
"fmt" "fmt"
"html" "html"
"io"
"math" "math"
"net/http" "net/http"
"time" "time"
@ -15,14 +14,10 @@ import (
) )
func (s *Server) apiSubmitHandler(w http.ResponseWriter, r *http.Request) { func (s *Server) apiSubmitHandler(w http.ResponseWriter, r *http.Request) {
data, err := io.ReadAll(r.Body)
if err != nil {
panic(err)
}
var entries []*shared.EncHistoryEntry var entries []*shared.EncHistoryEntry
err = json.Unmarshal(data, &entries) err := json.NewDecoder(r.Body).Decode(&entries)
if err != nil { if err != nil {
panic(fmt.Sprintf("body=%#v, err=%v", data, err)) panic(fmt.Errorf("failed to decode: %w", err))
} }
fmt.Printf("apiSubmitHandler: received request containg %d EncHistoryEntry\n", len(entries)) fmt.Printf("apiSubmitHandler: received request containg %d EncHistoryEntry\n", len(entries))
if len(entries) == 0 { if len(entries) == 0 {
@ -148,14 +143,10 @@ func (s *Server) apiSubmitDumpHandler(w http.ResponseWriter, r *http.Request) {
userId := getRequiredQueryParam(r, "user_id") userId := getRequiredQueryParam(r, "user_id")
srcDeviceId := getRequiredQueryParam(r, "source_device_id") srcDeviceId := getRequiredQueryParam(r, "source_device_id")
requestingDeviceId := getRequiredQueryParam(r, "requesting_device_id") requestingDeviceId := getRequiredQueryParam(r, "requesting_device_id")
data, err := io.ReadAll(r.Body)
if err != nil {
panic(err)
}
var entries []*shared.EncHistoryEntry var entries []*shared.EncHistoryEntry
err = json.Unmarshal(data, &entries) err := json.NewDecoder(r.Body).Decode(&entries)
if err != nil { if err != nil {
panic(fmt.Sprintf("body=%#v, err=%v", data, err)) panic(fmt.Errorf("failed to decode: %w", err))
} }
fmt.Printf("apiSubmitDumpHandler: received request containg %d EncHistoryEntry\n", len(entries)) fmt.Printf("apiSubmitDumpHandler: received request containg %d EncHistoryEntry\n", len(entries))

View File

@ -5,7 +5,6 @@ import (
"encoding/json" "encoding/json"
"errors" "errors"
"fmt" "fmt"
"io"
"net/http" "net/http"
"strconv" "strconv"
"strings" "strings"
@ -157,20 +156,14 @@ func (s *Server) getDeletionRequestsHandler(w http.ResponseWriter, r *http.Reque
} }
func (s *Server) addDeletionRequestHandler(w http.ResponseWriter, r *http.Request) { func (s *Server) addDeletionRequestHandler(w http.ResponseWriter, r *http.Request) {
// TODO: Change code like this to use json.NewDecoder for simplicity
data, err := io.ReadAll(r.Body)
if err != nil {
panic(err)
}
var request shared.DeletionRequest var request shared.DeletionRequest
if err := json.NewDecoder(r.Body).Decode(&request); err != nil {
if err := json.Unmarshal(data, &request); err != nil { panic(fmt.Errorf("failed to decode: %w", err))
panic(fmt.Sprintf("body=%#v, err=%v", data, err))
} }
request.ReadCount = 0 request.ReadCount = 0
fmt.Printf("addDeletionRequestHandler: received request containg %d messages to be deleted\n", len(request.Messages.Ids)) fmt.Printf("addDeletionRequestHandler: received request containg %d messages to be deleted\n", len(request.Messages.Ids))
err = s.db.DeletionRequestCreate(r.Context(), &request) err := s.db.DeletionRequestCreate(r.Context(), &request)
checkGormError(err) checkGormError(err)
w.Header().Set("Content-Length", "0") w.Header().Set("Content-Length", "0")
@ -207,14 +200,10 @@ func (s *Server) slsaStatusHandler(w http.ResponseWriter, r *http.Request) {
} }
func (s *Server) feedbackHandler(w http.ResponseWriter, r *http.Request) { func (s *Server) feedbackHandler(w http.ResponseWriter, r *http.Request) {
data, err := io.ReadAll(r.Body)
if err != nil {
panic(err)
}
var feedback shared.Feedback var feedback shared.Feedback
err = json.Unmarshal(data, &feedback) err := json.NewDecoder(r.Body).Decode(&feedback)
if err != nil { if err != nil {
panic(fmt.Sprintf("feedbackHandler: body=%#v, err=%v", data, err)) panic(fmt.Errorf("failed to decode: %w", err))
} }
fmt.Printf("feedbackHandler: received request containg feedback %#v\n", feedback) fmt.Printf("feedbackHandler: received request containg feedback %#v\n", feedback)
err = s.db.FeedbackCreate(r.Context(), &feedback) err = s.db.FeedbackCreate(r.Context(), &feedback)