UNPKG

near-protocol-rewards

Version:

A transparent, metric-based rewards system for NEAR projects

57 lines (56 loc) 1.78 kB
"use strict"; /** * 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;