From 9de6304a8de37537b0cc64ff95ec50fce3f88026 Mon Sep 17 00:00:00 2001 From: Jacob White Date: Wed, 10 Aug 2022 22:51:48 -0400 Subject: [PATCH 1/2] Should fix the R2 bucket create endpoint --- .changelog/1035.txt | 3 +++ r2_bucket.go | 12 ++++++++---- r2_bucket_test.go | 8 ++++---- 3 files changed, 15 insertions(+), 8 deletions(-) create mode 100644 .changelog/1035.txt diff --git a/.changelog/1035.txt b/.changelog/1035.txt new file mode 100644 index 00000000000..4de54bececb --- /dev/null +++ b/.changelog/1035.txt @@ -0,0 +1,3 @@ +```release-note:bug +r2: fix create bucket endpoint +``` \ No newline at end of file diff --git a/r2_bucket.go b/r2_bucket.go index 63cb64a6bce..d946b633d8e 100644 --- a/r2_bucket.go +++ b/r2_bucket.go @@ -11,20 +11,24 @@ var ( ErrMissingBucketName = errors.New("require bucket name missing") ) +type CreateR2BucketParameters struct { + Name string `json:"name,omitempty"` +} + // CreateR2Bucket Creates a new R2 bucket. // // API reference: https://api.cloudflare.com/#r2-bucket-create-bucket -func (api *API) CreateR2Bucket(ctx context.Context, rc *ResourceContainer, bucketName string) error { +func (api *API) CreateR2Bucket(ctx context.Context, rc *ResourceContainer, params CreateR2BucketParameters) error { if rc.Identifier == "" { return ErrMissingAccountID } - if bucketName == "" { + if params.Name == "" { return ErrMissingBucketName } - uri := fmt.Sprintf("/accounts/%s/r2/buckets/%s", rc.Identifier, bucketName) - _, err := api.makeRequestContext(ctx, http.MethodPost, uri, nil) + uri := fmt.Sprintf("/accounts/%s/r2/buckets", rc.Identifier) + _, err := api.makeRequestContext(ctx, http.MethodPost, uri, params) return err } diff --git a/r2_bucket_test.go b/r2_bucket_test.go index 227f36e9c3c..51d3c67ff5b 100644 --- a/r2_bucket_test.go +++ b/r2_bucket_test.go @@ -15,7 +15,7 @@ func TestR2_CreateBucket(t *testing.T) { setup() defer teardown() - mux.HandleFunc(fmt.Sprintf("/accounts/%s/r2/buckets/%s", testAccountID, testBucketName), func(w http.ResponseWriter, r *http.Request) { + mux.HandleFunc(fmt.Sprintf("/accounts/%s/r2/buckets", testAccountID), func(w http.ResponseWriter, r *http.Request) { assert.Equal(t, http.MethodPost, r.Method, "Expected method 'POST', got %s", r.Method) w.Header().Set("content-type", "application/json") fmt.Fprintf(w, `{ @@ -26,17 +26,17 @@ func TestR2_CreateBucket(t *testing.T) { }`) }) - err := client.CreateR2Bucket(context.Background(), AccountIdentifier(""), "") + err := client.CreateR2Bucket(context.Background(), AccountIdentifier(""), CreateR2BucketParameters{}) if assert.Error(t, err) { assert.Equal(t, ErrMissingAccountID, err) } - err = client.CreateR2Bucket(context.Background(), AccountIdentifier(testAccountID), "") + err = client.CreateR2Bucket(context.Background(), AccountIdentifier(testAccountID), CreateR2BucketParameters{}) if assert.Error(t, err) { assert.Equal(t, ErrMissingBucketName, err) } - err = client.CreateR2Bucket(context.Background(), AccountIdentifier(testAccountID), "example-bucket") + err = client.CreateR2Bucket(context.Background(), AccountIdentifier(testAccountID), CreateR2BucketParameters{testBucketName}) assert.NoError(t, err) } From 23bde0b0a347376eb18eb4b5dfdda7d9a2788ba4 Mon Sep 17 00:00:00 2001 From: Jacob Bednarz Date: Mon, 22 Aug 2022 10:19:57 +1000 Subject: [PATCH 2/2] fix `CreateR2BucketParameters` usage --- r2_bucket_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/r2_bucket_test.go b/r2_bucket_test.go index 51d3c67ff5b..92926d5e9ff 100644 --- a/r2_bucket_test.go +++ b/r2_bucket_test.go @@ -31,12 +31,12 @@ func TestR2_CreateBucket(t *testing.T) { assert.Equal(t, ErrMissingAccountID, err) } - err = client.CreateR2Bucket(context.Background(), AccountIdentifier(testAccountID), CreateR2BucketParameters{}) + err = client.CreateR2Bucket(context.Background(), AccountIdentifier(testAccountID), CreateR2BucketParameters{Name: ""}) if assert.Error(t, err) { assert.Equal(t, ErrMissingBucketName, err) } - err = client.CreateR2Bucket(context.Background(), AccountIdentifier(testAccountID), CreateR2BucketParameters{testBucketName}) + err = client.CreateR2Bucket(context.Background(), AccountIdentifier(testAccountID), CreateR2BucketParameters{Name: testBucketName}) assert.NoError(t, err) }