1
1
package main
2
2
3
3
import (
4
+ "bufio"
5
+ "fmt"
4
6
"log/slog"
5
7
"net/http"
6
8
"net/http/cookiejar"
7
9
"os"
10
+ "strings"
8
11
9
12
"github.com/dbeaver/cloudbeaver-graphql-examples/go/api"
10
- "github.com/dbeaver/cloudbeaver-graphql-examples/go/env"
11
13
"github.com/dbeaver/cloudbeaver-graphql-examples/go/graphql"
12
14
"github.com/dbeaver/cloudbeaver-graphql-examples/go/lib"
13
15
)
@@ -31,11 +33,10 @@ func main0() error {
31
33
if err != nil {
32
34
return lib .WrapError ("error while reading variables" , err )
33
35
}
34
- apiClient := initClient (env .GraphqlEndpoint () )
36
+ apiClient := initClient (env .serverURL + "/" + env . serviceURI + "/gql" )
35
37
36
38
// Auth
37
- err = apiClient .Auth (env .APIToken )
38
- env .PurgeToken ()
39
+ err = apiClient .Auth (env .apiToken )
39
40
if err != nil {
40
41
return err
41
42
}
@@ -67,14 +68,45 @@ func main0() error {
67
68
return nil
68
69
}
69
70
70
- func readEnv () (env.Env , error ) {
71
+ type env struct {
72
+ apiToken string
73
+ serverURL string
74
+ serviceURI string
75
+ }
76
+
77
+ func readEnv () (env , error ) {
71
78
var envFilePath string
72
79
if len (os .Args ) > 1 {
73
80
envFilePath = os .Args [1 ]
74
81
} else {
75
82
envFilePath = "../.env"
76
83
}
77
- return env .Read (envFilePath )
84
+ env := env {}
85
+ file , err := os .Open (envFilePath )
86
+ if err != nil {
87
+ return env , lib .WrapError ("error while opening the env file" , err )
88
+ }
89
+ defer lib .CloseOrWarn (file )
90
+ scanner := bufio .NewScanner (file )
91
+ for scanner .Scan () {
92
+ before , after , found := strings .Cut (scanner .Text (), "=" )
93
+ if ! found {
94
+ continue
95
+ }
96
+ before = strings .TrimSpace (before )
97
+ after = strings .TrimSpace (after )
98
+ switch before {
99
+ case "api_token" :
100
+ env .apiToken = after
101
+ case "server_url" :
102
+ env .serverURL = after
103
+ case "service_uri" :
104
+ env .serviceURI = after
105
+ default :
106
+ slog .Warn (fmt .Sprintf ("unknown env variable: %s" , before ))
107
+ }
108
+ }
109
+ return env , err
78
110
}
79
111
80
112
func initClient (endpoint string ) api.Client {
0 commit comments