near-protocol-rewards
Version:
A transparent, metric-based rewards system for NEAR projects
57 lines (56 loc) • 1.78 kB
JavaScript
;
/**
* API Router Implementation
*
* Provides REST endpoints for accessing GitHub metrics and project status.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.createRouter = void 0;
const express_1 = require("express");
const errors_1 = require("../types/errors");
const auth_1 = require("../middleware/auth");
function createRouter(collector) {
const router = (0, express_1.Router)();
router.get("/metrics/:projectId", auth_1.validateApiKey, async (req, res) => {
try {
const metrics = await collector.collectMetrics();
res.json({
success: true,
data: metrics,
});
}
catch (error) {
console.error("Error collecting metrics:", error);
res.status(500).json({
success: false,
error: {
code: errors_1.ErrorCode.PROCESSING_ERROR,
message: "Failed to collect metrics",
},
});
}
});
router.get("/status", auth_1.validateApiKey, async (req, res) => {
try {
const githubStatus = await collector.testConnection();
res.json({
success: true,
data: {
github: githubStatus,
},
});
}
catch (error) {
console.error("Error checking status:", error);
res.status(500).json({
success: false,
error: {
code: errors_1.ErrorCode.PROCESSING_ERROR,
message: "Failed to check service status",
},
});
}
});
return router;
}
exports.createRouter = createRouter;