mirror of
https://github.com/uetchy/namae.git
synced 2025-08-21 02:08:12 +09:00
chore: split app into api and web
This commit is contained in:
30
api/services/dns.js
Normal file
30
api/services/dns.js
Normal file
@@ -0,0 +1,30 @@
|
||||
var dns = require('dns')
|
||||
|
||||
function resolvePromise(hostname) {
|
||||
return new Promise((resolve, reject) => {
|
||||
dns.resolve4(hostname, function(err, addresses) {
|
||||
if (err) return reject(err)
|
||||
resolve(addresses)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
module.exports = async (req, res) => {
|
||||
const name = req.query.name
|
||||
|
||||
if (!name) {
|
||||
return res.status(400).json({ error: 'no query given' })
|
||||
}
|
||||
|
||||
try {
|
||||
const response = await resolvePromise(name)
|
||||
const availability = response && response.length > 0 ? false : true
|
||||
|
||||
res.json({ availability })
|
||||
} catch (err) {
|
||||
if (err.code === 'ENODATA') {
|
||||
return res.status(200).json({ availability: true })
|
||||
}
|
||||
res.status(400).json({ error: err.message })
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user