Skip to content

Commit 53b657b

Browse files
committed
Refactor
1 parent 5e11b22 commit 53b657b

File tree

13 files changed

+80
-46
lines changed

13 files changed

+80
-46
lines changed

src/api/index.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import createDnsRecord from './create_dns_record.ts';
2+
import listDnsRecords from './list_dns_records.ts'
3+
import updateDnsRecord from './update_dns_record.ts'
4+
5+
const api = {
6+
createDnsRecord,
7+
listDnsRecords,
8+
updateDnsRecord
9+
}
10+
11+
export {
12+
createDnsRecord,
13+
listDnsRecords,
14+
updateDnsRecord
15+
}
16+
17+
export default api;

src/api/list_dns_records.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import ApiRequestError from '../error/api_request_error.ts';
22
import FetchRequestError from '../error/fetch_request_error.ts';
3-
import { DnsRecord } from '../record/dns_record.ts';
3+
import { DnsRecordList } from '../record/dns_record_list.ts';
44
import supportedDnsRecordTypes from '../record/dns_record_type.ts';
55
import { ApiRequestOptions } from './api_request_options.ts';
66

@@ -10,7 +10,7 @@ import { ApiRequestOptions } from './api_request_options.ts';
1010
* @param options Options for the API fetch
1111
* @returns List of all DNS records found.
1212
*/
13-
export default function listDnsRecordsFromApi(options : ApiRequestOptions) : Promise<DnsRecord[]> {
13+
export default function listDnsRecordsFromApi(options : ApiRequestOptions) : Promise<DnsRecordList[]> {
1414
return fetch(
1515
`${options.apiEndpoint}zones/${options.zoneId}/dns_records?type=${supportedDnsRecordTypes.join(',')}`,
1616
{

src/index.ts

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
import createDnsRecord from './api/create_dns_record.ts';
2-
import listDnsRecords from './api/list_dns_records.ts';
3-
import {parseRequestURL} from './request/url/index.ts'
1+
import requestUrl from './request_url/index.ts';
2+
import api from './api/index.ts';
43

54
export default {
65
/**
@@ -9,16 +8,24 @@ export default {
98
* @param request Incoming http request
109
*/
1110
async fetch(request : Request) : Promise<void> {
12-
const requestUrl = new URL(request.url)
13-
const {token, zoneId, records} = parseRequestURL(requestUrl)
11+
const {
12+
token,
13+
zoneId,
14+
records: requestedRecords
15+
} = requestUrl.parse(request.url);
1416

15-
const existingRecords = await listDnsRecords({token, zoneId})
17+
const existingRecords = await api.listDnsRecords({token, zoneId})
1618

17-
existingRecords.forEach((record) => {
18-
19-
})
20-
records.forEach((record) => {
21-
createDnsRecord(record, {token, zoneId})
19+
requestedRecords.forEach((requestedRecord) => {
20+
existingRecords.filter(
21+
(existingRecord) => existingRecord.name === requestedRecord.name
22+
).forEach((selectedRecord) => api.updateDnsRecord(
23+
selectedRecord.id,
24+
requestedRecord,
25+
{token, zoneId}
26+
))
27+
28+
api.createDnsRecord(requestedRecord, {token, zoneId})
2229
})
2330
}
2431
}

src/record/dns_record_list.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import { DnsRecord } from './dns_record.ts';
2+
3+
export interface DnsRecordList extends DnsRecord {
4+
5+
/** Id of the record */
6+
id : string;
7+
}

src/request/url/index.ts

Lines changed: 0 additions & 10 deletions
This file was deleted.

src/request/url/interface/update_request_url_parameters.ts

Lines changed: 0 additions & 13 deletions
This file was deleted.

src/request/url/parameter/url_object.ts

Lines changed: 0 additions & 7 deletions
This file was deleted.

src/request/url/error/missing_url_parameter_key_error.ts renamed to src/request_url/error/missing_url_parameter_key_error.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import CustomError from '../../../error/custom_error.ts'
1+
import CustomError from '../../error/custom_error.ts'
22

33
/**
44
* This class represents a missing URL parameters error. This error is thrown if there is a missing URL parameter.

src/request/url/error/missing_url_parameter_value_error.ts renamed to src/request_url/error/missing_url_parameter_value_error.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import CustomError from '../../../error/custom_error.ts'
1+
import CustomError from '../../error/custom_error.ts'
22

33
/**
44
* This class represents a missing URL parameters error. This error is thrown if there is a missing URL parameter.

src/request_url/index.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import parse from './parameter/parse.ts';
2+
3+
const requestUrl = {
4+
parse
5+
};
6+
7+
export { parse }
8+
9+
export default requestUrl;

0 commit comments

Comments
 (0)