feat: correct serialize of "bytes" data format

This commit is contained in:
2025-04-15 21:52:26 +02:00
parent 9c55ea257d
commit e9601b2fe1
4 changed files with 15 additions and 13 deletions

BIN
hsp-go

Binary file not shown.

View File

@ -15,6 +15,7 @@ func FileUploadRoute(req *server.Request) *server.Response {
log.Println("[MAIN] File Upload request:", req) log.Println("[MAIN] File Upload request:", req)
bytes, err := req.ExtractBytes() bytes, err := req.ExtractBytes()
if err != nil { if err != nil {
log.Fatalln("Failed to extract bytes from payload:", err)
return server.NewStatusResponse(server.STATUS_INTERNALERR) return server.NewStatusResponse(server.STATUS_INTERNALERR)
} }

View File

@ -1,2 +0,0 @@
Hello, everyone!
I'm a txt file

View File

@ -11,17 +11,17 @@ import (
type Response struct { type Response struct {
StatusCode int StatusCode int
Format DataFormat Format DataFormat
Headers map[string]string Headers map[string]string
Payload []byte Payload []byte
} }
func NewStatusResponse(status int) *Response { func NewStatusResponse(status int) *Response {
return &Response{ return &Response{
StatusCode: status, StatusCode: status,
Headers: make(map[string]string), Headers: make(map[string]string),
Format: DataFormat{ Format: DataFormat{
Format: DF_BYTES, Format: DF_BYTES,
Encoding: "", Encoding: "",
}, },
Payload: make([]byte, 0), Payload: make([]byte, 0),
@ -31,9 +31,9 @@ func NewStatusResponse(status int) *Response {
func NewTextResponse(text string) *Response { func NewTextResponse(text string) *Response {
return &Response{ return &Response{
StatusCode: STATUS_SUCCESS, StatusCode: STATUS_SUCCESS,
Headers: make(map[string]string), Headers: make(map[string]string),
Format: DataFormat{ Format: DataFormat{
Format: DF_TEXT, Format: DF_TEXT,
Encoding: E_UTF8, Encoding: E_UTF8,
}, },
Payload: []byte(text), Payload: []byte(text),
@ -48,9 +48,9 @@ func NewJsonResponse(data map[string]string) (*Response, error) {
return &Response{ return &Response{
StatusCode: STATUS_SUCCESS, StatusCode: STATUS_SUCCESS,
Headers: make(map[string]string), Headers: make(map[string]string),
Format: DataFormat{ Format: DataFormat{
Format: DF_JSON, Format: DF_JSON,
Encoding: E_UTF8, Encoding: E_UTF8,
}, },
Payload: jsonBytes, Payload: jsonBytes,
@ -62,7 +62,11 @@ func (res *Response) ToPacket() *Packet {
maps.Copy(headers, res.Headers) maps.Copy(headers, res.Headers)
headers[H_DATA_FORMAT] = fmt.Sprintf("%s:%s", res.Format.Format, res.Format.Encoding) if res.Format.Format == DF_BYTES {
headers[H_DATA_FORMAT] = DF_BYTES
} else {
headers[H_DATA_FORMAT] = fmt.Sprintf("%s:%s", res.Format.Format, res.Format.Encoding)
}
headers[H_STATUS] = strconv.Itoa(res.StatusCode) headers[H_STATUS] = strconv.Itoa(res.StatusCode)
return BuildPacket(headers, res.Payload) return BuildPacket(headers, res.Payload)
@ -87,4 +91,3 @@ func (res *Response) Write(p []byte) (int, error) {
return n, err return n, err
} }