go.charczuk.com@v0.0.0-20240327042549-bc490516bd1a/sdk/r2/opt_headers.go (about) 1 /* 2 3 Copyright (c) 2023 - Present. Will Charczuk. All rights reserved. 4 Use of this source code is governed by a MIT license that can be found in the LICENSE file at the root of the repository. 5 6 */ 7 8 package r2 9 10 import "net/http" 11 12 // OptHeaders sets the request headers. 13 func OptHeaders(headers http.Header) Option { 14 return func(r *Request) error { 15 r.req.Header = headers 16 return nil 17 } 18 } 19 20 // OptHeader is an alias to `r2.OptHeaderSet` and sets a 21 // header on the request by key and value. 22 func OptHeader(key, value string) Option { 23 return OptHeaderSet(key, value) 24 } 25 26 // OptHeaderAdd adds a header value on a request. 27 func OptHeaderAdd(key, value string) Option { 28 return func(r *Request) error { 29 if r.req.Header == nil { 30 r.req.Header = make(http.Header) 31 } 32 r.req.Header.Add(key, value) 33 return nil 34 } 35 } 36 37 // OptHeaderSet sets a header value on a request. 38 func OptHeaderSet(key, value string) Option { 39 return func(r *Request) error { 40 if r.req.Header == nil { 41 r.req.Header = make(http.Header) 42 } 43 r.req.Header.Set(key, value) 44 return nil 45 } 46 } 47 48 // OptHeaderDel deletes a header by key on a request. 49 func OptHeaderDel(key string) Option { 50 return func(r *Request) error { 51 if r.req.Header == nil { 52 r.req.Header = make(http.Header) 53 } 54 r.req.Header.Del(key) 55 return nil 56 } 57 }