network/patch_response.go (31 lines of code) (raw):
package network
import (
"net/http"
"strconv"
"strings"
"github.com/sirupsen/logrus"
)
const (
rangeHeader = "Range"
)
type TracePatchResponse struct {
*RemoteJobStateResponse
RemoteRange string
}
func (p *TracePatchResponse) NewOffset() int {
remoteRangeParts := strings.Split(p.RemoteRange, "-")
if len(remoteRangeParts) == 2 {
newOffset, _ := strconv.Atoi(remoteRangeParts[1])
return newOffset
}
return 0
}
func NewTracePatchResponse(response *http.Response, logger logrus.FieldLogger) *TracePatchResponse {
result := &TracePatchResponse{
RemoteJobStateResponse: NewRemoteJobStateResponse(response, logger),
}
if response != nil {
result.RemoteRange = response.Header.Get(rangeHeader)
}
return result
}