Skip to content
Snippets Groups Projects
Select Git revision
  • e84b15a0db61fdfd44d0a88e4b835112edb9dd05
  • master default protected
2 results

database.js

Blame
  • user avatar
    Ferenc Schulcz authored
    0dbe3e24
    History
    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
    }