Skip to content

Commit 5e11b22

Browse files
committed
Refactor
1 parent 8518d43 commit 5e11b22

File tree

9 files changed

+48
-127
lines changed

9 files changed

+48
-127
lines changed

src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import createDnsRecord from './api/create_dns_record.ts';
22
import listDnsRecords from './api/list_dns_records.ts';
3-
import {parseRequestURL} from './request/url/mod.ts'
3+
import {parseRequestURL} from './request/url/index.ts'
44

55
export default {
66
/**
File renamed without changes.
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import MissingURLParameterKeyError from '../error/missing_url_parameter_key_error.ts';
2+
import MissingURLParameterValueError from '../error/missing_url_parameter_value_error.ts';
3+
4+
export default function getFromUrl(
5+
urlSearch : string,
6+
key : string
7+
) : string[] {
8+
const urlParams = new URLSearchParams(urlSearch);
9+
10+
if (!urlParams.has(key)) {
11+
throw new MissingURLParameterKeyError(key);
12+
}
13+
14+
const value = urlParams.getAll(key);
15+
if (value.length === 0) {
16+
throw new MissingURLParameterValueError(key);
17+
}
18+
19+
return value;
20+
}

src/request/url/parameter/parse.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import { DnsRecord } from '../../../record/dns_record.ts';
2+
import getFromUrl from './get_from_url.ts';
3+
import { UrlObject } from './url_object.ts';
4+
5+
export default function parse(url : string) : UrlObject {
6+
const urlSearch = new URL(url).search;
7+
8+
const token = getFromUrl(urlSearch, 'token')[0];
9+
const zoneId = getFromUrl(urlSearch, 'zoneId')[0];
10+
const records : DnsRecord[] = [];
11+
getFromUrl(urlSearch, 'records').forEach((record) => {
12+
records.push(JSON.parse(record));
13+
});
14+
15+
return {
16+
token,
17+
zoneId,
18+
records
19+
}
20+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import { DnsRecord } from '../../../record/dns_record.ts';
2+
3+
export interface UrlObject {
4+
token : string;
5+
zoneId : string;
6+
records : DnsRecord[];
7+
}

src/request/url/parser/get_records.ts

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

src/request/url/parser/get_token.ts

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

src/request/url/parser/get_zone_id.ts

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

src/request/url/parser/parse_update_request_url.ts

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

0 commit comments

Comments
 (0)