Made the url used to check the token a config option
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Dreaded_X 2022-11-22 03:33:00 +01:00
parent 501775654f
commit 6f5b3d13f7
Signed by: Dreaded_X
GPG Key ID: 76BDEC4E165D8AD9
5 changed files with 14 additions and 9 deletions

View File

@ -43,6 +43,7 @@ type config struct {
Google struct {
Username string `yaml:"username" envconfig:"GOOGLE_USERNAME"`
OAuthUrl string `yaml:"oauth_url" envconfig:"GOOGLE_OAUTH_URL"`
Credentials Credentials `yaml:"credentials" envconfig:"GOOGLE_CREDENTIALS"`
} `yaml:"google"`
}

View File

@ -19,7 +19,7 @@ type Home struct {
}
// Auto populate and update the device list
func New(username string, credentials config.Credentials) *Home {
func New(username string, credentials config.Credentials, oauthUrl string) *Home {
home := &Home{Username: username, Devices: make(map[device.InternalName]device.Basic)}
homegraphService, err := homegraph.NewService(context.Background(), option.WithCredentialsJSON(credentials))
@ -27,7 +27,7 @@ func New(username string, credentials config.Credentials) *Home {
panic(err)
}
home.Service = google.NewService(home, homegraphService)
home.Service = google.NewService(home, homegraphService, oauthUrl)
return home
}

View File

@ -3,6 +3,7 @@ package google
import (
"automation/device"
"encoding/json"
"fmt"
"io"
"log"
"net/http"
@ -66,7 +67,7 @@ func (s *Service) getUser(authorization string) (string, int) {
return cached.Value(), http.StatusOK
}
req, err := http.NewRequest("GET", "https://login.huizinga.dev/api/oidc/userinfo", nil)
req, err := http.NewRequest("GET", fmt.Sprintf("%s/userinfo", s.oauthUrl), nil)
if err != nil {
log.Println("Failed to make request to to login server")
return "", http.StatusInternalServerError

View File

@ -32,13 +32,16 @@ type Provider interface {
type Service struct {
provider Provider
deviceService *homegraph.DevicesService
oauthUrl string
cache *ttlcache.Cache[string, string]
}
func NewService(provider Provider, service *homegraph.Service) *Service {
func NewService(provider Provider, service *homegraph.Service, oauthUrl string) *Service {
s := Service{
provider: provider,
deviceService: homegraph.NewDevicesService(service),
oauthUrl: oauthUrl,
cache: ttlcache.New(
ttlcache.WithTTL[string, string](30 * time.Minute),
),

View File

@ -29,7 +29,7 @@ func main() {
notify := ntfy.New(cfg.Ntfy.Topic)
hue := hue.New(cfg.Hue.IP, cfg.Hue.Token)
home := home.New(cfg.Google.Username, cfg.Google.Credentials)
home := home.New(cfg.Google.Username, cfg.Google.Credentials, cfg.Google.OAuthUrl)
r := mux.NewRouter()
r.HandleFunc("/assistant", home.Service.FullfillmentHandler)