fix: add date filtering to usage/real endpoint and export
This commit is contained in:
118
gitea-routes.js
Normal file
118
gitea-routes.js
Normal file
@@ -0,0 +1,118 @@
|
||||
/**
|
||||
* Gitea Routes Module
|
||||
* Adds Gitea integration routes to Express app
|
||||
*/
|
||||
|
||||
const GiteaIntegration = require('./gitea-integration.js');
|
||||
|
||||
function setupGiteaRoutes(app) {
|
||||
// Initialize Gitea client
|
||||
const giteaConfig = {
|
||||
baseUrl: process.env.GITEA_URL || 'https://gitea.tophermayor.com',
|
||||
token: process.env.GITEA_TOKEN,
|
||||
owner: 'TopherMayor',
|
||||
cacheTimeout: 30000
|
||||
};
|
||||
|
||||
const gitea = new GiteaIntegration(giteaConfig);
|
||||
|
||||
// Gitea page route - redirect to main SPA with hash
|
||||
app.get('/gitea', (req, res) => {
|
||||
res.redirect('/#gitea');
|
||||
});
|
||||
|
||||
// Gitea API routes
|
||||
app.get('/api/gitea/swarm', async (req, res) => {
|
||||
try {
|
||||
const summary = await gitea.getSwarmSummary();
|
||||
res.json(summary);
|
||||
} catch (error) {
|
||||
res.status(500).json({ error: error.message });
|
||||
}
|
||||
});
|
||||
|
||||
app.get('/api/gitea/reviews', async (req, res) => {
|
||||
try {
|
||||
const reviews = await gitea.getPendingReviews();
|
||||
res.json(reviews);
|
||||
} catch (error) {
|
||||
res.status(500).json({ error: error.message });
|
||||
}
|
||||
});
|
||||
|
||||
app.get('/api/gitea/activity', async (req, res) => {
|
||||
try {
|
||||
const activity = await gitea.getRecentActivity();
|
||||
res.json(activity);
|
||||
} catch (error) {
|
||||
res.status(500).json({ error: error.message });
|
||||
}
|
||||
});
|
||||
|
||||
app.get('/api/gitea/user', async (req, res) => {
|
||||
try {
|
||||
const user = await gitea.getUser();
|
||||
res.json(user);
|
||||
} catch (error) {
|
||||
res.status(500).json({ error: error.message });
|
||||
}
|
||||
});
|
||||
|
||||
app.get('/api/gitea/repos/:repo', async (req, res) => {
|
||||
try {
|
||||
const repo = await gitea.getRepo(req.params.repo);
|
||||
res.json(repo);
|
||||
} catch (error) {
|
||||
res.status(500).json({ error: error.message });
|
||||
}
|
||||
});
|
||||
|
||||
app.get('/api/gitea/repos/:repo/pulls', async (req, res) => {
|
||||
try {
|
||||
const state = req.query.state || 'open';
|
||||
const prs = await gitea.getPullRequests(req.params.repo, state);
|
||||
res.json(prs);
|
||||
} catch (error) {
|
||||
res.status(500).json({ error: error.message });
|
||||
}
|
||||
});
|
||||
|
||||
app.get('/api/gitea/repos/:repo/issues', async (req, res) => {
|
||||
try {
|
||||
const state = req.query.state || 'open';
|
||||
const issues = await gitea.getIssues(req.params.repo, state);
|
||||
res.json(issues);
|
||||
} catch (error) {
|
||||
res.status(500).json({ error: error.message });
|
||||
}
|
||||
});
|
||||
|
||||
app.get('/api/gitea/repos/:repo/commits', async (req, res) => {
|
||||
try {
|
||||
const branch = req.query.branch || 'main';
|
||||
const limit = parseInt(req.query.limit) || 10;
|
||||
const commits = await gitea.getCommits(req.params.repo, branch, limit);
|
||||
res.json(commits);
|
||||
} catch (error) {
|
||||
res.status(500).json({ error: error.message });
|
||||
}
|
||||
});
|
||||
|
||||
app.get('/api/gitea/repos/:repo/branches', async (req, res) => {
|
||||
try {
|
||||
const branches = await gitea.getBranches(req.params.repo);
|
||||
res.json(branches);
|
||||
} catch (error) {
|
||||
res.status(500).json({ error: error.message });
|
||||
}
|
||||
});
|
||||
|
||||
app.post('/api/gitea/cache/clear', (req, res) => {
|
||||
gitea.clearCache();
|
||||
res.json({ success: true, message: 'Cache cleared' });
|
||||
});
|
||||
|
||||
console.log('✅ Gitea integration loaded');
|
||||
}
|
||||
|
||||
module.exports = { setupGiteaRoutes };
|
||||
Reference in New Issue
Block a user