Skip to content

Commit 850ff60

Browse files
Merge pull request #114 from MassiGy/architecture-refactor
Architecture refactor Overall Done
2 parents 6b33bb0 + 41a347c commit 850ff60

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

59 files changed

+365
-210
lines changed

res/emails/confirmEmail.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ <h3 style="text-align:center; padding-bottom:5px;">
1010
Hey <b>${data.username}</b>,
1111
<br />
1212
Please validate your email address on fairfieldprogramming.org by clicking
13-
<a href="https://fairfield-programming.herokuapp.com/confirmEmail/${id_token}">this link</a>.
13+
<a href="https://fairfield-programming.herokuapp.com/user/confirmEmail/${id_token}">this link</a>.
1414
<br />
1515
</p>
1616
<p>

src/routes/Article/createArticle.js renamed to src/controllers/Article/createArticle.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@ function missingParameters(req) {
55
return !title || !description || !body;
66
}
77

8-
module.exports = (req, res) => {
8+
9+
10+
module.exports.createArticle = (req, res) => {
911
if (missingParameters(req)) res.status(400).send("Not All Parameters Provided.");
1012
else {
1113
Article.create(
+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
2+
3+
module.exports.getAllArticles = (req, res) => {
4+
Article.findAll(
5+
{},
6+
)
7+
.then((data) => {
8+
if (data.length <= 0) return res.status(404).send("Not Found.");
9+
return res.json(data);
10+
})
11+
.catch((error) => {
12+
console.log(error);
13+
return res.status(500).send("Internal Server Error.");
14+
});
15+
};

src/controllers/Article/index.js

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
const { createArticle } = require("./createArticle");
2+
const { getAllArticles } = require("./getAllArticles");
3+
const { queryArticle } = require("./queryArticle");
4+
5+
6+
module.exports.createArticle = createArticle;
7+
module.exports.getAllArticles = getAllArticles;
8+
module.exports.queryArticle = queryArticle;
+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
module.exports.queryArticle = (req, res) => {
2+
if (!req.params.id) return res.status(400).send("Not All Parameters Provided.");
3+
4+
Article.findOne(
5+
{
6+
where:
7+
{
8+
id: req.params.id,
9+
},
10+
},
11+
).then((data) => {
12+
if (!data) return res.status(404).send("Not Found.");
13+
14+
return res.json(data);
15+
})
16+
.catch((error) => {
17+
console.log(error);
18+
return res.status(500).send("Internal Server Error.");
19+
});
20+
};
21+
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
const duckGenerator = require("duckgen");
22

3-
module.exports = (req, res) => {
3+
module.exports.getDuck = (req, res) => {
44
res.set("Content-Type", "image/svg+xml");
55
res.send(duckGenerator.formatSVG(duckGenerator.generateDuck(
66
{},
77
)));
88
};
9+
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
const duckGenerator = require("duckgen");
22

3-
module.exports = (req, res) => {
3+
module.exports.getDuckById = (req, res) => {
44
const duckData = duckGenerator.parseV1String(req.params.id);
55
if (!duckData) return res.status(400).send("Bad Request.");
66

@@ -9,5 +9,4 @@ module.exports = (req, res) => {
99
return res.send(
1010
duckGenerator.formatSVG(duckGenerator.generateDuck(duckData)),
1111
);
12-
};
13-
12+
};

src/controllers/Duck/getZoomedDuck.js

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
const duckGenerator = require("duckgen");
2+
3+
module.exports.getZoomedDuck = (req, res) => {
4+
// Parse the String
5+
const duckData = duckGenerator.parseV1String(req.params.id);
6+
if (!duckData) res.status(400).send("Bad Request.");
7+
else {
8+
const zoomInt = parseInt(req.params.zoom);
9+
res.set("Content-Type", "image/svg+xml");
10+
11+
res.send(
12+
duckGenerator.formatSVG(duckGenerator.generateDuck(duckData), zoomInt),
13+
);
14+
}
15+
};

src/controllers/Duck/index.js

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
const { getDuck } = require("./getDuck");
2+
const { getDuckById } = require("./getDuckById");
3+
const { getZoomedDuck } = require("./getZoomedDuck");
4+
5+
module.exports.getDuck = getDuck;
6+
module.exports.getDuckById = getDuckById;
7+
module.exports.getZoomedDuck = getZoomedDuck;

src/routes/Events/createEvent.js renamed to src/controllers/Events/createEvent.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
const { missingParameters } = require("../../library/eventsUtils");
22

3-
module.exports = (req, res) => {
3+
module.exports.createEvent = (req, res) => {
44
if (!req.user) return res.status(400).send("Not Logged In.");
55

66
if (missingParameters(req)) return res.status(400).send("Not All Parameters Provided.");

src/routes/Events/deleteEvent.js renamed to src/controllers/Events/deleteEvent.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
module.exports = (req, res) => {
1+
module.exports.deleteEvent = (req, res) => {
22
if (!req.user) return res.status(403).send("Not Logged In.");
33
if (!req.params.id) return res.status(400).send("Not All Parameters Provided.");
44

src/routes/Events/editEvent.js renamed to src/controllers/Events/editEvent.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ const Events = require("../../models/Events");
22
const { missingParameters } = require("../../library/eventsUtils");
33
const { DetectVulgarWords } = require("../../library/VulgarTest");
44

5-
module.exports = (req, res) => {
5+
module.exports.editEvent = (req, res) => {
66
if (!req.user) return res.status(403).send("Not Logged In.");
77
if (missingParameters(req)) return res.status(400).send("Not All Parameters Provided.");
88

src/controllers/Events/index.js

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
const { createEvent } = require("./createEvent");
2+
const { deleteEvent } = require("./deleteEvent");
3+
const { editEvent } = require("./editEvent");
4+
const { listEvents } = require("./listEvents");
5+
const { queryEvent } = require("./queryEvent");
6+
const { rsvpEvent } = require("./rsvpEvent");
7+
const { unrsvpEvent } = require("./unrsvpEvent");
8+
9+
10+
11+
module.exports.createEvent = createEvent;
12+
module.exports.deleteEvent = deleteEvent;
13+
module.exports.editEvent = editEvent;
14+
module.exports.listEvents = listEvents;
15+
module.exports.queryEvent = queryEvent;
16+
module.exports.rsvpEvent = rsvpEvent;
17+
module.exports.unrsvpEvent = unrsvpEvent;

src/routes/Events/listEvents.js renamed to src/controllers/Events/listEvents.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
module.exports = (req, res) => {
1+
module.exports.listEvents = (req, res) => {
22
Events.findAll(
33
{},
44
)

src/routes/Events/queryEvent.js renamed to src/controllers/Events/queryEvent.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
module.exports = (req, res) => {
1+
module.exports.queryEvent = (req, res) => {
22
if (!req.params.id) return res.status(400).send("Not All Parameters Provided.");
33

44
Events.findOne(

src/routes/Events/rsvpEvent.js renamed to src/controllers/Events/rsvpEvent.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
const Events = require("../../models/Events");
22

3-
module.exports = (req, res) => {
3+
module.exports.rsvpEvent = (req, res) => {
44
if (!req.user) return res.status(403).send("Not Logged In.");
55
if (!req.params.id) return res.status(400).send("Not All Parameters Provided.");
66

src/routes/Events/unrsvpEvent.js renamed to src/controllers/Events/unrsvpEvent.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
module.exports = (req, res) => {
1+
module.exports.unrsvpEvent = (req, res) => {
22
if (!req.user) return res.status(403).send("Not Logged In.");
33
if (!req.params.id) return res.status(400).send("Not All Parameters Provided.");
44

src/controllers/Joke/getAllJokes.js

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
const jokeLib = require("./jokeFinder");
2+
3+
4+
module.exports.getAllJokes = (req, res) => {
5+
res.set("Access-Control-Allow-Origin", "*");
6+
return res.json(jokeLib.getAllJokes());
7+
};

src/controllers/Joke/getJokeById.js

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
const jokeLib = require("./jokeFinder");
2+
const { propertyUndefined } = require("../../library/validator");
3+
4+
5+
6+
module.exports.getJokeById= (req, res) => {
7+
res.set("Access-Control-Allow-Origin", "*");
8+
9+
if (propertyUndefined(req.params.id)) return res.status(400).send("ID Not Given.");
10+
11+
const numID = parseInt(req.params.id, 10);
12+
if (typeof numID !== "number") return res.status(400).send("Poorly Formatted ID.");
13+
14+
const joke = jokeLib.getJokeAtIndex(numID);
15+
if (!joke) return res.status(404).send("Joke Not Found.");
16+
17+
return res.send(joke);
18+
};

src/controllers/Joke/getJokeCount.js

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
const jokeLib = require("./jokeFinder");
2+
3+
module.exports.getJokeCount = (req, res) => {
4+
res.set("Access-Control-Allow-Origin", "*");
5+
return res.send(jokeLib.getJokeCount().toString());
6+
};

src/controllers/Joke/getRandomJoke.js

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
const jokeLib = require("./jokeFinder");
2+
3+
module.exports.getRandomJoke = (req, res) => {
4+
res.set("Access-Control-Allow-Origin", "*");
5+
return res.send(jokeLib.getRandomJoke());
6+
};

src/controllers/Joke/index.js

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
const {getAllJokes} = require("./getAllJokes");
2+
const {getJokeById} = require("./getJokeById");
3+
const {getJokeCount} = require("./getJokeCount");
4+
const {getRandomJoke} = require("./getRandomJoke");
5+
6+
7+
8+
module.exports.getAllJokes = getAllJokes;
9+
module.exports.getJokeById = getJokeById;
10+
module.exports.getJokeCount = getJokeCount;
11+
module.exports.getRandomJoke = getRandomJoke;
File renamed without changes.
File renamed without changes.

src/routes/User/Account/confirmEmail.js renamed to src/controllers/User/Account/confirmEmail.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
const { verify } = require("jsonwebtoken");
22

3-
module.exports = async (req, res) => {
3+
module.exports.confirmEmail = async (req, res) => {
44
try {
55

66
// get the user id from the jwt on the req.params

src/routes/User/Account/deleteAccount.js renamed to src/controllers/User/Account/deleteAccount.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
const { compare } = require("bcrypt");
22
const { handleError500 } = require("../../../library/errorHandler");
33

4-
module.exports = (req, res) => {
4+
module.exports.deleteAccount = (req, res) => {
55
if (!req.params.id) res.status(400).send("Not All Parameters Given.");
66
else if (!req.user) res.status(403).send("Not Logged In.");
77
else if (req.user.id !== req.params.id) res.status(401).send("Not Authorized.");

src/routes/User/Account/getStatus.js renamed to src/controllers/User/Account/getStatus.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
module.exports = (req, res) => {
1+
module.exports.getStatus = (req, res) => {
22
if (!req.params.id) return res.status(400).send("Not All Parameters Provided.");
33

44
User.findOne(
@@ -14,7 +14,7 @@ module.exports = (req, res) => {
1414

1515
res.set("Content-Type", "text/html");
1616

17-
return res.send(data.status);
17+
return res.send(JSON.stringify(data.status));
1818
})
1919
.catch((error) => {
2020
console.log(error);

src/routes/User/Account/login.js renamed to src/controllers/User/Account/login.js

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
1+
const { compare } = require("bcrypt");
2+
const { sign } = require("jsonwebtoken");
3+
4+
15
/**
26
* @module login
37
* HTTP POST Request on "/login" handler
48
* @param {Request} req - HTTP POST Request on "/login"
59
* @param {Response} res - HTTP Response
610
* @returns {Response} HTTP Response
711
* @description This route handler will listen to the client request,
8-
* check if all parameter are good, look if there is a user in the data base with those credentials
12+
* check if all parameter are good, look if there is a user in the database with the passed credentials
913
* then if all goes well, send back a cookie to the client.
1014
*/
11-
12-
const { compare } = require("bcrypt");
13-
const { sign } = require("jsonwebtoken");
14-
15-
module.exports = (req, res) => {
15+
module.exports.login = (req, res) => {
1616
if ((!req.body.email && !req.body.username) || !req.body.password) return res.status(400).send("Not All Parameters Given.");
1717

1818
User.findOne({

src/routes/User/Account/setData.js renamed to src/controllers/User/Account/setData.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
const vulgarTester = require("../../../library/VulgarTest");
22

3-
module.exports = (req, res) => {
3+
module.exports.setData = (req, res) => {
44
if (!req.user) return res.status(403).send("Not Logged In.");
55

66
const { biography, profilePicture, username } = req.body;

src/routes/User/Account/setPass.js renamed to src/controllers/User/Account/setPass.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ const {
44
} = require("bcrypt");
55
const { handleError500 } = require("../../../library/errorHandler");
66

7-
module.exports = (req, res) => {
7+
module.exports.setPass = (req, res) => {
88
if (!req.params.id || !req.body.password || !req.body.newPassword) return res.status(400).send("Not All Parameters Given.");
99

1010
if (!req.user) return res.status(403).send("Not Logged In.");

src/routes/User/Account/setStatus.js renamed to src/controllers/User/Account/setStatus.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
const vulgarTester = require("../../../library/VulgarTest");
22
const { handleError500 } = require("../../../library/errorHandler");
33

4-
module.exports = (req, res) => {
4+
module.exports.setStatus = (req, res) => {
55
if (!req.user) res.status(403).send("Not Logged In.");
66
else {
77
User.findOne(

src/routes/User/Account/signup.js renamed to src/controllers/User/Account/signup.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ function accountExists(userData) {
1515
return userData.length > 0;
1616
}
1717

18-
module.exports = async (req, res) => {
18+
module.exports.signup = async (req, res) => {
1919
const { username, email, password } = req.body;
2020
if (!username || !email || !password) res.status(400).send("Not All Parameters Provided.");
2121
else if (invalidPassword(password)) res.status(400).send("Password Not Corresponding The Format (between 4 to 14 characters, including both alphanumerical and non-alphanumerical symbols).");

src/routes/User/Block/blockUser.js renamed to src/controllers/User/Block/blockUser.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
module.exports = (req, res) => {
1+
module.exports.blockUser = (req, res) => {
22
if (!req.user) return res.status(403).send("Not Logged In.");
33
if (!req.params.id || !req.params.blockId) return res.status(400).send("Not All Parameters Provided.");
44

src/routes/User/Block/listBlocked.js renamed to src/controllers/User/Block/listBlocked.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
module.exports = (req, res) => {
1+
module.exports.listBlocked = (req, res) => {
22
if (!req.user) return res.status(403).send("Not Logged In.");
33
if (!req.params.id || !req.params.blockId) return res.status(400).send("Not All Parameters Provided.");
44

src/routes/User/Block/queryBlock.js renamed to src/controllers/User/Block/queryBlock.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
module.exports = (req, res) => {
1+
module.exports.queryBlock = (req, res) => {
22
if (!req.params.id || !req.params.blockId) return res.status(400).send("Not All Parameters Provided.");
33
if (!req.user) return res.status(403).send("Not Logged In");
44

src/routes/User/Block/unblockUser.js renamed to src/controllers/User/Block/unblockUser.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
const { handleError500 } = require("../../../library/errorHandler");
22

3-
module.exports = (req, res) => {
3+
module.exports.unblockUser = (req, res) => {
44
if (!req.user) res.status(403).send("Not Logged In.");
55
if (!req.params.id || !req.params.blockId) res.status(400).send("Not All Parameters Provided.");
66
else {

src/routes/User/Followers/followUser.js renamed to src/controllers/User/Followers/followUser.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
const { handleError500 } = require("../../../library/errorHandler");
22

3-
module.exports = (req, res) => {
3+
module.exports.followUser = (req, res) => {
44
if (!req.user) res.status(403).send("Not Logged In.");
55
else if (!req.params.id || !req.params.followerId) res.status(400).send("Not All Parameters Provided.");
66
else {

src/routes/User/Followers/listFollowers.js renamed to src/controllers/User/Followers/listFollowers.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
module.exports = (req, res) => {
1+
module.exports.listFollowers = (req, res) => {
22
if (!req.user) return res.status(403).send("Not Logged In.");
33
if (!req.params.id) return res.status(400).send("Not All Parameters Provided.");
44

src/routes/User/Followers/queryFollower.js renamed to src/controllers/User/Followers/queryFollower.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
module.exports = (req, res) => {
1+
module.exports.queryFollower = (req, res) => {
22
if (!req.params.id || !req.params.followerId) return res.status(400).send("Not All Parameters Provided.");
33
if (!req.user) return res.status(403).send("Not Logged In");
44

src/routes/User/Followers/unfollowUser.js renamed to src/controllers/User/Followers/unfollowUser.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
const { handleError500 } = require("../../../library/errorHandler");
22

3-
module.exports = (req, res) => {
3+
module.exports.unfollowUser = (req, res) => {
44
if (!req.user) res.status(403).send("Not Logged In.");
55
if (!req.params.id || !req.params.followerId) res.status(400).send("Not All Parameters Provided.");
66
else {

src/routes/User/countUsers.js renamed to src/controllers/User/Helpers/countUsers.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
module.exports = (req, res) => {
1+
module.exports.countUsers = (req, res) => {
22
User.findAll(
33
{},
44
)

0 commit comments

Comments
 (0)