Skip to content

Commit c5e9025

Browse files
committed
feat: initialize API gateway, fraud detection database config, and user service entry point
1 parent 2a1990a commit c5e9025

3 files changed

Lines changed: 17 additions & 2 deletions

File tree

server/api-gateway/src/server.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,11 @@ app.use('/api/v1', proxy(API_USER_URL, {
250250
userResHeaderDecorator: (headers, req) => processCorsHeaders(headers, req as Request)
251251
}));
252252

253+
app.get('/health', proxy(API_USER_URL, {
254+
proxyReqPathResolver: () => '/health',
255+
proxyErrorHandler: (err, res, next) => onProxyError(err, res, API_USER_URL)
256+
}));
257+
253258
app.get('/', (req: Request, res: Response) => {
254259
res.json({ success: true, message: 'API Gateway is running' });
255260
});

server/fraud-detection-service/src/config/database.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import * as schema from '../models';
77
dotenv.config();
88

99
// Supabase Connection using PG protocol
10-
const connectionString = `postgres://${process.env.DB_USER}:${process.env.DB_PASSWORD}@${process.env.DB_HOST}:${process.env.DB_PORT}/${process.env.DB_NAME}?sslmode=require`;
10+
const connectionString = process.env.DATABASE_URL || `postgres://${process.env.DB_USER}:${process.env.DB_PASSWORD}@${process.env.DB_HOST}:${process.env.DB_PORT}/${process.env.DB_NAME}?sslmode=require`;
1111

1212
const client = postgres(connectionString, { prepare: false });
1313
export const db = drizzle(client, { schema });

server/user-services/src/server.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import express, { Application, Request, Response } from 'express';
22
import dotenv from 'dotenv';
33
import helmet from 'helmet';
4-
import { connectDB } from './config/database';
4+
import { connectDB, db } from './config/database';
5+
import { sql } from 'drizzle-orm';
56
import authRoutes from './routes/auth.routes';
67
import passport from './config/passport';
78

@@ -25,6 +26,15 @@ app.get('/', (req: Request, res: Response) => {
2526
res.json({ message: 'Welcome to User Service' });
2627
});
2728

29+
app.get('/health', async (req: Request, res: Response) => {
30+
try {
31+
await db.execute(sql`SELECT 1`);
32+
res.status(200).json({ success: true, message: 'User Service & Database are healthy' });
33+
} catch (error) {
34+
res.status(500).json({ success: false, message: 'Database connection failed' });
35+
}
36+
});
37+
2838
// Auth routes
2939
app.use('/api/v1', authRoutes);
3040

0 commit comments

Comments
 (0)