feat: correct serialize of "bytes" data format
This commit is contained in:
1
main.go
1
main.go
@ -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)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,2 +0,0 @@
|
|||||||
Hello, everyone!
|
|
||||||
I'm a txt 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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user