|
1 | 1 | require('dotenv').config(); |
| 2 | +const express = require('express'); |
| 3 | +const cors = require('cors'); |
| 4 | +const leaseRoutes = require('./src/routes/leaseRoutes'); |
| 5 | + |
| 6 | +const app = express(); |
| 7 | +const port = process.env.PORT || 3000; |
2 | 8 |
|
3 | 9 | const cors = require('cors'); |
4 | 10 | const express = require('express'); |
@@ -55,7 +61,25 @@ const storage = multer.diskStorage({ |
55 | 61 | }); |
56 | 62 | const upload = multer({ storage }); |
57 | 63 |
|
| 64 | +// Middleware |
58 | 65 | app.use(cors()); |
| 66 | +app.use(express.json({ limit: '50mb' })); |
| 67 | +app.use(express.urlencoded({ extended: true, limit: '50mb' })); |
| 68 | + |
| 69 | +// Routes |
| 70 | +app.use('/api/leases', leaseRoutes); |
| 71 | + |
| 72 | +app.get('/', (req, res) => { |
| 73 | + res.json({ |
| 74 | + project: 'LeaseFlow Protocol Backend', |
| 75 | + description: 'Secure Lease Indexer and Storage Facilitator', |
| 76 | + status: 'Operational', |
| 77 | + version: '1.0.0', |
| 78 | + contract_id: process.env.CONTRACT_ID || 'CAEGD57WVTVQSYWYB23AISBW334QO7WNA5XQ56S45GH6BP3D2AVHKUG4', |
| 79 | + endpoints: { |
| 80 | + upload_lease: 'POST /api/leases/upload', |
| 81 | + view_lease_handshake: 'GET /api/leases/:leaseCID/handshake' |
| 82 | + } |
59 | 83 | app.use(express.json()); |
60 | 84 | app.use('/uploads', express.static(path.join(__dirname, 'uploads'))); |
61 | 85 | const { |
@@ -414,6 +438,12 @@ app.get('/api/asset/:id/availability', async (req, res) => { |
414 | 438 | } |
415 | 439 | }); |
416 | 440 |
|
| 441 | +// Error handling |
| 442 | +app.use((err, req, res, next) => { |
| 443 | + console.error('[App] Unhandled Error:', err); |
| 444 | + res.status(500).json({ error: 'Internal server error.', details: err.message }); |
| 445 | +}); |
| 446 | + |
417 | 447 | app.get('/api/assets/availability', async (req, res) => { |
418 | 448 | try { |
419 | 449 | const { ids } = req.query; |
@@ -927,6 +957,9 @@ if (require.main === module) { |
927 | 957 | } |
928 | 958 |
|
929 | 959 | app.listen(port, () => { |
| 960 | + console.log(`LeaseFlow Backend running at http://localhost:${port}`); |
| 961 | + console.log(`Lease Encryption Service: Active`); |
| 962 | + console.log(`IPFS Storage Service: Initialized (Host: ${process.env.IPFS_HOST || 'ipfs.infura.io'})`); |
930 | 963 | console.log(`LeaseFlow Backend listening at http://localhost:${port}`); |
931 | 964 | if (scheduler) { |
932 | 965 | console.log(`Lease renewal scheduler running every ${config.jobs.intervalMs}ms`); |
|
0 commit comments