From 6beebc9f54feda074d8af788ce72cbc96e1d2964 Mon Sep 17 00:00:00 2001 From: 852Kerfunkle <852Kerfunkle@users.noreply.github.com> Date: Mon, 25 Apr 2022 20:05:48 +0200 Subject: [PATCH 1/4] check hasura for nil --- config/config.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/config/config.go b/config/config.go index 59d192f..e7ddcc9 100644 --- a/config/config.go +++ b/config/config.go @@ -21,7 +21,9 @@ type Config struct { // Substitute - func (c *Config) Substitute() error { - c.Hasura.SetSourceName() + if c.Hasura != nil { + c.Hasura.SetSourceName() + } return nil } From 2648663e52a7044d4a8f863a590cb9baea263cef Mon Sep 17 00:00:00 2001 From: 852Kerfunkle <852Kerfunkle@users.noreply.github.com> Date: Mon, 25 Apr 2022 20:56:34 +0200 Subject: [PATCH 2/4] Make DatabaseUrl interface{} again --- hasura/requests.go | 27 +-------------------------- 1 file changed, 1 insertion(+), 26 deletions(-) diff --git a/hasura/requests.go b/hasura/requests.go index 499cd01..e872a25 100644 --- a/hasura/requests.go +++ b/hasura/requests.go @@ -45,32 +45,7 @@ type Configuration struct { type ConnectionInfo struct { UsePreparedStatements bool `json:"use_prepared_statements"` IsolationLevel string `json:"isolation_level"` - DatabaseUrl DatabaseUrl `json:"database_url,omitempty"` -} - -// DatabaseUrl - -type DatabaseUrl string - -// DatabaseUrlFromEnv - -type DatabaseUrlFromEnv struct { - FromEnv string `json:"from_env"` -} - -// UnmarshalJSON - -func (d *DatabaseUrl) UnmarshalJSON(data []byte) error { - var s string - if err := json.Unmarshal(data, &s); err == nil { - *d = DatabaseUrl(s) - return nil - } - - var fromEnv DatabaseUrlFromEnv - if err := json.Unmarshal(data, &fromEnv); err != nil { - return err - } - - *d = DatabaseUrl(fromEnv.FromEnv) - return nil + DatabaseUrl interface{} `json:"database_url"` } // Source - From ee9bbd91fcd93db2c4a6fc241f77187be19ecec8 Mon Sep 17 00:00:00 2001 From: 852Kerfunkle <852Kerfunkle@users.noreply.github.com> Date: Mon, 25 Apr 2022 21:09:18 +0200 Subject: [PATCH 3/4] add ReadCustomConfigs --- hasura/hasura.go | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/hasura/hasura.go b/hasura/hasura.go index 77c5996..96ede77 100644 --- a/hasura/hasura.go +++ b/hasura/hasura.go @@ -325,3 +325,33 @@ func mergeQueries(a []Query, b []Query) []Query { } return b } + +func ReadCustomConfigs(ctx context.Context, database config.Database, hasuraConfigDir string) ([]Request, error) { + files, err := ioutil.ReadDir(hasuraConfigDir) + if err != nil { + return nil, err + } + + custom_configs := make([]Request, 0) + for i := range files { + if files[i].IsDir() || strings.HasPrefix(files[i].Name(), ".") { + continue + } + + path := fmt.Sprintf("%s/%s", hasuraConfigDir, files[i].Name()) + raw, err := ioutil.ReadFile(path) + if err != nil { + return nil, err + } + + conf := Request{} + + err = json.Unmarshal([]byte(raw), &conf) + if err != nil { + return nil, err + } + custom_configs = append(custom_configs, conf) + } + + return custom_configs, nil +} From cbd9d1ff639c89abd03faf0421285a2f79ad4b18 Mon Sep 17 00:00:00 2001 From: 852Kerfunkle <852Kerfunkle@users.noreply.github.com> Date: Tue, 26 Apr 2022 08:18:25 +0200 Subject: [PATCH 4/4] fix AddSource: DatabaseUrl is string --- hasura/api.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hasura/api.go b/hasura/api.go index e123b33..c3af686 100644 --- a/hasura/api.go +++ b/hasura/api.go @@ -130,7 +130,7 @@ func (api *API) AddSource(ctx context.Context, hasura *config.Hasura, cfg config "name": hasura.Source, "configuration": Configuration{ ConnectionInfo: ConnectionInfo{ - DatabaseUrl: DatabaseUrl(fmt.Sprintf("postgresql://%s:%s@%s:%d/%s", cfg.User, cfg.Password, cfg.Host, cfg.Port, cfg.Database)), + DatabaseUrl: fmt.Sprintf("postgresql://%s:%s@%s:%d/%s", cfg.User, cfg.Password, cfg.Host, cfg.Port, cfg.Database), UsePreparedStatements: true, IsolationLevel: "read-committed", },