github.com/altipla-consulting/ravendb-go-client@v0.1.3/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  }