feat: error response
This commit is contained in:
6
main.go
6
main.go
@ -15,15 +15,13 @@ 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.NewErrorResponse(err)
|
||||||
return server.NewStatusResponse(server.STATUS_INTERNALERR)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
filename := "received.bin"
|
filename := "received.bin"
|
||||||
err = os.WriteFile(filename, bytes, 0644)
|
err = os.WriteFile(filename, bytes, 0644)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalln("Failed to write packet payload into a file:", err)
|
return server.NewErrorResponse(err)
|
||||||
return server.NewStatusResponse(server.STATUS_INTERNALERR)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Println("Received new request from client:", req.Conn().RemoteAddr().String())
|
log.Println("Received new request from client:", req.Conn().RemoteAddr().String())
|
||||||
|
@ -57,6 +57,18 @@ func NewJsonResponse(data map[string]string) (*Response, error) {
|
|||||||
}, nil
|
}, 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 {
|
func (res *Response) ToPacket() *Packet {
|
||||||
headers := make(map[string]string)
|
headers := make(map[string]string)
|
||||||
|
|
||||||
|
@ -35,6 +35,7 @@ func (r *Router) Handle(conn net.Conn) error {
|
|||||||
// TODO: Ability to keep connection alive
|
// TODO: Ability to keep connection alive
|
||||||
packet, err := dupl.ReadPacket()
|
packet, err := dupl.ReadPacket()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
dupl.WritePacket(NewErrorResponse(err).ToPacket())
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -49,4 +50,3 @@ func (r *Router) Handle(conn net.Conn) error {
|
|||||||
}
|
}
|
||||||
return errors.New("Not Found")
|
return errors.New("Not Found")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user