diff --git a/main.go b/main.go index 890b9c0..58f973e 100644 --- a/main.go +++ b/main.go @@ -46,6 +46,8 @@ type AppConfig struct { DBPath string `yaml:"db_path"` AppScopes []string `yaml:"app_scopes"` Website string `yaml:"website"` + Interface string `yaml:"network_interface"` + Port string `yaml:"network_port"` } type AuthToken struct { @@ -291,6 +293,14 @@ func (c *AppConfig) FromFile(filePath string) error { c.AppScheme = "https" } + if c.Port == "" { + c.Port = "9569" + } + + if c.Interface == "" { + c.Interface = "127.0.0.1" + } + return nil } @@ -313,6 +323,41 @@ func (a *App) InitializeDB() error { return nil } +func (a *App) GetCredentialsFromInstanceHost(host string) (*Instance, error) { + postData := &map[string]string{ + "client_name": a.Config.AppName, + "redirect_uris": a.Config.AppScheme + "://" + a.Config.AppHost + "/confirm", + "scopes": strings.Join(a.Config.AppScopes, " "), + "website": a.Config.Website, + } + + data, err := json.Marshal(postData) + + if err != nil { + return nil, err + } + + response, err := http.Post("https://"+host+"/api/v1/apps", "application/json", bytes.NewBuffer(data)) + + if err != nil { + return nil, err + } + + body, err := ioutil.ReadAll(response.Body) + + if err != nil { + return nil, err + } + + instance := &Instance{ + Host: host, + } + + err = json.Unmarshal(body, instance) + + return instance, err +} + func main() { arguments := os.Args[1:] @@ -359,40 +404,6 @@ func main() { e.GET("/ws", a.AuthRequestWebSocket) e.GET("/auth/:request_id", a.AuthRequestRedirect) e.GET("/confirm", a.AuthRequestConfirm) - e.Logger.Fatal(e.Start(":1323")) -} - -func (a *App) GetCredentialsFromInstanceHost(host string) (*Instance, error) { - postData := &map[string]string{ - "client_name": a.Config.AppName, - "redirect_uris": a.Config.AppScheme + "://" + a.Config.AppHost + "/confirm", - "scopes": strings.Join(a.Config.AppScopes, " "), - "website": a.Config.Website, - } - - data, err := json.Marshal(postData) - - if err != nil { - return nil, err - } - - response, err := http.Post("https://"+host+"/api/v1/apps", "application/json", bytes.NewBuffer(data)) - - if err != nil { - return nil, err - } - - body, err := ioutil.ReadAll(response.Body) - - if err != nil { - return nil, err - } - instance := &Instance{ - Host: host, - } - - err = json.Unmarshal(body, instance) - - return instance, err + e.Logger.Fatal(e.Start(a.Config.Interface + ":" + a.Config.Port)) }