Chat on WhatsApp
				
					console.log( 'Code is Poetry' );// server.js (Node.js + Express)
const express = require('express');
const jwt = require('jsonwebtoken');
const mongoose = require('mongoose');
const app = express();

// MongoDB models
const Affiliate = require('./models/Affiliate');
const ReferredCustomer = require('./models/ReferredCustomer');
const CustomerTransaction = require('./models/CustomerTransaction');
const AffiliateCommission = require('./models/AffiliateCommission');

// Middleware for authentication
function authenticateToken(req, res, next) {
  const token = req.headers['authorization'];
  if (!token) return res.sendStatus(403);
  jwt.verify(token, process.env.ACCESS_TOKEN_SECRET, (err, user) => {
    if (err) return res.sendStatus(403);
    req.user = user;
    next();
  });
}

// API endpoint to get affiliate's performance data
app.get('/api/affiliate/performance', authenticateToken, async (req, res) => {
  const affiliateId = req.user.id;
  try {
    const referredCustomers = await ReferredCustomer.find({ affiliate: affiliateId });
    const transactions = await CustomerTransaction.find({ affiliate: affiliateId });
    const commissions = await AffiliateCommission.find({ affiliate: affiliateId });
    res.json({ referredCustomers, transactions, commissions });
  } catch (error) {
    res.status(500).json({ message: 'Error retrieving performance data', error });
  }
});

mongoose.connect('mongodb://localhost:27017/affiliateDB', { useNewUrlParser: true, useUnifiedTopology: true });
app.listen(3000, () => console.log('Server running on port 3000'));