From 1d34eede72c856b5aa9a31ed4036f42aed3111eb Mon Sep 17 00:00:00 2001 From: Abhinav Gupta Date: Fri, 28 Dec 2018 06:42:42 -0800 Subject: [PATCH] DeleteCollection: Make params a struct Rather than accepting a naked string, accept a DeleteCollectionParams struct so that new optional parameters can be added in the future without breaking the API. --- collection.go | 10 ++++++++-- collection_test.go | 6 ++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/collection.go b/collection.go index 8c00a54..9d16e48 100644 --- a/collection.go +++ b/collection.go @@ -29,6 +29,12 @@ type ( Alias string `json:"alias"` Title string `json:"title"` } + + // DeleteCollectionParams holds the parameters required to delete a + // collection. + DeleteCollectionParams struct { + Alias string `json:"-"` + } ) // CreateCollection creates a new collection, returning a user-friendly error @@ -140,8 +146,8 @@ func (c *Client) GetUserCollections() (*[]Collection, error) { // anonymous. // // See https://developers.write.as/docs/api/#delete-a-collection. -func (c *Client) DeleteCollection(alias string) error { - endpoint := "/collections/" + alias +func (c *Client) DeleteCollection(p *DeleteCollectionParams) error { + endpoint := "/collections/" + p.Alias env, err := c.delete(endpoint, nil /* data */) if err != nil { return err diff --git a/collection_test.go b/collection_test.go index 93e82c7..905290e 100644 --- a/collection_test.go +++ b/collection_test.go @@ -71,7 +71,8 @@ func TestCreateAndDeleteCollection(t *testing.T) { t.Fatalf("Unable to create collection %q: %v", alias, err) } - if err := wac.DeleteCollection(c.Alias); err != nil { + p := &DeleteCollectionParams{Alias: c.Alias} + if err := wac.DeleteCollection(p); err != nil { t.Fatalf("Unable to delete collection %q: %v", alias, err) } } @@ -81,7 +82,8 @@ func TestDeleteCollectionUnauthenticated(t *testing.T) { now := time.Now().Unix() alias := fmt.Sprintf("test-collection-does-not-exist-%v", now) - err := wac.DeleteCollection(alias) + p := &DeleteCollectionParams{Alias: alias} + err := wac.DeleteCollection(p) if err == nil { t.Fatalf("Should not be able to delete collection %q unauthenticated.", alias) }