diff --git a/domains/@.json b/domains/@.json new file mode 100644 index 000000000..fb2fd28a6 --- /dev/null +++ b/domains/@.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "phenax", + "email": "phenax5@gmail.com" + }, + "record": { + "URL": "https://www.is-a.dev" + } +} diff --git a/domains/www.json b/domains/www.json index b73069225..fe2f0b92a 100644 --- a/domains/www.json +++ b/domains/www.json @@ -4,6 +4,6 @@ "email": "phenax5@gmail.com" }, "record": { - "CNAME": "placeholder" + "CNAME": "placeholder.com" } } diff --git a/utils/domain.js b/utils/domain.js index 5cbc48d6c..089bde425 100644 --- a/utils/domain.js +++ b/utils/domain.js @@ -18,7 +18,7 @@ const getDomains = () => name: name.replace(/\.json$/, ''), }))); -const hasLengthLessThan = len => R.compose(R.not, R.lt(len), R.length); +const between = (min, max) => num => num >= min && num <= max; const validate = pattern => data => R.compose( invalidPairs => invalidPairs.length ? { errors: invalidPairs, valid: false } : { errors: [], valid: true }, @@ -34,9 +34,12 @@ const validateNameRecord = type => R.allPass([ const validateDomainData = validate({ name: { reason: 'The name of the file is invalid', - fn: R.allPass([ - hasLengthLessThan(100), - str => str && str.match(/^[A-Za-z0-9\-]{2,}$/ig), + fn: R.anyPass([ + R.equals('@'), + R.allPass([ + R.compose(between(2, 100), R.length), + str => str && str.match(/^[A-Za-z0-9\-]+$/ig), + ]) ]), }, description: { reason: '', fn: R.T, },