From 789af541210d2812f7ff0daa7e00b6df681554dc Mon Sep 17 00:00:00 2001 From: Victor Lacasse-Beaudoin Date: Tue, 15 Aug 2023 15:50:40 -0400 Subject: [PATCH] [BREAKING] Change Config.Server.Documents type []string -> map[string]string Add DisplayName object to use in documentation-html render --- cmd/server.go | 21 ++++++++++++++------- config/config.go | 14 +++++++------- examples/config/agecem-org.yaml | 6 ++++-- 3 files changed, 25 insertions(+), 16 deletions(-) diff --git a/cmd/server.go b/cmd/server.go index 5173374..499e7ba 100644 --- a/cmd/server.go +++ b/cmd/server.go @@ -96,7 +96,12 @@ func init() { viper.BindPFlag("server.documents.use_ssl", serverCmd.Flags().Lookup("server-documents-use-ssl")) // server.documents.buckets - --server-documents-buckets - serverCmd.Flags().StringSlice("server-documents-buckets", []string{"proces-verbaux", "politiques-et-reglements"}, "Buckets that are allowed to be accessed by the API (config: server.documents.buckets)") + serverCmd.Flags().StringToString("server-documents-buckets", map[string]string{ + "proces-verbaux": "Procès-verbaux", + "politiques": "Politiques", + "reglements": "Règlements", + "formulaires": "Formulaires", + }, "Buckets that are allowed to be accessed by the API (config: server.documents.buckets)") viper.BindPFlag("server.documents.buckets", serverCmd.Flags().Lookup("server-documents-buckets")) // server.api.auth - --server-api-auth @@ -293,7 +298,7 @@ func handleDocumentation(c echo.Context) error { return c.Render(http.StatusInternalServerError, "documentation-html", nil) } - var buckets []string + var buckets map[string]string err = json.Unmarshal(result, &buckets) if err != nil { @@ -301,13 +306,14 @@ func handleDocumentation(c echo.Context) error { } type Bucket struct { - Name string - Documents []string + Name string + DisplayName string + Documents []string } var data []Bucket - for _, bucket := range buckets { + for bucket, displayName := range buckets { content, err := client.Call(http.MethodGet, fmt.Sprintf("/v1/bucket/%s", bucket)) if err != nil { return c.Render(http.StatusInternalServerError, "documentation-html", nil) @@ -339,8 +345,9 @@ func handleDocumentation(c echo.Context) error { */ data = append(data, Bucket{ - Name: bucket, - Documents: documents, + Name: bucket, + DisplayName: displayName, + Documents: documents, }) } diff --git a/config/config.go b/config/config.go index d2d637a..26f1a95 100644 --- a/config/config.go +++ b/config/config.go @@ -28,13 +28,13 @@ type Config struct { Protocol string `mapstructure:"protocol"` } `mapstructure:"api"` Documents struct { - AccessKeyId string `mapstructure:"access_key_id"` - Buckets []string `mapstructure:"buckets"` - Endpoint string `mapstructure:"endpoint"` - SecretAccessKey string `mapstructure:"secret_access_key"` - UseSSL bool `mapstructure:"use_ssl"` - KeyId string `mapstructure:"keyid"` - KeyValue string `mapstructure:"keyvalue"` + AccessKeyId string `mapstructure:"access_key_id"` + Buckets map[string]string `mapstructure:"buckets"` + Endpoint string `mapstructure:"endpoint"` + SecretAccessKey string `mapstructure:"secret_access_key"` + UseSSL bool `mapstructure:"use_ssl"` + KeyId string `mapstructure:"keyid"` + KeyValue string `mapstructure:"keyvalue"` } `mapstructure:"documents"` Port int `mapstructure:"port"` } `mapstructure:"server"` diff --git a/examples/config/agecem-org.yaml b/examples/config/agecem-org.yaml index 55a2535..5d77cf5 100644 --- a/examples/config/agecem-org.yaml +++ b/examples/config/agecem-org.yaml @@ -35,8 +35,10 @@ server: # # Also used to specify which buckets are to be created on receiving a POST request on /v1/seed buckets: - - 'proces-verbaux' - - 'politiques-et-reglements' + 'proces-verbaux': 'Procès-verbaux' + 'politiques': 'Politiques' + 'reglements': 'Règlements' + 'formulaires': 'Formulaires' api: # Enable or disable key auth on /v1 routes