Repository: mailgun/mailgun-go
Pull request #384 (2025-02-01 16:17:36)

DE-1416 Switch subaccounts to v5
`SubaccountDetails(ctx context.Context, subaccountId string)` renamed to `GetSubaccount(ctx context.Context, subaccountID string)`


Patch:
diff --git a/mailgun.go b/mailgun.go
index c62a438..fd4cb03 100644
--- a/mailgun.go
+++ b/mailgun.go
@@ -238,7 +238,7 @@ type Mailgun interface {
 
 	ListSubaccounts(opts *ListSubaccountsOptions) *SubaccountsIterator
 	CreateSubaccount(ctx context.Context, subaccountName string) (SubaccountResponse, error)
-	SubaccountDetails(ctx context.Context, subaccountId string) (SubaccountResponse, error)
+	GetSubaccount(ctx context.Context, subaccountId string) (SubaccountResponse, error)
 	EnableSubaccount(ctx context.Context, subaccountId string) (SubaccountResponse, error)
 	DisableSubaccount(ctx context.Context, subaccountId string) (SubaccountResponse, error)
 
diff --git a/mock.go b/mock.go
index 343876e..17c8326 100644
--- a/mock.go
+++ b/mock.go
@@ -134,6 +134,8 @@ func NewMockServer() MockServer {
 		ms.addBouncesRoutes(r)
 		ms.addCredentialsRoutes(r)
 		ms.addTagsRoutes(r)
+	})
+	r.Route("/v5", func(r chi.Router) {
 		ms.addSubaccountRoutes(r)
 	})
 	ms.addValidationRoutes(r)
diff --git a/subaccounts.go b/subaccounts.go
index 316b4cf..6a45dd4 100644
--- a/subaccounts.go
+++ b/subaccounts.go
@@ -211,9 +211,9 @@ func (mg *MailgunImpl) CreateSubaccount(ctx context.Context, subaccountName stri
 	return resp, err
 }
 
-// SubaccountDetails retrieves detailed information about subaccount using subaccountId.
-func (mg *MailgunImpl) SubaccountDetails(ctx context.Context, subaccountId string) (SubaccountResponse, error) {
-	r := newHTTPRequest(generateSubaccountsApiUrl(mg) + "/" + subaccountId)
+// GetSubaccount retrieves detailed information about subaccount using subaccountID.
+func (mg *MailgunImpl) GetSubaccount(ctx context.Context, subaccountID string) (SubaccountResponse, error) {
+	r := newHTTPRequest(generateSubaccountsApiUrl(mg) + "/" + subaccountID)
 	r.setClient(mg.client)
 	r.setBasicAuth(basicAuthUser, mg.APIKey())
 
@@ -245,5 +245,5 @@ func (mg *MailgunImpl) DisableSubaccount(ctx context.Context, subaccountId strin
 }
 
 func generateSubaccountsApiUrl(m Mailgun) string {
-	return fmt.Sprintf("%s/v3/%s/%s", m.APIBase(), accountsEndpoint, subaccountsEndpoint)
+	return fmt.Sprintf("%s/v5/%s/%s", m.APIBase(), accountsEndpoint, subaccountsEndpoint)
 }


Test patch:
diff --git a/subaccounts_test.go b/subaccounts_test.go
index 5a76ba2..a2cb077 100644
--- a/subaccounts_test.go
+++ b/subaccounts_test.go
@@ -37,7 +37,7 @@ func TestListSubaccounts(t *testing.T) {
 	require.True(t, iterator.Total != 0)
 }
 
-func TestSubaccountDetails(t *testing.T) {
+func TestGetSubaccount(t *testing.T) {
 	mg := mailgun.NewMailgun(testKey)
 	err := mg.SetAPIBase(server.URL())
 	require.NoError(t, err)
@@ -51,19 +51,19 @@ func TestSubaccountDetails(t *testing.T) {
 	require.True(t, iterator.Next(context.Background(), &page))
 	require.NoError(t, iterator.Err())
 
-	resp, err := mg.SubaccountDetails(ctx, page[0].Id)
+	resp, err := mg.GetSubaccount(ctx, page[0].Id)
 	require.NoError(t, err)
 	require.NotNil(t, resp)
 }
 
-func TestSubaccountDetailsStatusNotFound(t *testing.T) {
+func TestGetSubaccountStatusNotFound(t *testing.T) {
 	mg := mailgun.NewMailgun(testKey)
 	err := mg.SetAPIBase(server.URL())
 	require.NoError(t, err)
 
 	ctx := context.Background()
 
-	_, err = mg.SubaccountDetails(ctx, "unexisting.id")
+	_, err = mg.GetSubaccount(ctx, "unexisting.id")
 	if err == nil {
 		t.Fatal("Did not expect a subaccount to exist")
 	}