Skip to content

Commit

Permalink
format helper
Browse files Browse the repository at this point in the history
  • Loading branch information
tbeseda committed Dec 22, 2023
1 parent 944bb58 commit 2c00155
Show file tree
Hide file tree
Showing 5 changed files with 75 additions and 5 deletions.
4 changes: 3 additions & 1 deletion src/commands/domains/index.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const names = { en: [ 'domains' ] }
const subcommands = [ 'list', 'add', 'remove', 'link', 'unlink', 'records' ]
const subcommands = [ 'list', 'add', 'remove', 'link', 'unlink', 'records', 'validate' ]
const aliases = {
ls: 'list',
buy: 'add',
Expand All @@ -11,6 +11,8 @@ const aliases = {
associate: 'link',
disassociate: 'unlink',
unalias: 'unlink',
verify: 'validate',

}
const defaultCommand = 'list'
const help = require('./help').bind({})
Expand Down
2 changes: 2 additions & 0 deletions src/commands/domains/link.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ async function action (params) {
const { access_token: token, stagingAPI: _staging } = params.config

const domains = await client.domains.list({ _staging, token })
if (!domains.length)
return Error('No domains found. Start by running: begin domains add --domain <domain>')

if (!domain || (typeof domain === 'string' && domain.length === 0)){
const prompt = new Select({
Expand Down
10 changes: 6 additions & 4 deletions src/commands/domains/list.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,10 @@ async function action (params) {
if (verbose) row.push(`${domainTitle} <${domainID}>`)
else row.push(domainTitle)

if (verbose)
row.push(` Updated: ${new Date(updatedAt).toLocaleString()}`)
if (verbose ){
row.push(`\n Updated: ${new Date(updatedAt).toLocaleString()}`)
row.push(c.dim(`\n Status: ${c.bold(status)} `))
}

row.push('\n ')

Expand Down Expand Up @@ -62,10 +64,10 @@ async function action (params) {
row.push('Unlinking DNS and SSL certificates')
}
else if ([ states.LAPSED, states.CANCELLED, states.DELETED ].includes(status)) {
row.push(`Inactive (status: ${status})`)
row.push(`Inactive (${status})`)
}
else {
row.push(`Unknown (status: ${status})`)
row.push(`Unknown (${status})`)
}

rows.push(row.join(''))
Expand Down
35 changes: 35 additions & 0 deletions src/commands/domains/validate.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
async function action (params) {
let client = require('@begin/api')
let states = require('./_states')
let f = require('../../lib/format')()
const spinner = require('../../lib/spinner')
let { config, domain, verbose } = params

Check failure on line 6 in src/commands/domains/validate.js

View workflow job for this annotation

GitHub Actions / test (16.x, ubuntu-latest)

'verbose' is assigned a value but never used

Check failure on line 6 in src/commands/domains/validate.js

View workflow job for this annotation

GitHub Actions / test (18.x, ubuntu-latest)

'verbose' is assigned a value but never used

Check failure on line 6 in src/commands/domains/validate.js

View workflow job for this annotation

GitHub Actions / test (16.x, ubuntu-latest)

'verbose' is assigned a value but never used

Check failure on line 6 in src/commands/domains/validate.js

View workflow job for this annotation

GitHub Actions / test (18.x, ubuntu-latest)

'verbose' is assigned a value but never used
let { access_token: token, stagingAPI: _staging } = config

let domains = await client.domains.list({ token, _staging })
if (!domains.length)
return Error('No domains found. Start by running: begin domains add --domain <domain>')

const theDomain = domains.find(d => d.domain === domain)
if (!theDomain)
return Error([
`You do not subscribe to the domain "${domain}".`,
`To subscribe, run: begin domains add ${domain}`,
].join('\n'))

if (theDomain.status !== states.UNVALIDATED)
return Error(`Domain ${f.d.external(domain)} cannot be validated.`)

const { domainID } = theDomain
spinner(`Requesting validation for ${f.d.external(domain)} ${f.ID(domainID)}`)
// const response = await client.domains.validate({ token, domainID, _staging })
spinner.done()

return `Domain ${f.d.external(domain)} validated!`
}

module.exports = {
name: 'validate',
description: 'Validate an external domain with DNS entries',
action,
}
29 changes: 29 additions & 0 deletions src/lib/format.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
module.exports = function () {
const c = require('@colors/colors/safe')

const name = c.bold

const formatter = {
name,
ID: (id) => `<${id}>`,
date: (date) => new Date(date).toLocaleString(),
app: {
name: name.green,
},
env: {
name,
location: c.dim,
},
domain: {
managed: c.underline.green,
external: c.underline.cyan,
},
c,
}

formatter.e = formatter.env
formatter.a = formatter.app
formatter.d = formatter.domain

return formatter
}

0 comments on commit 2c00155

Please sign in to comment.