Skip to content

Commit ff782c8

Browse files
committed
fix: create record
1 parent e07c5b2 commit ff782c8

File tree

4 files changed

+73
-11
lines changed

4 files changed

+73
-11
lines changed

providers/dns/manageengine/internal/client.go

+5-5
Original file line numberDiff line numberDiff line change
@@ -93,22 +93,22 @@ func (c *Client) DeleteZoneRecord(ctx context.Context, zoneID int, recordID int)
9393

9494
// CreateZoneRecord creates a "zone record".
9595
// https://pitstop.manageengine.com/portal/en/kb/articles/manageengine-clouddns-rest-api-documentation#POST_Create_10
96-
func (c *Client) CreateZoneRecord(ctx context.Context, zoneID int, record ZoneRecord) error {
96+
func (c *Client) CreateZoneRecord(ctx context.Context, zoneID int, record ZoneRecord) ([]ZoneRecord, error) {
9797
endpoint := c.baseURL.JoinPath("dns", "domain", strconv.Itoa(zoneID), "records", "SPF_TXT")
9898

9999
req, err := newJSONRequest(ctx, http.MethodPost, endpoint, record)
100100
if err != nil {
101-
return err
101+
return nil, err
102102
}
103103

104-
var results APIResponse
104+
var results []ZoneRecord
105105

106106
err = c.do(req, &results)
107107
if err != nil {
108-
return err
108+
return nil, err
109109
}
110110

111-
return nil
111+
return results, nil
112112
}
113113

114114
func (c *Client) do(req *http.Request, result any) error {

providers/dns/manageengine/internal/client_test.go

+29-2
Original file line numberDiff line numberDiff line change
@@ -209,16 +209,43 @@ func TestClient_CreateZoneRecord(t *testing.T) {
209209

210210
record := ZoneRecord{}
211211

212-
err := client.CreateZoneRecord(context.Background(), 4, record)
212+
zrs, err := client.CreateZoneRecord(context.Background(), 4, record)
213213
require.NoError(t, err)
214+
215+
expected := []ZoneRecord{
216+
{
217+
ZoneID: 948,
218+
SpfTxtDomainID: 4674,
219+
DomainName: "@.example.com",
220+
DomainTTL: 3600,
221+
DomainLocationID: 1,
222+
RecordType: "TXT",
223+
Records: []Record{
224+
{ID: 8065, Value: []string{"MS=ms66512834"}, Disabled: false, DomainID: 4674},
225+
},
226+
},
227+
{
228+
ZoneID: 948,
229+
SpfTxtDomainID: 2972,
230+
DomainName: "example.com",
231+
DomainTTL: 3600,
232+
DomainLocationID: 1,
233+
RecordType: "TXT",
234+
Records: []Record{
235+
{ID: 6361, Value: []string{"v=DKIM1; k=rsa; t=s; p=XXXX"}, Disabled: false, DomainID: 2972},
236+
},
237+
},
238+
}
239+
240+
assert.Equal(t, expected, zrs)
214241
}
215242

216243
func TestClient_CreateZoneRecord_error(t *testing.T) {
217244
client := setupTest(t, "POST /dns/domain/4/records/SPF_TXT", http.StatusUnauthorized, "error.json")
218245

219246
record := ZoneRecord{}
220247

221-
err := client.CreateZoneRecord(context.Background(), 4, record)
248+
_, err := client.CreateZoneRecord(context.Background(), 4, record)
222249
require.Error(t, err)
223250

224251
require.EqualError(t, err, "[status code: 401] Authentication credentials were not provided.")
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,38 @@
1-
{
2-
"message": "Record created successfully"
3-
}
1+
[
2+
{
3+
"spf_txt_domain_id": 4674,
4+
"zone_id": 948,
5+
"domain_name": "@.example.com",
6+
"domain_ttl": 3600,
7+
"record_type": "TXT",
8+
"domain_location_id": 1,
9+
"records": [
10+
{
11+
"record_id": 8065,
12+
"value": [
13+
"MS=ms66512834"
14+
],
15+
"disabled": false,
16+
"domain_id": 4674
17+
}
18+
]
19+
},
20+
{
21+
"spf_txt_domain_id": 2972,
22+
"zone_id": 948,
23+
"domain_name": "example.com",
24+
"domain_ttl": 3600,
25+
"record_type": "TXT",
26+
"domain_location_id": 1,
27+
"records": [
28+
{
29+
"record_id": 6361,
30+
"value": [
31+
"v=DKIM1; k=rsa; t=s; p=XXXX"
32+
],
33+
"disabled": false,
34+
"domain_id": 2972
35+
}
36+
]
37+
}
38+
]

providers/dns/manageengine/manageengine.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error {
109109
}},
110110
}
111111

112-
err = d.client.CreateZoneRecord(ctx, zoneID, record)
112+
_, err = d.client.CreateZoneRecord(ctx, zoneID, record)
113113
if err != nil {
114114
return fmt.Errorf("manageengine: create zone record: %w", err)
115115
}

0 commit comments

Comments
 (0)