Skip to content

Commit 8d4d56e

Browse files
authored
Update go-server version in client (#66)
* Updates to client * Updated go-server version
1 parent 0a7904d commit 8d4d56e

3 files changed

Lines changed: 23 additions & 18 deletions

File tree

client.go

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -316,7 +316,7 @@ func do(client *http.Client, req *http.Request, accept string, strict bool, out
316316
defer response.Body.Close()
317317

318318
// Get content type
319-
mimetype, err := respContentType(response)
319+
mimetype, err := types.ParseContentType(response.Header.Get(types.ContentTypeHeader))
320320
if err != nil {
321321
return err
322322
}
@@ -381,7 +381,7 @@ func do(client *http.Client, req *http.Request, accept string, strict bool, out
381381
}
382382

383383
switch {
384-
case mimetype == types.ContentTypeJSON || mimetype == types.ContentTypeJSONStream:
384+
case mimetype == types.ContentTypeJSON || mimetype == types.ContentTypeJSONStream || mimetype == types.ContentTypeJSONStreamLegacy:
385385
dec := json.NewDecoder(response.Body)
386386
if reqopts.jsonStreamCallback != nil {
387387
for {
@@ -408,6 +408,24 @@ func do(client *http.Client, req *http.Request, accept string, strict bool, out
408408
return err
409409
}
410410
}
411+
case mimetype == types.ContentTypeTextStream:
412+
if reqopts.textStreamCallback != nil {
413+
stream := NewTextStream()
414+
if err := stream.Decode(response.Body, reqopts.textStreamCallback); err != nil {
415+
return err
416+
}
417+
return nil
418+
}
419+
if out == nil {
420+
return nil
421+
}
422+
if v, ok := out.(io.Writer); ok {
423+
if _, err := io.Copy(v, response.Body); err != nil {
424+
return err
425+
}
426+
return nil
427+
}
428+
return httpresponse.ErrInternalError.Withf("do: response does not implement Unmarshaler for %q", mimetype)
411429
case mimetype == types.ContentTypeTextXml || mimetype == types.ContentTypeXML:
412430
if err := xml.NewDecoder(response.Body).Decode(out); err != nil {
413431
return err
@@ -442,16 +460,3 @@ func do(client *http.Client, req *http.Request, accept string, strict bool, out
442460
// Return success
443461
return nil
444462
}
445-
446-
// Parse the response content type
447-
func respContentType(resp *http.Response) (string, error) {
448-
contenttype := resp.Header.Get("Content-Type")
449-
if contenttype == "" {
450-
return types.ContentTypeBinary, nil
451-
}
452-
if mimetype, err := types.ParseContentType(contenttype); err != nil {
453-
return contenttype, httpresponse.Err(http.StatusUnsupportedMediaType).With(contenttype)
454-
} else {
455-
return mimetype, nil
456-
}
457-
}

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ require (
77
github.com/andreburgaud/crypt2go v1.8.0
88
github.com/djthorpe/go-errors v1.0.3
99
github.com/djthorpe/go-tablewriter v0.0.11
10-
github.com/mutablelogic/go-server v1.6.23
10+
github.com/mutablelogic/go-server v1.6.24
1111
github.com/stretchr/testify v1.11.1
1212
github.com/xdg-go/pbkdf2 v1.0.0
1313
go.opentelemetry.io/otel v1.43.0

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
3939
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
4040
github.com/mattn/go-runewidth v0.0.23 h1:7ykA0T0jkPpzSvMS5i9uoNn2Xy3R383f9HDx3RybWcw=
4141
github.com/mattn/go-runewidth v0.0.23/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs=
42-
github.com/mutablelogic/go-server v1.6.23 h1:olZitKaYVMEbrr/4Gfa/ZvmQONw7f7vkJE5eaQ/X+U8=
43-
github.com/mutablelogic/go-server v1.6.23/go.mod h1:Ey+p09lrV1T54szrJi9hlbknRlTvHLxsfo3h6nyxurk=
42+
github.com/mutablelogic/go-server v1.6.24 h1:TzvtNYSyfu57PzDSoPr8rXRA9zM/IhdGeOM6jkUFMAo=
43+
github.com/mutablelogic/go-server v1.6.24/go.mod h1:Ey+p09lrV1T54szrJi9hlbknRlTvHLxsfo3h6nyxurk=
4444
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
4545
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
4646
github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ=

0 commit comments

Comments
 (0)