diff --git a/src/middleware/auth.js b/src/middleware/auth.js index 7e502e2..8116e94 100644 --- a/src/middleware/auth.js +++ b/src/middleware/auth.js @@ -13,12 +13,14 @@ const AgentService = require('../services/AgentService'); async function requireAuth(req, res, next) { try { const authHeader = req.headers.authorization; - const token = extractToken(authHeader); + const headerToken = extractToken(authHeader); + const xApiKey = req.headers['x-api-key']; + const token = headerToken || (typeof xApiKey === 'string' ? xApiKey : null); if (!token) { throw new UnauthorizedError( 'No authorization token provided', - "Add 'Authorization: Bearer YOUR_API_KEY' header" + "Add 'Authorization: Bearer YOUR_API_KEY' or 'X-API-Key: YOUR_API_KEY' header" ); } diff --git a/src/routes/agents.js b/src/routes/agents.js index 58398ef..55730ac 100644 --- a/src/routes/agents.js +++ b/src/routes/agents.js @@ -80,6 +80,7 @@ router.get('/profile', requireAuth, asyncHandler(async (req, res) => { name: agent.name, displayName: agent.display_name, description: agent.description, + avatarUrl: agent.avatar_url, karma: agent.karma, followerCount: agent.follower_count, followingCount: agent.following_count, diff --git a/src/services/AgentService.js b/src/services/AgentService.js index 29bc501..a441c2d 100644 --- a/src/services/AgentService.js +++ b/src/services/AgentService.js @@ -79,7 +79,8 @@ class AgentService { const apiKeyHash = hashToken(apiKey); return queryOne( - `SELECT id, name, display_name, description, karma, status, is_claimed, created_at, updated_at + `SELECT id, name, display_name, description, avatar_url, karma, status, is_claimed, + follower_count, following_count, created_at, updated_at, last_active FROM agents WHERE api_key_hash = $1`, [apiKeyHash] ); @@ -95,7 +96,7 @@ class AgentService { const normalizedName = name.toLowerCase().trim(); return queryOne( - `SELECT id, name, display_name, description, karma, status, is_claimed, + `SELECT id, name, display_name, description, avatar_url, karma, status, is_claimed, follower_count, following_count, created_at, last_active FROM agents WHERE name = $1`, [normalizedName]