This commit is contained in:
2021-06-25 12:02:37 -04:00
parent 7d562ba010
commit 1f96cbb23e
17 changed files with 620 additions and 145 deletions

View File

@ -5,10 +5,11 @@ const {User} = require('../models/user');
const {Auth, AuthToken} = require('../models/auth');
router.post('/login', async function(req, res, next){
try{
let auth = await Auth.login(req.body);
console.log('auth route', auth)
return res.json({
login: true,
token: auth.token.token,

View File

@ -5,6 +5,9 @@ const {doDeploy} = require('../lib/deploy');
router.all('/', async function(req, res, next) {
try{
console.log(req.body)
var event = req.headers['x-github-event'];
var call = (req.body.created && 'create') ||
(req.body.deleted && 'delete') ||
@ -15,7 +18,7 @@ router.all('/', async function(req, res, next) {
var commit = req.body.after;
let repo = req.body.repository.full_name;
let id = await doDeploy('create', repo, branch, sshURL, commit);
// let id = await doDeploy('create', repo, branch, sshURL, commit);
res.json({id});

75
nodejs/routes/repo.js Normal file
View File

@ -0,0 +1,75 @@
'use strict';
const router = require('express').Router();
const {Repo} = require('../models/repo');
const Model = Repo;
router.get('/', async function(req, res, next){
try{
return res.json({
hosts: await Model[req.query.detail ? "listDetail" : "list"]()
});
}catch(error){
return next(error);
}
});
router.post('/', async function(req, res, next){
try{
req.body.created_by = req.user.username;
await Model.add(req.body);
return res.json({
message: `"${req.body.host}" added.`
});
} catch (error){
return next(error);
}
});
router.get('/:item(*)', async function(req, res, next){
try{
return res.json({
item: req.params.item,
results: await Model.get(req.params.item)
});
}catch(error){
return next(error);
}
});
router.put('/:item(*)', async function(req, res, next){
try{
req.body.updated_by = req.user.username;
let item = await Model.get(req.params.item);
await item.update.call(item, req.body);
return res.json({
message: `"${req.params.item}" updated.`
});
}catch(error){
return next(error);
}
});
router.delete('/:item(*)', async function(req, res, next){
try{
let item = await Model.get(req.params);
let count = await host.remove.call(item, item);
return res.json({
message: `${req.params.host} deleted`,
});
}catch(error){
return next(error);
}
});
module.exports = router;

View File

@ -1,63 +0,0 @@
'use strict';
const router = require('express').Router();
const {AuthToken} = require('../models/auth');
const {Token, InviteToken} = require('../models/token');
const tokens = {
auth: AuthToken,
invite: InviteToken
}
router.get('/:name', async function(req, res, next){
try{
console.log(tokens, req.params.name)
return res.json({
results: await tokens[req.params.name][req.query.detail ? "listDetail" : "list"]()
});
}catch(error){
next(error);
}
});
router.get('/:name/:token', async function(req, res, next){
try{
return res.json({
results: await tokens[req.params.name].get(req.params.token)
});
}catch(error){
next(error);
}
});
// router.delete('/:username', async function(req, res, next){
// try{
// let user = await User.get(req.params.username);
// return res.json({username: req.params.username, results: await user.remove()})
// }catch(error){
// next(error);
// }
// });
module.exports = router;
/*
verify public ssh key
*/
// router.post('/verifykey', async function(req, res){
// let key = req.body.key;
// try{
// return res.json({
// info: await Users.verifyKey(key)
// });
// }catch(error){
// return res.status(400).json({
// message: 'Key is not a public key file!'
// });
// }
// });

View File

@ -5,63 +5,34 @@ const {User} = require('../models/user');
const {Auth, AuthToken} = require('../models/auth');
router.post('/login', async function(req, res, next){
router.get('/', async function(req, res, next){
try{
let auth = await Auth.login(req.body);
return res.json({
login: true,
token: auth.token.token,
results: await User[req.query.detail ? "listDetail" : "list"]()
});
}catch(error){
next(error);
}
});
router.all('/logout', async function(req, res, next){
router.get('/me', async function(req, res, next){
try{
if(req.user){
await req.user.logout();
}
res.json({message: 'Bye'})
return res.json(await User.get({uid: req.user.uid}));
}catch(error){
next(error);
}
});
router.post('/invite/:token', async function(req, res, next) {
router.get('/:uid', async function(req, res, next){
try{
req.body.token = req.params.token;
let user = await User.addByInvite(req.body);
let token = await AuthToken.add(user);
return res.json({
user: user.username,
token: token.token
results: await User.get(req.params.uid),
});
}catch(error){
next(error);
}
});
module.exports = router;
/*
verify public ssh key
*/
// router.post('/verifykey', async function(req, res){
// let key = req.body.key;
// try{
// return res.json({
// info: await Users.verifyKey(key)
// });
// }catch(error){
// return res.status(400).json({
// message: 'Key is not a public key file!'
// });
// }
// });