Commit 06376322 authored by Michael Yang's avatar Michael Yang Committed by Jeffrey Morgan
Browse files

simple pull response

parent dd960d1d
......@@ -8,7 +8,6 @@ import (
"fmt"
"io"
"net/http"
"strings"
"sync"
)
......@@ -140,20 +139,8 @@ func (c *Client) Pull(ctx context.Context, req *PullRequest, callback func(progr
var wg sync.WaitGroup
wg.Add(1)
if err := c.stream(ctx, http.MethodPost, "/api/pull", req, func(progressBytes []byte) {
/*
Events have the following format for progress:
event:progress
data:{"total":123,"completed":123,"percent":0.1}
Need to parse out the data part and unmarshal it.
*/
eventParts := strings.Split(string(progressBytes), "data:")
if len(eventParts) < 2 {
// no data part, ignore
return
}
eventData := eventParts[1]
var progress PullProgress
if err := json.Unmarshal([]byte(eventData), &progress); err != nil {
if err := json.Unmarshal(progressBytes, &progress); err != nil {
fmt.Println(err)
return
}
......
......@@ -120,7 +120,17 @@ func Serve(ln net.Listener) error {
if !ok {
return false
}
c.SSEvent("progress", progress)
bts, err := json.Marshal(progress)
if err != nil {
return false
}
bts = append(bts, '\n')
if _, err := w.Write(bts); err != nil {
return false
}
return true
})
})
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment