You need to sign in or sign up before continuing.
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 ( ...@@ -8,7 +8,6 @@ import (
"fmt" "fmt"
"io" "io"
"net/http" "net/http"
"strings"
"sync" "sync"
) )
...@@ -140,20 +139,8 @@ func (c *Client) Pull(ctx context.Context, req *PullRequest, callback func(progr ...@@ -140,20 +139,8 @@ func (c *Client) Pull(ctx context.Context, req *PullRequest, callback func(progr
var wg sync.WaitGroup var wg sync.WaitGroup
wg.Add(1) wg.Add(1)
if err := c.stream(ctx, http.MethodPost, "/api/pull", req, func(progressBytes []byte) { 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 var progress PullProgress
if err := json.Unmarshal([]byte(eventData), &progress); err != nil { if err := json.Unmarshal(progressBytes, &progress); err != nil {
fmt.Println(err) fmt.Println(err)
return return
} }
......
...@@ -120,7 +120,17 @@ func Serve(ln net.Listener) error { ...@@ -120,7 +120,17 @@ func Serve(ln net.Listener) error {
if !ok { if !ok {
return false 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 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