-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathOLd_server.js
More file actions
125 lines (107 loc) · 4.07 KB
/
Copy pathOLd_server.js
File metadata and controls
125 lines (107 loc) · 4.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
const express = require('express');
const cors = require('cors');
const db = require('./db');
const bodyParser = require('body-parser');
const app = express();
const PORT = process.env.PORT || 5000;
// Middleware
app.use(cors());
app.use(bodyParser.json());
app.use(express.json());
// Import routes
const applicationsRouter = require('./routes/applications');
const personalDetailsRouter = require('./routes/personalDetails');
const currentAddressRouter = require('./routes/currentAddress');
const permanentAddressRouter = require('./routes/permanentAddress');
const employmentDetailsRouter = require('./routes/employmentDetails');
const vehicleDetailsRouter = require('./routes/vehicleDetails');
const referenceContactsRouter = require('./routes/referenceContacts');
const insuranceDetailsRouter = require('./routes/insuranceDetails');
const contactDetailsRouter = require('./routes/contactDetails');
const verificationRouter = require('./routes/verification');
const cifRouter = require('./routes/cif');
const casplusRouter = require('./routes/cashplus');
// Health check endpoint
app.get('/health', (req, res) => {
res.json({ status: 'OK', message: 'ILOS Backend Server is running', timestamp: new Date().toISOString() });
});
// Direct customer status endpoint for testing
app.get('/customer-status/:cnic', async (req, res) => {
try {
const { cnic } = req.params;
const customerService = require('./customerService');
const customerStatus = await customerService.getCustomerStatus(cnic);
res.json(customerStatus);
} catch (error) {
console.error('Error fetching customer status:', error);
res.status(500).json({ error: 'Failed to fetch customer status' });
}
});
// Customer lookup endpoint
app.get('/api/getNTB_ETB/:cnic', async (req, res) => {
try {
const { cnic } = req.params;
if (!cnic || cnic.length !== 13) {
return res.status(400).json({ error: 'Valid 13-digit CNIC is required' });
}
const query = `
SELECT
customer_id, cnic, status, fullname, domicile_country, domicile_state,
city, district, business, industry, created_at
FROM cif_customers
WHERE cnic = $1
`;
const result = await db.query(query, [cnic]);
if (result.rows.length === 0) {
return res.json({
isETB: false,
customer: null,
message: 'New customer'
});
}
const customer = result.rows[0];
// Format customer data for frontend - using actual table columns
const formattedCustomer = {
customerId: customer.customer_id,
cnic: customer.cnic,
status: customer.status,
fullname: customer.fullname,
firstName: customer.fullname ? customer.fullname.split(' ')[0] : '',
lastName: customer.fullname ? customer.fullname.split(' ').slice(-1)[0] : '',
domicileCountry: customer.domicile_country,
domicileState: customer.domicile_state,
city: customer.city,
district: customer.district,
business: customer.business,
industry: customer.industry,
createdAt: customer.created_at
};
res.json({
isETB: true,
customer: formattedCustomer,
message: 'Existing customer found'
});
} catch (error) {
console.error('Error fetching customer:', error);
res.status(500).json({ error: 'Internal server error' });
}
});
// Use routes
app.use('/api/applications', applicationsRouter);
app.use('/api/personal-details', personalDetailsRouter);
app.use('/api/current-address', currentAddressRouter);
app.use('/api/permanent-address', permanentAddressRouter);
app.use('/api/employment-details', employmentDetailsRouter);
app.use('/api/vehicle-details', vehicleDetailsRouter);
app.use('/api/reference-contacts', referenceContactsRouter);
app.use('/api/insurance-details', insuranceDetailsRouter);
app.use('/api/contact-details', contactDetailsRouter);
app.use('/api/verification', verificationRouter);
app.use('/api/cif', cifRouter);
app.use('/cif', cifRouter);
app.use('/api/cashplus', casplusRouter);
// Start server
app.listen(PORT, () => {
console.log(`Server running on port ${PORT}`);
});
module.exports = app;