Files
evening_detective_server/cmd/evening_detective_server/rawbody.go
T
2026-10-03 13:22:11 +07:00

37 lines
637 B
Go

package main
import (
"io"
"github.com/grpc-ecosystem/grpc-gateway/v2/runtime"
"google.golang.org/genproto/googleapis/api/httpbody"
)
type rawBodyMarshaler struct {
runtime.Marshaler
}
func (m *rawBodyMarshaler) NewDecoder(r io.Reader) runtime.Decoder {
return rawBodyDecoder{
Decoder: m.Marshaler.NewDecoder(r),
r: r,
}
}
type rawBodyDecoder struct {
runtime.Decoder
r io.Reader
}
func (d rawBodyDecoder) Decode(v interface{}) error {
if body, ok := v.(*httpbody.HttpBody); ok {
data, err := io.ReadAll(d.r)
if err != nil {
return err
}
body.Data = data
return nil
}
return d.Decoder.Decode(v)
}