feat: error response

This commit is contained in:
2025-04-15 22:18:40 +02:00
parent e9601b2fe1
commit e961a4250d
3 changed files with 15 additions and 5 deletions

View File

@ -15,15 +15,13 @@ func FileUploadRoute(req *server.Request) *server.Response {
log.Println("[MAIN] File Upload request:", req)
bytes, err := req.ExtractBytes()
if err != nil {
log.Fatalln("Failed to extract bytes from payload:", err)
return server.NewStatusResponse(server.STATUS_INTERNALERR)
return server.NewErrorResponse(err)
}
filename := "received.bin"
err = os.WriteFile(filename, bytes, 0644)
if err != nil {
log.Fatalln("Failed to write packet payload into a file:", err)
return server.NewStatusResponse(server.STATUS_INTERNALERR)
return server.NewErrorResponse(err)
}
log.Println("Received new request from client:", req.Conn().RemoteAddr().String())

View File

@ -57,6 +57,18 @@ func NewJsonResponse(data map[string]string) (*Response, error) {
}, nil
}
func NewErrorResponse(err error) *Response {
return &Response{
StatusCode: STATUS_INTERNALERR,
Format: DataFormat{
Format: DF_TEXT,
Encoding: E_UTF8,
},
Headers: map[string]string{},
Payload: []byte(err.Error()),
}
}
func (res *Response) ToPacket() *Packet {
headers := make(map[string]string)

View File

@ -35,6 +35,7 @@ func (r *Router) Handle(conn net.Conn) error {
// TODO: Ability to keep connection alive
packet, err := dupl.ReadPacket()
if err != nil {
dupl.WritePacket(NewErrorResponse(err).ToPacket())
return err
}
@ -49,4 +50,3 @@ func (r *Router) Handle(conn net.Conn) error {
}
return errors.New("Not Found")
}