From 570434b55c44c2998806b90709e4fc49a82429d9 Mon Sep 17 00:00:00 2001
From: Louis Capitanchik <contact@louiscap.co>
Date: Fri, 18 Oct 2019 16:19:36 +0100
Subject: [PATCH] Include custom configs in config json

---
 index.js | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

diff --git a/index.js b/index.js
index fde8d40..f68efe5 100644
--- a/index.js
+++ b/index.js
@@ -21,14 +21,15 @@ async function getRecord(zone_id, domain, opts) {
 	return json.result[0]
 }
 
-async function setRecordIp(zone_id, record, ip, opts) {
+async function setRecordIp(zone_id, record, ip, opts, ctx = {}) {
 	const url = gurl(`zones/${ zone_id }/dns_records/${ record.id }`)
 	const method = 'PUT'
 	const json = {
 		type: 'A',
 		name: record.name,
 		content: ip,
-		proxies: true,
+		proxied: true,
+		...ctx,
 	}
 
 	return request(url, {
@@ -38,7 +39,7 @@ async function setRecordIp(zone_id, record, ip, opts) {
 	})
 }
 
-async function createRecord(zone_id, domain, ip, opts) {
+async function createRecord(zone_id, domain, ip, opts, ctx = {}) {
 	const url = gurl(`zones/${ zone_id }/dns_records`)
 	const method = 'POST'
 	const json = {
@@ -46,6 +47,7 @@ async function createRecord(zone_id, domain, ip, opts) {
 		name: domain,
 		content: ip,
 		proxies: true,
+		...ctx,
 	}
 
 	return request(url, {
@@ -70,18 +72,18 @@ async function main() {
 	console.log('[CFDNS] Using IP %s for all domains', ip)
 
 	for (const entry of hosts) {
-		const { domain } = entry
-		const record = await getRecord(zone_id, domain, requestOpts)
+		const { name } = entry
+		const record = await getRecord(zone_id, name, requestOpts)
 		if (record) {
 			if (record.content === ip) {
-				console.log('[CFDNS] Skipping %s', domain)
+				console.log('[CFDNS] Skipping %s', name)
 				continue
 			}
-			console.log('[CFDNS] Updating record for %s', domain)
-			await setRecordIp(zone_id, record, ip, requestOpts)
+			console.log('[CFDNS] Updating record for %s', name)
+			await setRecordIp(zone_id, record, ip, requestOpts, entry)
 		} else {
-			console.log('[CFDNS] Creating new record for %s', domain)
-			await createRecord(zone_id, domain, ip, requestOpts)
+			console.log('[CFDNS] Creating new record for %s', name)
+			await createRecord(zone_id, name, ip, requestOpts, entry)
 		}
 	}
 }
-- 
GitLab