Browse Source

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.
pull/13/head
Abhinav Gupta 1 year ago
parent
commit
1d34eede72
2 changed files with 12 additions and 4 deletions
  1. +8
    -2
      collection.go
  2. +4
    -2
      collection_test.go

+ 8
- 2
collection.go View File

@@ -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


+ 4
- 2
collection_test.go View File

@@ -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)
}


Loading…
Cancel
Save