add index.js
This commit is contained in:
parent
f874de542e
commit
4fc2bee726
116
lib/index.js
Normal file
116
lib/index.js
Normal file
@ -0,0 +1,116 @@
|
||||
'use strict';
|
||||
var Client = require('pg').Client;
|
||||
var promisify = require('util').promisify;
|
||||
|
||||
var defaults = {
|
||||
tableName: 'acme_challenge'
|
||||
};
|
||||
|
||||
module.exports.create = function(config) {
|
||||
|
||||
var tableName = config.tableName || defaults.tableName;
|
||||
var databaseUrl = config.databaseUrl;
|
||||
var client;
|
||||
|
||||
return {
|
||||
init: function(opts) {
|
||||
console.log('init');
|
||||
client = new Client({
|
||||
connectionString: databaseUrl
|
||||
});
|
||||
|
||||
var dropTableQuery = 'DROP TABLE IF EXISTS "' + tableName + '" CASCADE;';
|
||||
var createTableQuery = 'CREATE TABLE IF NOT EXISTS "' + tableName + '" (' +
|
||||
'"id" SERIAL , ' +
|
||||
'"domain" VARCHAR(255) NOT NULL, ' +
|
||||
'"tokenName" VARCHAR(255), ' +
|
||||
'"keyAuthorization" VARCHAR(255), PRIMARY KEY ("id"));';
|
||||
|
||||
return client.connect().then(function() {
|
||||
return client.query(dropTableQuery + createTableQuery)
|
||||
.then(function(res) {
|
||||
// console.log(res);
|
||||
|
||||
return null;
|
||||
}).catch(function(err) {
|
||||
console.error(err.stack);
|
||||
throw err;
|
||||
});
|
||||
}).catch(function(err) {
|
||||
console.error('Unable to connect to the database:', err);
|
||||
throw err;
|
||||
});
|
||||
|
||||
},
|
||||
|
||||
set: function(data) {
|
||||
// console.log('Add Key Auth URL', data);
|
||||
|
||||
var ch = data.challenge;
|
||||
|
||||
var setQuery = 'INSERT INTO "'+tableName+'" ("id","domain","tokenName","keyAuthorization") VALUES (DEFAULT,$1,$2,$3) RETURNING *;';
|
||||
var setValues = [ch.identifier.value,ch.token,ch.keyAuthorization];
|
||||
|
||||
return client.query(setQuery,setValues)
|
||||
.then(function(res) {
|
||||
// console.log(res);
|
||||
console.log(
|
||||
'acmeChallenge auto-generated ID:',
|
||||
res.rows[0].id
|
||||
);
|
||||
return true;
|
||||
|
||||
}).catch(function(err) {
|
||||
console.error(err.stack);
|
||||
throw err;
|
||||
});
|
||||
|
||||
},
|
||||
get: function(data) {
|
||||
// console.log('List Key Auth URL', data);
|
||||
|
||||
var ch = data.challenge;
|
||||
|
||||
var getQuery = 'SELECT "id", "domain", "tokenName", "keyAuthorization" FROM "'+tableName+'" AS "acme_challenge" WHERE "acme_challenge"."domain" = $1 AND "acme_challenge"."tokenName" = $2 LIMIT 1;';
|
||||
var getValues = [ch.identifier.value,ch.token];
|
||||
|
||||
return client.query(getQuery,getValues)
|
||||
.then(function(res) {
|
||||
// console.log(res);
|
||||
var acmeChallenge = res.rows[0];
|
||||
if (acmeChallenge) {
|
||||
return {
|
||||
keyAuthorization: acmeChallenge.keyAuthorization
|
||||
};
|
||||
}
|
||||
return null;
|
||||
|
||||
|
||||
}).catch(function(err) {
|
||||
console.error(err.stack);
|
||||
throw err;
|
||||
});
|
||||
},
|
||||
|
||||
remove: function(data) {
|
||||
var ch = data.challenge;
|
||||
|
||||
var deleteQuery = 'DELETE FROM "'+tableName+'" WHERE "domain" = $1 AND "tokenName" = $2';
|
||||
var deleteValues = [ch.identifier.value,ch.token];
|
||||
|
||||
return client.query(deleteQuery,deleteValues)
|
||||
.then(function(res) {
|
||||
// console.log(res);
|
||||
return null;
|
||||
|
||||
}).catch(function(err) {
|
||||
console.error(err.stack);
|
||||
throw err;
|
||||
});
|
||||
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
// close connection
|
||||
// client.end();
|
Loading…
x
Reference in New Issue
Block a user