diff --git a/agt/ballotagent/ballotagent.go b/agt/ballotagent/ballotagent.go index 33f6b8896ae1a2c03797731b3d87444385774d5d..bde5aec9fafa36f27befbec19b86bdfaa75a1252 100644 --- a/agt/ballotagent/ballotagent.go +++ b/agt/ballotagent/ballotagent.go @@ -34,7 +34,7 @@ func (rsa *BallotServerAgent) checkMethod(method string, w http.ResponseWriter, return true } -func (*BallotServerAgent) decodeRequest[R any](r *http.Request) (req rad.BallotRequest, err error) { +func decodeRequest[Req rad.Request](r *http.Request) (req Req, err error) { buf := new(bytes.Buffer) buf.ReadFrom(r.Body) err = json.Unmarshal(buf.Bytes(), &req) diff --git a/agt/ballotagent/new_ballot.go b/agt/ballotagent/new_ballot.go index ea07bf669654038684f38f95002c577467518cb1..7cd1756b66677f417bb03430af44be9e3c52449e 100644 --- a/agt/ballotagent/new_ballot.go +++ b/agt/ballotagent/new_ballot.go @@ -31,7 +31,7 @@ func (rsa *BallotServerAgent) createBallot(w http.ResponseWriter, r *http.Reques } // décodage de la requête - req, err := rsa.decodeRequest(r) + req, err := decodeRequest[rad.BallotRequest](r) if err != nil { w.WriteHeader(http.StatusBadRequest) fmt.Fprint(w, err.Error()) diff --git a/types.go b/types.go index 30acadfa020d12485cd49f9d336d8b50fdd248e9..387efff38ec8d42122cbe2a54b86cca02e2fa589 100644 --- a/types.go +++ b/types.go @@ -23,3 +23,7 @@ type ResultResponse struct { Winner int `json:"winner"` Ranking []int `json:"ranking"` } + +type Request interface { + BallotRequest | Ballot | Vote +}