diff --git a/frontend/config/config.go b/frontend/config/config.go index 87eef5a..68f1f8d 100644 --- a/frontend/config/config.go +++ b/frontend/config/config.go @@ -10,8 +10,9 @@ import ( // Backend contains backend connection-specific configuration type Backend struct { - Addr string `mapstructure:"addr"` - Secured bool `mapstructure:"secured"` + Addr string `mapstructure:"addr"` + Secured bool `mapstructure:"secured"` + Headers map[string]string `mapstructure:"headers"` } // Content contains content-specific configuration @@ -42,9 +43,9 @@ func init() { pflag.String("unix", "", "unix socket path to listen") pflag.String("base", "", "http URI prefix") + pflag.StringToString("content.backend.headers", nil, "map of additional headers to send") pflag.String("content.backend.addr", "demo.ghost.io:443", "ghost backend addr") pflag.Bool("content.backend.secured", true, "is ghost backend secured") - pflag.String("content.backend", "demo.ghost.io:443", "ghost backend addr") pflag.String("content.key", "22444f78447824223cefc48062", "ghost content api key") pflag.String("content.pinned", "contact", "pinned page slug") pflag.Int("content.postsPerPage", 5, "amount of posts per page") diff --git a/frontend/ghost/client.go b/frontend/ghost/client.go index e9c089e..1b28c3b 100644 --- a/frontend/ghost/client.go +++ b/frontend/ghost/client.go @@ -25,6 +25,7 @@ type HTTPClient struct { ContentKey string Addr string Secured bool + Headers map[string]string client *fasthttp.HostClient @@ -63,6 +64,9 @@ func (g *HTTPClient) doQuery(method string, v easyjson.Unmarshaler, params ...Qu uri.SetScheme("https") } + for hKey, hValue := range g.Headers { + req.Header.Add(hKey, hValue) + } for _, param := range params { param.Apply(&req.Header, uri.QueryArgs()) } @@ -78,7 +82,6 @@ func (g *HTTPClient) doQuery(method string, v easyjson.Unmarshaler, params ...Qu resBytes := res.Body() if resBytes == nil && v == nil { return fmt.Errorf("nothing to unmarshal") - } if resBytes == nil { return diff --git a/frontend/main.go b/frontend/main.go index 89902fd..8eb3a00 100644 --- a/frontend/main.go +++ b/frontend/main.go @@ -56,6 +56,7 @@ func main() { ghostClient := &ghost.HTTPClient{ Addr: config.Content.Backend.Addr, Secured: config.Content.Backend.Secured, + Headers: config.Content.Backend.Headers, ContentKey: config.Content.Key, QueryTimeout: time.Second, }