Skip to content

Commit

Permalink
Resolved review comments
Browse files Browse the repository at this point in the history
  • Loading branch information
imaskm committed Nov 20, 2024
1 parent 0d325bc commit 0039e24
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 24 deletions.
29 changes: 11 additions & 18 deletions reserved_ipv6.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ const reservedIPV6sBasePath = "v2/reserved_ipv6"
type ReservedIPV6sService interface {
List(context.Context, *ListOptions) ([]ReservedIPV6, *Response, error)
Get(context.Context, string) (*ReservedIPV6, *Response, error)
Reserve(context.Context, *ReservedIPV6ReserveRequest) (*ReservedIPV6, *Response, error)
Release(context.Context, string) (*Response, error)
Create(context.Context, *ReservedIPV6CreateRequest) (*ReservedIPV6, *Response, error)
Delete(context.Context, string) (*Response, error)
}

// ReservedIPV6sServiceOp handles communication with the reserved IPs related methods of the
Expand All @@ -25,7 +25,7 @@ type ReservedIPV6sServiceOp struct {
client *Client
}

var _ ReservedIPV6sService = &ReservedIPV6sServiceOp{}
var _ ReservedIPV6sService = (*ReservedIPV6sServiceOp)(nil)

// ReservedIPV6 represents a Digital Ocean reserved IP.
type ReservedIPV6 struct {
Expand All @@ -50,13 +50,8 @@ type reservedIPV6sRoot struct {
Meta *Meta `json:"meta"`
}

type reservedIPV6Root struct {
ReservedIP *ReservedIPV6 `json:"reserved_ip"`
Links *Links `json:"links,omitempty"`
}

// ReservedIPV6ReserveRequest represents a request to reserve a reserved IP.
type ReservedIPV6ReserveRequest struct {
// ReservedIPV6CreateRequest represents a request to reserve a reserved IP.
type ReservedIPV6CreateRequest struct {
Region string `json:"region_slug,omitempty"`
}

Expand All @@ -76,7 +71,7 @@ func (r *ReservedIPV6sServiceOp) List(ctx context.Context, opt *ListOptions) ([]
root := new(reservedIPV6sRoot)
resp, err := r.client.Do(ctx, req, root)
if err != nil {
return nil, resp, err
return nil, nil, err
}
if l := root.Links; l != nil {
resp.Links = l
Expand Down Expand Up @@ -106,8 +101,8 @@ func (r *ReservedIPV6sServiceOp) Get(ctx context.Context, ip string) (*ReservedI
return root, resp, err
}

// Reserve a new IPv6
func (r *ReservedIPV6sServiceOp) Reserve(ctx context.Context, reserveRequest *ReservedIPV6ReserveRequest) (*ReservedIPV6, *Response, error) {
// Create a new IPv6
func (r *ReservedIPV6sServiceOp) Create(ctx context.Context, reserveRequest *ReservedIPV6CreateRequest) (*ReservedIPV6, *Response, error) {
path := reservedIPV6sBasePath

req, err := r.client.NewRequest(ctx, http.MethodPost, path, reserveRequest)
Expand All @@ -124,16 +119,14 @@ func (r *ReservedIPV6sServiceOp) Reserve(ctx context.Context, reserveRequest *Re
return root, resp, err
}

// Release a reserved IPv6.
func (r *ReservedIPV6sServiceOp) Release(ctx context.Context, ip string) (*Response, error) {
// Delete a reserved IPv6.
func (r *ReservedIPV6sServiceOp) Delete(ctx context.Context, ip string) (*Response, error) {
path := fmt.Sprintf("%s/%s", reservedIPV6sBasePath, ip)

req, err := r.client.NewRequest(ctx, http.MethodDelete, path, nil)
if err != nil {
return nil, err
}

resp, err := r.client.Do(ctx, req, nil)

return resp, err
return r.client.Do(ctx, req, nil)
}
12 changes: 6 additions & 6 deletions reserved_ipv6_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,17 @@ import (
"time"
)

func TestReservedIPV6s_Reserve(t *testing.T) {
func TestReservedIPV6s_Create(t *testing.T) {
setup()
defer teardown()

reserveRequest := &ReservedIPV6ReserveRequest{
reserveRequest := &ReservedIPV6CreateRequest{
Region: "nyc3",
}
nowTime := time.Now()

mux.HandleFunc("/v2/reserved_ipv6", func(w http.ResponseWriter, r *http.Request) {
v := new(ReservedIPV6ReserveRequest)
v := new(ReservedIPV6CreateRequest)
err := json.NewDecoder(r.Body).Decode(v)
if err != nil {
t.Fatal(err)
Expand All @@ -33,7 +33,7 @@ func TestReservedIPV6s_Reserve(t *testing.T) {
fmt.Fprint(w, `{"ip":"2604:a880:800:14::42c3:d000","region_slug":"nyc3","reserved_at":"`+nowTime.Format(time.RFC3339Nano)+`"}`)
})

reservedIP, _, err := client.ReservedIPV6s.Reserve(ctx, reserveRequest)
reservedIP, _, err := client.ReservedIPV6s.Create(ctx, reserveRequest)
if err != nil {
t.Errorf("ReservedIPV6s.Create returned error: %v", err)
}
Expand Down Expand Up @@ -128,15 +128,15 @@ func TestReservedIPV6s_Get(t *testing.T) {
}
}

func TestReservedIPV6s_Release(t *testing.T) {
func TestReservedIPV6s_Delete(t *testing.T) {
setup()
defer teardown()

mux.HandleFunc("/v2/reserved_ipv6/2604:a880:800:14::42c3:d001", func(w http.ResponseWriter, r *http.Request) {
testMethod(t, r, http.MethodDelete)
})

_, err := client.ReservedIPV6s.Release(ctx, "2604:a880:800:14::42c3:d001")
_, err := client.ReservedIPV6s.Delete(ctx, "2604:a880:800:14::42c3:d001")
if err != nil {
t.Errorf("ReservedIPV6s.Release returned error: %v", err)
}
Expand Down

0 comments on commit 0039e24

Please sign in to comment.