mirror of
https://github.com/appwrite/console.git
synced 2026-06-06 19:27:48 +00:00
fix: domain creation logic
This commit is contained in:
@@ -1,4 +1,94 @@
|
||||
import type { DnsRecord } from '$lib/sdk/domains';
|
||||
import { sdk } from '$lib/stores/sdk';
|
||||
|
||||
export async function createRecord(record: Partial<DnsRecord>, domainId: string) {
|
||||
switch (record.type) {
|
||||
case 'A':
|
||||
return await sdk.forConsole.domains.createRecordA(
|
||||
domainId,
|
||||
record.name,
|
||||
record.value,
|
||||
record.ttl,
|
||||
record?.comment || undefined
|
||||
);
|
||||
case 'AAAA':
|
||||
return await sdk.forConsole.domains.createRecordAAAA(
|
||||
domainId,
|
||||
record.name,
|
||||
record.value,
|
||||
record.ttl,
|
||||
record?.comment || undefined
|
||||
);
|
||||
case 'CNAME':
|
||||
return await sdk.forConsole.domains.createRecordCNAME(
|
||||
domainId,
|
||||
record.name,
|
||||
record.value,
|
||||
record.ttl,
|
||||
record?.comment || undefined
|
||||
);
|
||||
case 'MX':
|
||||
return await sdk.forConsole.domains.createRecordMX(
|
||||
domainId,
|
||||
record.name,
|
||||
record.value,
|
||||
record.priority || 10,
|
||||
record.ttl,
|
||||
record?.comment || undefined
|
||||
);
|
||||
case 'TXT':
|
||||
return await sdk.forConsole.domains.createRecordTXT(
|
||||
domainId,
|
||||
record.name,
|
||||
record.value,
|
||||
record.ttl,
|
||||
record?.comment || undefined
|
||||
);
|
||||
case 'NS':
|
||||
return await sdk.forConsole.domains.createRecordNS(
|
||||
domainId,
|
||||
record.name,
|
||||
record.value,
|
||||
record.ttl,
|
||||
record?.comment || undefined
|
||||
);
|
||||
case 'SRV':
|
||||
return await sdk.forConsole.domains.createRecordSRV(
|
||||
domainId,
|
||||
record.name,
|
||||
record.value,
|
||||
record.ttl,
|
||||
record.priority,
|
||||
record.weight,
|
||||
record.port,
|
||||
record?.comment || undefined
|
||||
);
|
||||
case 'CAA':
|
||||
return await sdk.forConsole.domains.createRecordCAA(
|
||||
domainId,
|
||||
record.name,
|
||||
record.value,
|
||||
record.ttl,
|
||||
record?.comment || undefined
|
||||
);
|
||||
case 'HTTPS':
|
||||
return await sdk.forConsole.domains.createRecordHTTPS(
|
||||
domainId,
|
||||
record.name,
|
||||
record.value,
|
||||
record.ttl,
|
||||
record?.comment || undefined
|
||||
);
|
||||
case 'ALIAS':
|
||||
return await sdk.forConsole.domains.createRecordAlias(
|
||||
domainId,
|
||||
record.name,
|
||||
record.value,
|
||||
record.ttl,
|
||||
record?.comment || undefined
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export type ParsedRecords = {
|
||||
A: Partial<DnsRecord>[];
|
||||
|
||||
@@ -20,3 +20,15 @@ export const statusCodeOptions = [
|
||||
value: 308
|
||||
}
|
||||
];
|
||||
|
||||
export type RecordType =
|
||||
| 'A'
|
||||
| 'AAAA'
|
||||
| 'CNAME'
|
||||
| 'MX'
|
||||
| 'TXT'
|
||||
| 'NS'
|
||||
| 'SRV'
|
||||
| 'CAA'
|
||||
| 'HTTPS'
|
||||
| 'ALIAS';
|
||||
|
||||
+3
-11
@@ -11,6 +11,7 @@
|
||||
import { presets } from './store';
|
||||
import { invalidate } from '$app/navigation';
|
||||
import { Dependencies } from '$lib/constants';
|
||||
import { createRecord } from '$lib/helpers/domains';
|
||||
|
||||
export let show = false;
|
||||
export let selectedPreset: (typeof presets)[number];
|
||||
@@ -35,16 +36,9 @@
|
||||
|
||||
async function handleSubmit() {
|
||||
try {
|
||||
//TODO: create DNS records
|
||||
if (records.total) {
|
||||
const promises = records.dnsRecords.map((record) =>
|
||||
sdk.forConsole.domains.createRecordMX(
|
||||
page.params.domain,
|
||||
record.name,
|
||||
record.value,
|
||||
record.ttl,
|
||||
record.priority
|
||||
)
|
||||
const promises = records.dnsRecords.map(
|
||||
async (record) => await createRecord(record, page.params.domain)
|
||||
);
|
||||
await Promise.all(promises);
|
||||
}
|
||||
@@ -62,8 +56,6 @@
|
||||
trackError(e, Submit.RecordCreate);
|
||||
}
|
||||
}
|
||||
|
||||
$: console.log(selectedPreset);
|
||||
</script>
|
||||
|
||||
<Modal
|
||||
|
||||
+18
-111
@@ -16,19 +16,8 @@
|
||||
import { recordTypes } from './store';
|
||||
import { Dependencies } from '$lib/constants';
|
||||
import { invalidate } from '$app/navigation';
|
||||
|
||||
type RecordType =
|
||||
| 'A'
|
||||
| 'AAAA'
|
||||
| 'CNAME'
|
||||
| 'MX'
|
||||
| 'TXT'
|
||||
| 'NS'
|
||||
| 'SRV'
|
||||
| 'CAA'
|
||||
| 'PTR'
|
||||
| 'HTTPS'
|
||||
| 'ALIAS';
|
||||
import type { RecordType } from '$lib/stores/domains';
|
||||
import { createRecord } from '$lib/helpers/domains';
|
||||
|
||||
export let show = false;
|
||||
|
||||
@@ -41,105 +30,23 @@
|
||||
let error = '';
|
||||
|
||||
async function handleSubmit() {
|
||||
const record = {
|
||||
name,
|
||||
type,
|
||||
value,
|
||||
ttl,
|
||||
priority,
|
||||
comment
|
||||
};
|
||||
try {
|
||||
switch (type) {
|
||||
case 'A':
|
||||
await sdk.forConsole.domains.createRecordA(
|
||||
page.params.domain,
|
||||
name,
|
||||
value,
|
||||
ttl,
|
||||
comment || undefined
|
||||
);
|
||||
|
||||
break;
|
||||
case 'AAAA':
|
||||
await sdk.forConsole.domains.createRecordAAAA(
|
||||
page.params.domain,
|
||||
name,
|
||||
value,
|
||||
ttl,
|
||||
comment || undefined
|
||||
);
|
||||
|
||||
break;
|
||||
case 'CNAME':
|
||||
await sdk.forConsole.domains.createRecordCNAME(
|
||||
page.params.domain,
|
||||
name,
|
||||
value,
|
||||
ttl,
|
||||
comment || undefined
|
||||
);
|
||||
|
||||
break;
|
||||
case 'MX':
|
||||
await sdk.forConsole.domains.createRecordMX(
|
||||
page.params.domain,
|
||||
name,
|
||||
value,
|
||||
ttl,
|
||||
priority,
|
||||
comment || undefined
|
||||
);
|
||||
|
||||
break;
|
||||
case 'TXT':
|
||||
await sdk.forConsole.domains.createRecordTXT(
|
||||
page.params.domain,
|
||||
name,
|
||||
value,
|
||||
ttl,
|
||||
comment || undefined
|
||||
);
|
||||
|
||||
break;
|
||||
case 'NS':
|
||||
await sdk.forConsole.domains.createRecordNS(
|
||||
page.params.domain,
|
||||
name,
|
||||
value,
|
||||
ttl,
|
||||
comment || undefined
|
||||
);
|
||||
|
||||
break;
|
||||
|
||||
case 'CAA':
|
||||
await sdk.forConsole.domains.createRecordCAA(
|
||||
page.params.domain,
|
||||
name,
|
||||
value,
|
||||
ttl,
|
||||
comment || undefined
|
||||
);
|
||||
|
||||
break;
|
||||
case 'HTTPS':
|
||||
await sdk.forConsole.domains.createRecordHTTPS(
|
||||
page.params.domain,
|
||||
name,
|
||||
value,
|
||||
ttl,
|
||||
comment || undefined
|
||||
);
|
||||
|
||||
break;
|
||||
case 'ALIAS':
|
||||
await sdk.forConsole.domains.createRecordAlias(
|
||||
page.params.domain,
|
||||
name,
|
||||
value,
|
||||
ttl,
|
||||
comment || undefined
|
||||
);
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
await createRecord(record, page.params.domain);
|
||||
name = '';
|
||||
type = 'A';
|
||||
value = '';
|
||||
ttl = 3600;
|
||||
priority = undefined;
|
||||
comment = '';
|
||||
error = '';
|
||||
show = false;
|
||||
invalidate(Dependencies.DOMAINS);
|
||||
addNotification({
|
||||
|
||||
+2
-98
@@ -6,9 +6,8 @@
|
||||
import { Icon, Layout, Tooltip, Typography, Upload } from '@appwrite.io/pink-svelte';
|
||||
import { IconInfo } from '@appwrite.io/pink-icons-svelte';
|
||||
import { removeFile } from '$lib/helpers/files';
|
||||
import { sdk } from '$lib/stores/sdk';
|
||||
import { page } from '$app/state';
|
||||
import { parseDnsRecords } from '$lib/helpers/domains';
|
||||
import { createRecord, parseDnsRecords } from '$lib/helpers/domains';
|
||||
|
||||
export let show = false;
|
||||
let files: FileList;
|
||||
@@ -28,102 +27,7 @@
|
||||
recordCount += records.length;
|
||||
|
||||
for (const record of records) {
|
||||
switch (type) {
|
||||
case 'A':
|
||||
await sdk.forConsole.domains.createRecordA(
|
||||
page.params.domain,
|
||||
record.name,
|
||||
record.value,
|
||||
record.ttl,
|
||||
record.comment
|
||||
);
|
||||
break;
|
||||
case 'AAAA':
|
||||
await sdk.forConsole.domains.createRecordAAAA(
|
||||
page.params.domain,
|
||||
record.name,
|
||||
record.value,
|
||||
record.ttl,
|
||||
record.comment
|
||||
);
|
||||
break;
|
||||
case 'CNAME':
|
||||
await sdk.forConsole.domains.createRecordCNAME(
|
||||
page.params.domain,
|
||||
record.name,
|
||||
record.value,
|
||||
record.ttl,
|
||||
record.comment
|
||||
);
|
||||
break;
|
||||
case 'MX':
|
||||
await sdk.forConsole.domains.createRecordMX(
|
||||
page.params.domain,
|
||||
record.name,
|
||||
record.value,
|
||||
record.priority || 10,
|
||||
record.ttl,
|
||||
record.comment
|
||||
);
|
||||
break;
|
||||
case 'TXT':
|
||||
await sdk.forConsole.domains.createRecordTXT(
|
||||
page.params.domain,
|
||||
record.name,
|
||||
record.value,
|
||||
record.ttl,
|
||||
record.comment
|
||||
);
|
||||
break;
|
||||
case 'NS':
|
||||
await sdk.forConsole.domains.createRecordNS(
|
||||
page.params.domain,
|
||||
record.name,
|
||||
record.value,
|
||||
record.ttl,
|
||||
record.comment
|
||||
);
|
||||
break;
|
||||
case 'SRV':
|
||||
await sdk.forConsole.domains.createRecordSRV(
|
||||
page.params.domain,
|
||||
record.name,
|
||||
record.value,
|
||||
record.ttl,
|
||||
record.priority,
|
||||
record.weight,
|
||||
record.port,
|
||||
record.comment
|
||||
);
|
||||
break;
|
||||
case 'CAA':
|
||||
await sdk.forConsole.domains.createRecordCAA(
|
||||
page.params.domain,
|
||||
record.name,
|
||||
record.value,
|
||||
record.ttl,
|
||||
record.comment
|
||||
);
|
||||
break;
|
||||
case 'PTR':
|
||||
await sdk.forConsole.domains.createRecordHTTPS(
|
||||
page.params.domain,
|
||||
record.name,
|
||||
record.value,
|
||||
record.ttl,
|
||||
record.comment
|
||||
);
|
||||
break;
|
||||
case 'ALIAS':
|
||||
await sdk.forConsole.domains.createRecordAlias(
|
||||
page.params.domain,
|
||||
record.name,
|
||||
record.value,
|
||||
record.ttl,
|
||||
record.comment
|
||||
);
|
||||
break;
|
||||
}
|
||||
await createRecord(record, page.params.domain);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
-3
@@ -20,8 +20,6 @@
|
||||
import { invalidate } from '$app/navigation';
|
||||
import { Dependencies } from '$lib/constants';
|
||||
|
||||
// type RecordType = 'A' | 'AAAA' | 'CNAME' | 'MX' | 'TXT' | 'NS' | 'SRV' | 'CAA' | 'PTR';
|
||||
|
||||
export let show = false;
|
||||
export let selectedRecord: DnsRecord;
|
||||
|
||||
@@ -30,7 +28,6 @@
|
||||
|
||||
async function handleSubmit() {
|
||||
try {
|
||||
//TODO: update DNS record
|
||||
switch (record.type) {
|
||||
case 'A':
|
||||
await sdk.forConsole.domains.updateRecordA(
|
||||
|
||||
Reference in New Issue
Block a user