Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
152f14a
Authentication implemented completely
salmanjensen1 Oct 11, 2022
22e4b5f
introduced gitignore
salmanjensen1 Oct 11, 2022
5a85dcc
modification to gitignore
salmanjensen1 Oct 11, 2022
950cf5e
excluded node modules
salmanjensen1 Oct 11, 2022
ff64fed
minor changes for merging with frontend
salmanjensen1 Oct 12, 2022
0677422
check get service
Parasite-231 Oct 14, 2022
27a1ab0
error handling for registration
salmanjensen1 Oct 14, 2022
6b2b96a
fixed services
acesuu Oct 17, 2022
965e861
added sub service feature
acesuu Oct 18, 2022
41128b8
Merge branch 'akib' of https://github.com/507S/MeSeeks-server into akib
acesuu Oct 18, 2022
918d1ed
protected routes with JWT
salmanjensen1 Oct 18, 2022
f5189e1
Separate worker login and registration
salmanjensen1 Oct 18, 2022
d6590d6
added delete category feature
acesuu Oct 18, 2022
8d981e8
added controllers
acesuu Oct 18, 2022
b34c661
added service controller
acesuu Oct 18, 2022
a456a97
minor repo changes
salmanjensen1 Oct 18, 2022
59ad4b8
before merging with salmans branch
acesuu Oct 18, 2022
e3d3138
Merge branch 'salman' of https://github.com/507S/MeSeeks-server into …
acesuu Oct 18, 2022
70c8f6f
minor auth changes
salmanjensen1 Oct 19, 2022
b160af5
merge into main
acesuu Oct 19, 2022
03ef993
Merge branch 'main' of https://github.com/507S/MeSeeks-server into akib
acesuu Oct 19, 2022
6f863ce
Merge branch 'akib' of https://github.com/507S/MeSeeks-server into sa…
salmanjensen1 Oct 19, 2022
ef777b0
merge
salmanjensen1 Oct 19, 2022
0ed1f89
added appeal message feature
acesuu Nov 11, 2022
d31a929
added user controller route for scheduling appointment by submitting …
salmanjensen1 Nov 12, 2022
0303d87
Merge branch 'salman' of https://github.com/507S/MeSeeks-server into …
acesuu Nov 13, 2022
a2fd824
keeping track
acesuu Nov 18, 2022
c298fa6
keeping track
acesuu Nov 18, 2022
5bd89a3
fixed image uploading issues
acesuu Dec 29, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 4 additions & 0 deletions .env
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# DB_CONNECTION="mongodb+srv://salmanjensen:sal@cluster0.yx3sl49.mongodb.net/cluster0"
# DB_CONNECTION2 = 'mongodb+srv://salmanjensen:sal@cluster0.yx3sl49.mongodb.net/?retryWrites=true&w=majority'
MONGO_URL="mongodb+srv://acesu:iutcse@cluster0.b7f93io.mongodb.net/meseeks"
SECRET = "BRUCEWAYNEISBATMAN"
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,9 @@ build/Release
# Dependency directories
node_modules/
jspm_packages/
client/
package-lock.json
package.json

# Snowpack dependency directory (https://snowpack.dev/)
web_modules/
Expand Down
113 changes: 113 additions & 0 deletions Controller/UserController.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
const asyncHandler = require("express-async-handler")
const User = require("../Model/userModel")
const generateToken = require("../Utility/JWT-imp");
const WorkList = require("../Model/workListSchema")
const registerUser = asyncHandler(async (req, res) => {
console.log(req.body)
const { firstname, lastname, username, email, password, confirmPassword } = req.body;

const usernameExists = await User.findOne({ username });
const emailExists = await User.findOne({email});

if (usernameExists) {
error="Username has already been taken"
res.status(404).send(error);
throw new Error(error);
}else if(emailExists){
error="An account already exists under this email"
res.status(404).send(error);
throw new Error(error);
}
else if(password.length < 6){
error="Password should be of minimum 6 characters"
res.status(404).send(error)
throw new Error(error)
}
else if(password !== confirmPassword){
error="Passwords do not match"
res.status(404).send(error)
throw new Error(error)
}


const user = await User.create({
firstname,
lastname,
username,
email,
password,
});

if (user) {
res.status(201).json({
_id: user._id,
username: user.username,
email: user.email,
token: generateToken(user._id),
});
} else {
res.status(400);
throw new Error("User cannot be created");
}
});

const authUser = asyncHandler(async (req, res) => {
console.log(req.body)
const { email, password } = req.body;

const user = await User.findOne({ email });

if (user && (await user.matchPassword(password))) {
res.json({
id: user._id,
username: user.username,
email: user.email,
token: generateToken(user._id),
});
} else {
error = "Invalid Email or Password"
res.status(401).send(error);
throw new Error(error);
}
});

const reserveUser = asyncHandler(async (req, res) => {
res.status(200).json({msg: 'you are authorized'})
})

const logoutUser = asyncHandler(async(req, res) => {
localStorage.clear();
})

const scheduleAppointment = asyncHandler(async(req,res)=>{
const {workerType, location, address, phone} = req.body.formData
const status = false
let list = req.body.workList

console.log(list)
console.log("***********")

const workListModel = await WorkList.create({
workerType,
location,
address,
phone,
list,
status
})
console.log(workListModel.list)

res.status(200).end()
})

const getListOfWork = asyncHandler(async(req,res)=>{
WorkList.find({ })
.then((data) => {
console.log('Data: ', data);
res.json(data);
})
.catch((error) => {
console.log('error: ', error);
});
});
module.exports = {registerUser, authUser, reserveUser, logoutUser, scheduleAppointment, getListOfWork };
104 changes: 104 additions & 0 deletions Controller/WorkerController.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
const asyncHandler = require("express-async-handler")
const Worker = require("../Model/workerModel")
const generateToken = require("../Utility/JWT-imp")

const registerWorker = asyncHandler(async (req, res) => {
console.log(req.body)
const { firstname, lastname, username, email, password, confirmPassword, phoneNumber, location, profession } = req.body;

const usernameExists = await Worker.findOne({ username });
const emailExists = await Worker.findOne({email});

if (usernameExists) {
error="Username has already been taken"
res.status(404).send(error);
throw new Error(error);
}else if(emailExists){
error="An account already exists under this email"
res.status(404).send(error);
throw new Error(error);
}
else if(password !== confirmPassword){
error="Passwords do not match"
res.status(404).send(error)
throw new Error(error)
}
else if(password.length< 6){
error="Password must be at least 6 characters"
res.status(404).send(error)
throw new Error(error)
}

const worker = await Worker.create({
firstname,
lastname,
username,
email,
password,
phoneNumber,
location,
profession
});

if (worker) {
res.status(201).json({
_id: worker._id,
username: worker.username,
email: worker.email,
token: generateToken(worker._id),
});
} else {
res.status(400);
throw new Error("Worker cannot be created");
}
});

const authWorker = asyncHandler(async (req, res) => {
console.log(req.body)
const { email, password } = req.body;

const worker = await Worker.findOne({ email });

if (worker && (await worker.matchPassword(password))) {
res.json({
id: worker._id,
username: worker.username,
email: worker.email,
token: generateToken(worker._id),
});
} else {
error = "Invalid Email or Password"
res.status(401).send(error);
throw new Error(error);
}
});


const updateWorkerProfile = asyncHandler(async (req, res) => {
console.log(req.body)
const worker = await Worker.findById(req.email);

if (worker) {
worker.name = req.body.name || worker.name;
worker.email = req.body.email || worker.email;
worker.phone = req.body.phoneNumber || worker.phoneNumber
if (req.body.password) {
worker.password = req.body.password;
}

const updatedworker = await worker.save();

res.json({
_id: updatedworker._id,
name: updatedworker.name,
email: updatedworker.email,
pic: updatedworker.pic,
isAdmin: updatedworker.isAdmin,
token: generateToken(updatedworker._id),
});
} else {
res.status(404);
throw new Error("worker Not Found");
}
});
module.exports = {registerWorker, authWorker, updateWorkerProfile}
62 changes: 62 additions & 0 deletions Controller/banController.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
const bannedWorker = require("../model/banWorkerSchema")
// const worker = require("../model/workerModsel")
const asyncHandler = require("express-async-handler");


const addBannedWorker = asyncHandler( async(req,res)=>{
// console.log(req.body);

const {name,reason} =req.body;
// const banned = true;

if(!name || !reason){
res.status(422).json("plz fill the data");
}
try{
const addBannedWorker = new bannedWorker({
name,reason
});

await addBannedWorker.save();
res.status(201).json(addBannedWorker);
console.log(addBannedWorker);
} catch(error){
res.status(422).send(error);
}
})
const getBannedWorker = asyncHandler(async(req,res) =>{
try{
const userdata = await bannedWorker.find();
res.status(201).json(userdata)
console.log(userdata);
} catch(error){
res.status(422).send(error);
}
})

const unbanWorker = asyncHandler(async(req,res)=>{
try{
const {id} = req.params;

const deletedService = await bannedWorker.findByIdAndDelete({_id:id});

console.log(deletedService);
res.status(201).json(deletedService);
}catch(error){
res.status(422).json(error);
}
})

// const findWorker = asyncHandler(async(req,res)=>{
// try{
// const{id} = req.body;

// const findWorker = await worker.find({_id:id});
// console.log(findWorker);
// res.status(201).json(findWorker);
// }catch(error){
// res.status(422).json(error);
// }
// })

module.exports={addBannedWorker,getBannedWorker,unbanWorker}
36 changes: 36 additions & 0 deletions Controller/msg/adminMsgController.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
const adminMsg = require("../../model/msg/adminMsgSchema")
// const worker = require("../model/workerModsel")
const asyncHandler = require("express-async-handler");

const sendAdminMsg = asyncHandler(async (req, res) => {
console.log(req.body);

const { name, msg } = req.body;

if (!name || !msg) {
res.status(422).json("plz fill the data");
}
else{
try {
const newMsg = new adminMsg({
name, msg
});
await newMsg.save();
res.status(201).json(newMsg);
console.log(newMsg);
} catch (error) {
res.status(422).send(error);
}
}
})
const getAdminMsg = asyncHandler(async(req,res) =>{
try{
const newMsg = await adminMsg.find();
res.status(201).json(newMsg)
console.log(newMsg);
} catch(error){
res.status(422).send(error);
}
})

module.exports={sendAdminMsg,getAdminMsg};
36 changes: 36 additions & 0 deletions Controller/msg/appealMsgController.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
const appealMsg = require("../../model/msg/appealMsgSchema")
// const worker = require("../model/workerModsel")
const asyncHandler = require("express-async-handler");

const sendAppealMsg = asyncHandler(async (req, res) => {
console.log(req.body);

const { name, msg } = req.body;

if (!name || !msg) {
res.status(422).json("plz fill the data");
}
else{
try {
const newMsg = new appealMsg({
name, msg
});
await newMsg.save();
res.status(201).json(newMsg);
console.log(newMsg);
} catch (error) {
res.status(422).send(error);
}
}
})
const getAppealMsg = asyncHandler(async(req,res) =>{
try{
const newMsg = await appealMsg.find();
res.status(201).json(newMsg)
console.log(newMsg);
} catch(error){
res.status(422).send(error);
}
})

module.exports={sendAppealMsg,getAppealMsg};
Loading