From 15651bcacfcb3926c2b72a052a3792b3e355e2d1 Mon Sep 17 00:00:00 2001 From: Andrei Ozerov Date: Mon, 16 Apr 2018 08:51:23 +0300 Subject: [PATCH] Resell V2 API - add subnets Delete method Add method for deleting a single subnet. Add test and doc example. --- selvpcclient/resell/v2/subnets/doc.go | 7 +++++++ selvpcclient/resell/v2/subnets/requests.go | 13 +++++++++++++ .../resell/v2/subnets/testing/request_test.go | 19 +++++++++++++++++++ 3 files changed, 39 insertions(+) diff --git a/selvpcclient/resell/v2/subnets/doc.go b/selvpcclient/resell/v2/subnets/doc.go index 0dae5a8..329f6c2 100644 --- a/selvpcclient/resell/v2/subnets/doc.go +++ b/selvpcclient/resell/v2/subnets/doc.go @@ -39,5 +39,12 @@ Example of creating subnets for _, newSubnet := range newSubnets { fmt.Printf("%v\n", newSubnet) } + +Example of deleting a single subnet + + _, err = subnets.Delete(ctx, resellClient, subnetID) + if err != nil { + log.Fatal(err) + } */ package subnets diff --git a/selvpcclient/resell/v2/subnets/requests.go b/selvpcclient/resell/v2/subnets/requests.go index 4ec5e4b..bf56a5a 100644 --- a/selvpcclient/resell/v2/subnets/requests.go +++ b/selvpcclient/resell/v2/subnets/requests.go @@ -85,3 +85,16 @@ func Create(ctx context.Context, client *selvpcclient.ServiceClient, projectID s return result.Subnets, responseResult, nil } + +// Delete deletes a single subnet by its id. +func Delete(ctx context.Context, client *selvpcclient.ServiceClient, id string) (*selvpcclient.ResponseResult, error) { + url := strings.Join([]string{client.Endpoint, resourceURL, id}, "/") + responseResult, err := client.DoRequest(ctx, "DELETE", url, nil) + if err != nil { + return nil, err + } + if responseResult.Err != nil { + err = responseResult.Err + } + return responseResult, err +} diff --git a/selvpcclient/resell/v2/subnets/testing/request_test.go b/selvpcclient/resell/v2/subnets/testing/request_test.go index 20a3669..22f3ffd 100644 --- a/selvpcclient/resell/v2/subnets/testing/request_test.go +++ b/selvpcclient/resell/v2/subnets/testing/request_test.go @@ -143,3 +143,22 @@ func TestCreateSubnets(t *testing.T) { t.Fatalf("expected %#v, but got %#v", actualResponse, expectedResponse) } } + +func TestDeleteSubnet(t *testing.T) { + testEnv := testutils.SetupTestEnv() + defer testEnv.TearDownTestEnv() + testEnv.NewTestResellV2Client() + testEnv.Mux.HandleFunc("/resell/v2/subnets/112233", func(w http.ResponseWriter, r *http.Request) { + w.Header().Add("Content-Type", "application/json") + + if r.Method != http.MethodDelete { + t.Fatalf("expected %s method but got %s", http.MethodDelete, r.Method) + } + }) + + ctx := context.Background() + _, err := subnets.Delete(ctx, testEnv.Client, "112233") + if err != nil { + t.Fatal(err) + } +}