aboutsummaryrefslogtreecommitdiff
path: root/garage.go
diff options
context:
space:
mode:
Diffstat (limited to 'garage.go')
-rw-r--r--garage.go30
1 files changed, 30 insertions, 0 deletions
diff --git a/garage.go b/garage.go
index 40848cc..4e23e8f 100644
--- a/garage.go
+++ b/garage.go
@@ -2,10 +2,40 @@ package main
import (
"net/http"
+ "context"
+ "fmt"
+ garage "git.deuxfleurs.fr/garage-sdk/garage-admin-sdk-golang"
)
+func gadmin() (*garage.APIClient, context.Context) {
+ // Set Host and other parameters
+ configuration := garage.NewConfiguration()
+ configuration.Host = config.S3AdminEndpoint
+
+ // We can now generate a client
+ client := garage.NewAPIClient(configuration)
+
+ // Authentication is handled through the context pattern
+ ctx := context.WithValue(context.Background(), garage.ContextAccessToken, config.S3AdminToken)
+ return client, ctx
+}
+
+
+func createKey(name string) error {
+ client, ctx := gadmin()
+
+ kr := garage.AddKeyRequest{Name: &name}
+ resp, _, err := client.KeyApi.AddKey(ctx).AddKeyRequest(kr).Execute()
+ if err != nil {
+ fmt.Printf("%+v\n", err)
+ return err
+ }
+ fmt.Printf("%+v\n", resp)
+ return nil
+}
func handleGarageKey(w http.ResponseWriter, r *http.Request) {
+ createKey("toto")
tKey := getTemplate("garage_key.html")
tKey.Execute(w, nil)
}