Select Git revision
database.js
database.js 1.31 KiB
var mongoose = require('mongoose');
const config = require('./config');
function init() {
const db_url = config.config().dbHost ? 'mongodb://' + config.config().dbHost + '/dyndns-server' : 'mongodb://localhost/dyndns-server';
mongoose.connect(db_url);
}
const Domain = mongoose.model('domain', {
name: String,
token: String,
ip: String
});
function domainExists(domain) {
return new Promise((resolve, reject) => {
Domain.exists({ name: domain })
.catch((err) => resolve(true))
.then((result) => resolve(result));
});
}
function registerDomain(domain, token) {
return new Promise((resolve, reject) => {
const record = new Domain({
name: domain,
token: token,
ip: '0.0.0.0'
});
record.save()
.catch((err) => reject())
.then(() => resolve());
});
}
function getDomain(token) {
return new Promise((resolve, reject) => {
Domain.findOne({ token: token })
.catch((err) => reject())
.then((domain) => resolve(domain));
});
}
function updateDomain(domain, token, ip) {
return new Promise((resolve, reject) => {
Domain.updateOne({ token: token }, { name: domain, token: token, ip: ip })
.catch((err) => reject())
.then((d) => resolve());
})
}
module.exports = {
init: init,
domainExists: domainExists,
registerDomain: registerDomain,
getDomain: getDomain,
updateDomain: updateDomain
}