github.com/ravendb/ravendb-go-client@v0.0.0-20240229102137-4474ee7aa0fa/http_extensions.go (about) 1 package ravendb 2 3 import ( 4 "net/http" 5 "strings" 6 ) 7 8 func gttpExtensionsGetRequiredEtagHeader(response *http.Response) (*string, error) { 9 hdr := response.Header.Get(headersEtag) 10 if hdr == "" { 11 return nil, newIllegalStateError("Response did't had an ETag header") 12 } 13 etag := httpExtensionsEtagHeaderToChangeVector(hdr) 14 return &etag, nil 15 } 16 17 func gttpExtensionsGetEtagHeader(response *http.Response) *string { 18 hdr := response.Header.Get(headersEtag) 19 if hdr == "" { 20 return nil 21 } 22 res := httpExtensionsEtagHeaderToChangeVector(hdr) 23 return &res 24 } 25 26 func gttpExtensionsGetEtagHeaderFromMap(headers map[string]string) *string { 27 hdr := headers[headersEtag] 28 if hdr == "" { 29 return nil 30 } 31 res := httpExtensionsEtagHeaderToChangeVector(hdr) 32 return &res 33 } 34 35 // TODO: add test 36 func httpExtensionsEtagHeaderToChangeVector(responseHeader string) string { 37 panicIf(responseHeader == "", "Response did't had an ETag header") 38 39 if strings.HasPrefix(responseHeader, `"`) { 40 return responseHeader[1 : len(responseHeader)-1] 41 } 42 43 return responseHeader 44 } 45 46 func httpExtensionsGetBooleanHeader(response *http.Response, header string) bool { 47 hdr := response.Header.Get(header) 48 return strings.EqualFold(hdr, "true") 49 }