import axios from 'axios';
import dotenv from 'dotenv';
dotenv.config();
export const createDNSRecord = async (subdomain: string): Promise<void> => {
const data = {
environment: "production",
hostname: `${subdomain}.subdomain.com`,
service: process.env.CLOUDFLARE_WORKER_NAME,
zone_id: process.env.CLOUDFLARE_ZONE_ID
};
// console. log all environment variables
console.log('CLOUDFLARE_ACCOUNT_ID:', process.env.CLOUDFLARE_ACCOUNT_ID);
console.log('CLOUDFLARE_API_KEY:', process.env.CLOUDFLARE_API_KEY);
console.log('CLOUDFLARE_ZONE_ID:', process.env.CLOUDFLARE_ZONE_ID);
console.log('CLOUDFLARE_WORKER_NAME:', process.env.CLOUDFLARE_WORKER_NAME);
console.log('data:', data);
const url = `https://api.cloudflare.com/client/v4/accounts/${process.env.CLOUDFLARE_ACCOUNT_ID}/workers/domains`;
const headers = {
'Authorization': `Bearer ${process.env.CLOUDFLARE_API_KEY}`,
'Content-Type': 'application/json'
};
try {
const response = await axios.put(url, data, { headers });
if (response.status === 200) {
console.log('DNS record created successfully.');
} else {
console.log('Failed to create DNS record.');
console.log(response.data);
}
} catch (error: any) {
if (error.response) {
console.error('Error creating DNS record:', error.response.data);
} else {
console.error('Error creating DNS record:', error.message);
}
}
}
import axios from 'axios';
import dotenv from 'dotenv';
dotenv.config();
export const createDNSRecord = async (subdomain: string): Promise<void> => {
const data = {
environment: "production",
hostname: `${subdomain}.subdomain.com`,
service: process.env.CLOUDFLARE_WORKER_NAME,
zone_id: process.env.CLOUDFLARE_ZONE_ID
};
// console. log all environment variables
console.log('CLOUDFLARE_ACCOUNT_ID:', process.env.CLOUDFLARE_ACCOUNT_ID);
console.log('CLOUDFLARE_API_KEY:', process.env.CLOUDFLARE_API_KEY);
console.log('CLOUDFLARE_ZONE_ID:', process.env.CLOUDFLARE_ZONE_ID);
console.log('CLOUDFLARE_WORKER_NAME:', process.env.CLOUDFLARE_WORKER_NAME);
console.log('data:', data);
const url = `https://api.cloudflare.com/client/v4/accounts/${process.env.CLOUDFLARE_ACCOUNT_ID}/workers/domains`;
const headers = {
'Authorization': `Bearer ${process.env.CLOUDFLARE_API_KEY}`,
'Content-Type': 'application/json'
};
try {
const response = await axios.put(url, data, { headers });
if (response.status === 200) {
console.log('DNS record created successfully.');
} else {
console.log('Failed to create DNS record.');
console.log(response.data);
}
} catch (error: any) {
if (error.response) {
console.error('Error creating DNS record:', error.response.data);
} else {
console.error('Error creating DNS record:', error.message);
}
}
}