test: create file streamer

This commit is contained in:
2025-04-19 13:31:01 +02:00
parent 6a14f855f3
commit e3643ff330

View File

@ -44,26 +44,23 @@ func PingPongRoute(req *hsp.Request) *hsp.Response {
return res return res
} }
func FileUploadRoute(req *hsp.Request) *hsp.Response { func FileUploadStreamer(req *hsp.Request, c chan []byte) {
log.Println("[MAIN] File Upload request:", req) log.Println("[MAIN] File Upload request:", req.GetRawPacket())
bytes, err := req.ExtractBytes()
if err != nil {
return hsp.NewStatusResponse(hsp.STATUS_INTERNALERR)
}
filename := "received.bin" filename := "received.bin"
err = os.WriteFile(filename, bytes, 0644)
file, err := os.OpenFile(filename, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
if err != nil { if err != nil {
log.Fatalln("Failed to write packet payload into a file:", err) log.Fatalf("Failed to open file: %v", err)
return hsp.NewStatusResponse(hsp.STATUS_INTERNALERR)
} }
log.Println("Received new request from client:", req.Conn().RemoteAddr().String()) defer file.Close()
res := hsp.NewTextResponse("Hello, World!") for buf := range c {
res.AddHeader("filename", filename) if _, err := file.Write(buf); err != nil {
log.Printf("Write error: %v", err)
return res }
}
} }
func JsonMockRoute(req *hsp.Request) *hsp.Response { func JsonMockRoute(req *hsp.Request) *hsp.Response {
@ -97,7 +94,7 @@ func main() {
router := server.NewRouter() router := server.NewRouter()
router.AddRoute("/file-upload", FileUploadRoute) router.AddStreamer("/file-upload", FileUploadStreamer)
router.AddRoute("/ping-pong", PingPongRoute) router.AddRoute("/ping-pong", PingPongRoute)
router.AddRoute("/mock-json", JsonMockRoute) router.AddRoute("/mock-json", JsonMockRoute)