Support additional headers for the ghost http client

develop
Nikita Tokarchuk 3 years ago
parent 760bcf6c94
commit 0b003c200a
Signed by: mainnika
GPG Key ID: A595FB7E3E56911C
  1. 7
      frontend/config/config.go
  2. 5
      frontend/ghost/client.go
  3. 1
      frontend/main.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")

@ -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

@ -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,
}

Loading…
Cancel
Save