Skip to content

Commit 84f1c02

Browse files
committed
feat: initialize microservices architecture with User, AI Banking, and API Gateway servers
1 parent 389f702 commit 84f1c02

3 files changed

Lines changed: 0 additions & 17 deletions

File tree

server/ai-banking-service/src/server.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import express, { Application, Request, Response } from 'express';
22
import dotenv from 'dotenv';
3-
import cors from 'cors';
43
import helmet from 'helmet';
54
import aiRoutes from './routes/ai.routes';
65

@@ -9,7 +8,6 @@ dotenv.config();
98
const app: Application = express();
109
const PORT = process.env.PORT || 8004;
1110
app.use(helmet());
12-
app.use(cors());
1311
app.use(express.json());
1412
app.use(express.urlencoded({ extended: true }));
1513

server/api-gateway/src/server.ts

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -121,11 +121,8 @@ const combinedDocs = {
121121

122122
app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(combinedDocs));
123123

124-
// 3. Proxy Routes with CORS Header Management
125124

126-
// Function to process CORS headers on proxied responses
127125
const processCorsHeaders = (headers: any, req: Request) => {
128-
// Remove backend service CORS headers to prevent conflicts
129126
delete headers['access-control-allow-origin'];
130127
delete headers['Access-Control-Allow-Origin'];
131128
delete headers['access-control-allow-credentials'];
@@ -135,7 +132,6 @@ const processCorsHeaders = (headers: any, req: Request) => {
135132
delete headers['access-control-allow-headers'];
136133
delete headers['Access-Control-Allow-Headers'];
137134

138-
// Set gateway CORS headers
139135
const origin = req.headers.origin;
140136
if (NODE_ENV !== 'production') {
141137
headers['Access-Control-Allow-Origin'] = origin || '*';
@@ -152,7 +148,6 @@ const processCorsHeaders = (headers: any, req: Request) => {
152148
return headers;
153149
};
154150

155-
// Proxy /api/v1/ai to AI Service
156151
app.use('/api/v1/ai', proxy(API_AI_URL, {
157152
proxyReqPathResolver: (req) => req.originalUrl,
158153
preserveHostHdr: true,
@@ -169,27 +164,21 @@ app.use('/api/v1/ai', proxy(API_AI_URL, {
169164
userResHeaderDecorator: (headers, req) => processCorsHeaders(headers, req as Request)
170165
}));
171166

172-
// Catch-all for /api/v1 to proxy to User Service
173167
app.use('/api/v1', proxy(API_USER_URL, {
174168
proxyReqPathResolver: (req) => req.originalUrl,
175169
preserveHostHdr: true,
176-
// Preserve headers
177170
proxyReqOptDecorator: (proxyReqOpts, srcReq) => {
178171
proxyReqOpts.headers = {
179172
...proxyReqOpts.headers,
180173
'Origin': srcReq.headers.origin || 'http://localhost:3002',
181174
};
182175
return proxyReqOpts;
183176
},
184-
// Ensure the body is correctly forwarded after being parsed by express.json()
185177
proxyReqBodyDecorator: (bodyContent, srcReq) => {
186178
return srcReq.body && Object.keys(srcReq.body).length ? JSON.stringify(srcReq.body) : bodyContent;
187179
},
188-
// Process CORS headers on response
189180
userResHeaderDecorator: (headers, req) => processCorsHeaders(headers, req as Request)
190181
}));
191-
192-
// Health Check
193182
app.get('/', (req: Request, res: Response) => {
194183
res.json({ success: true, message: 'API Gateway is running' });
195184
});

server/user-services/src/server.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import express, { Application, Request, Response } from 'express';
22
import dotenv from 'dotenv';
3-
import cors from 'cors';
43
import helmet from 'helmet';
54
import { connectDB } from './config/database';
65
import authRoutes from './routes/auth.routes';
@@ -14,12 +13,9 @@ app.set('trust proxy', 1);
1413
app.use(helmet());
1514
app.use(passport.initialize());
1615

17-
// CORS is handled by API Gateway - disable here to prevent conflicts
18-
// app.use(cors());
1916
app.use(express.json());
2017
app.use(express.urlencoded({ extended: true }));
2118

22-
// Debug logging for paths
2319
app.use((req, res, next) => {
2420
console.log(`[DEBUG] Incoming Request: ${req.method} ${req.path}`);
2521
next();

0 commit comments

Comments
 (0)