Skip to content

Commit 0ba742a

Browse files
authored
Merge pull request #2624 from saisurya123658/fix/subscribe-broken-links
Fix: Added Subscribe button validation (frontend + backend) and fixed…
2 parents 6550218 + bfae373 commit 0ba742a

File tree

16 files changed

+2560
-705
lines changed

16 files changed

+2560
-705
lines changed

backend/app.js

Lines changed: 49 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,73 @@
1-
// app.js
1+
// // app.js
2+
// const express = require("express");
3+
// const cors = require("cors");
4+
// const session = require("express-session");
5+
// const passport = require("./middlewares/Passport");
6+
// const routes = require("./routes");
7+
// const authRoutes = require("./routes/authRoutes");
8+
// const userRoutes = require("./routes/userRoutes");
9+
// const passwordResetRoutes = require("./routes/passwordResetRoutes");
10+
// const adminRegistrationRoutes = require("./routes/adminRegistrationRoutes");
11+
12+
// const app = express();
13+
14+
// // Middleware setup
15+
// app.use(express.json());
16+
// app.use(cors());
17+
// app.use(
18+
// session({
19+
// secret: "Our little secret.",
20+
// resave: false,
21+
// saveUninitialized: false,
22+
// })
23+
// );
24+
// app.use(passport.initialize());
25+
// app.use(passport.session());
26+
27+
// // Route setup
28+
// app.use("/auth", authRoutes);
29+
// app.use("/api", routes);
30+
// app.use("/api", passwordResetRoutes);
31+
// app.use("/vpi", userRoutes);
32+
// app.use("/api/v1", adminRegistrationRoutes);
33+
34+
// module.exports = app;
235
const express = require("express");
336
const cors = require("cors");
437
const session = require("express-session");
538
const passport = require("./middlewares/Passport");
6-
const routes = require("./routes");
39+
const routes = require("./routes"); // includes subscribe now
740
const authRoutes = require("./routes/authRoutes");
841
const userRoutes = require("./routes/userRoutes");
942
const passwordResetRoutes = require("./routes/passwordResetRoutes");
1043
const adminRegistrationRoutes = require("./routes/adminRegistrationRoutes");
1144

45+
// Import routes
46+
const subscribeRoute = require("./routes/subscribe");
47+
48+
// Use routes
49+
1250
const app = express();
1351

14-
// Middleware setup
15-
app.use(express.json());
52+
// Middleware
1653
app.use(cors());
54+
app.use(express.json());
1755
app.use(
1856
session({
1957
secret: "Our little secret.",
2058
resave: false,
2159
saveUninitialized: false,
2260
})
2361
);
62+
app.use("/api/subscribe", subscribeRoute);
2463
app.use(passport.initialize());
2564
app.use(passport.session());
2665

27-
// Route setup
28-
app.use("/auth", authRoutes);
29-
app.use("/api", routes);
30-
app.use("/api", passwordResetRoutes);
31-
app.use("/vpi", userRoutes);
32-
app.use("/api/v1", adminRegistrationRoutes);
66+
// Routes
67+
app.use("/auth", authRoutes); // /auth
68+
app.use("/api", routes); // /api/products, /api/subscribe, /api/auth
69+
app.use("/api", passwordResetRoutes); // /api/password-reset (example)
70+
app.use("/vpi", userRoutes); // /vpi
71+
app.use("/api/v1", adminRegistrationRoutes); // /api/v1/admin
3372

3473
module.exports = app;

backend/models/subscriber.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
const mongoose = require("mongoose");
2+
const validator = require("validator");
3+
4+
const subscriberSchema = new mongoose.Schema({
5+
email: {
6+
type: String,
7+
required: true,
8+
unique: true,
9+
trim: true,
10+
lowercase: true,
11+
validate: {
12+
validator: (v) => validator.isEmail(v),
13+
message: "Invalid email address",
14+
},
15+
},
16+
date: {
17+
type: Date,
18+
default: Date.now,
19+
},
20+
});
21+
22+
const Subscriber = mongoose.model("Subscriber", subscriberSchema);
23+
24+
module.exports = Subscriber;

0 commit comments

Comments
 (0)