Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .env
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,5 @@ POOL_IDLE=10000
DEV_DATABASE_URL = postgres://vfbpnizybjvlgp:08a8b3922e6539cca6cb733f87a344178c4d883f998c811323bdd447195913e5@ec2-54-160-96-70.compute-1.amazonaws.com:5432/ddv5ljhh18mgjh


#Authentification token secret
JWT_SECRET = autolibDZ
15 changes: 15 additions & 0 deletions app/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ import bodyParser from 'body-parser';
import db from './models/index';
import abonnementRouter from './routes/abonnement.route';
import locataireRouter from './routes/locataire.route';
import adminRouter from './routes/admin.route';
import agentRouter from './routes/agent.route';
import vehiculesRouter from './routes/vehicule.route';

dotenv.config();
Expand All @@ -19,15 +21,28 @@ app.use(bodyParser.json());

db.sequelize.sync();



//
app.use('/api/abonnement', abonnementRouter);

// Locataire Router
app.use('/api/locataire', locataireRouter);

// Administrator Router
app.use('/api/admin', adminRouter);

// Agent de maintenance Router
app.use('/api/agent', agentRouter);

// Vehicule Route
app.use('/api/vehicules', vehiculesRouter);

// Vehicule Route Of A Given Agent
app.use('/api/vehicules/agents/:id', vehiculesRouter);



//Home
app.use((req, res) => {
res.send('<h1>Welcome to AutolibDZ REST API</h1>');
Expand Down
117 changes: 117 additions & 0 deletions app/controllers/admin.controller.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
const db = require("../models");
const bcrypt = require('bcryptjs')
const Admin = db.administrateur;

// La creation d'un locataire (lors de l'inscription)
const createAdmin = async (req, res) => {
// Validate request
if (!req.body.nom || !req.body.prenom || !req.body.email || !req.body.motdepasse || !req.body.salaire) {
res.status(400).send({
message: "Content can not be empty!"
});
return;
}
const salt = await bcrypt.genSalt(10);
const mdp = await bcrypt.hash(req.body.motdepasse, salt);

const admin = {

nom: req.body.nom,
prenom: req.body.prenom,
email: req.body.email,
motDePasse: mdp,
salaire: req.body.salaire

};


// Enregistrer l'administrateur dans la BDD
try {
const data = await Admin.create(admin)
res.status(200).send({ success: true, message: `Admin ${admin.nom} ${admin.prenom} created successfully` });

} catch (err) {
res.status(500).send({
error: err.message || "Some error occurred while creating l'Administrateur."
});
}

};

//Retourner tout les locataires
const findAll = (req, res) => {
var condition = 1 === 1

Admin.findAll({ where: condition })
.then(data => {
if (data.length == 0) {
return res.status(400).send({
success: false,
message: "No Admins were found"
});
}
res.status(200).send({ success: true, data });
})
.catch(err => {
res.status(500).send({
message: err.message || "Some error occurred while retrieving administrateur."
});
});
};

const findOne = async (req, res) => {

Admin.findOne({ where: { idAdministrateur: req.params.id } })
.then(data => {
if (!data) {
return res.status(400).send({
success: false,
message: "Admin not found"
});
}
res.status(200).send({ success: true, data });
})
.catch(err => {
res.status(500).send({
message: err.message || "Some error occurred while retrieving the admin."
});
});
};
const updateAdmin = async (req, res) => {
if (req.body.motdepasse) {
const salt = await bcrypt.genSalt(10);
req.body.motDePasse = await bcrypt.hash(req.body.motdepasse, salt);
}
Admin.update(req.body, { where: { idAdministrateur: req.params.id } })
.then(result => {
res.status(200).send({
success: true,
message: `Admin updated successfully`
})
}).catch(err => {
res.status(400).send({
success: false,
message: err.message
})
})
}
const deleteAdmin = async (req, res) => {
Admin.destroy({ where: { idAdministrateur: req.params.id } }).then(result => {
res.status(200).send({
success: true,
message: `Admin deleted successfully`
})
}).catch(err => {
res.status(400).send({
success: false,
message: err.message
})
})
}
export default {
createAdmin,
findAll,
findOne,
updateAdmin,
deleteAdmin
}
115 changes: 115 additions & 0 deletions app/controllers/agent.controller.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
const db = require("../models");
const Agent = db.agent;
const bcrypt = require('bcryptjs')
// La creation d'un locataire (lors de l'inscription)
const createAgent = async (req, res) => {
// Validate request
if (!req.body.nom || !req.body.prenom || !req.body.email || !req.body.motdepasse || !req.body.salaire) {
res.status(400).send({
message: "Content can not be empty!"
});
return;
}
const salt = await bcrypt.genSalt(10);
const mdp = await bcrypt.hash(req.body.motdepasse, salt);

const agent = {
nom: req.body.nom,
prenom: req.body.prenom,
email: req.body.email,
motDePasse: mdp,
salaire: req.body.salaire

};


// Enregistrer le locataire dans la BDD
try {
const data = await Agent.create(agent)
res.status(200).send({ success: true, message: `Agent ${agent.nom} ${agent.prenom} created successfully` });

} catch (err) {
res.status(500).send({
error: err.message || "Some error occurred while creating the agent."
});
}

};

//Retourner tout les locataires
const findAll = (req, res) => {
var condition = 1 === 1

Agent.findAll({ where: condition })
.then(data => {
if (data.length == 0) {
return res.status(400).send({
success: false,
message: "No agents were found"
});
}
res.status(200).send(data);
})
.catch(err => {
res.status(500).send({
message: err.message || "Some error occurred while retrieving agents."
});
});
};

const findOne = async (req, res) => {

Agent.findOne({ where: { idAgentMaintenance: req.params.id } })
.then(data => {
if (!data) {
return res.status(400).send({
success: false,
message: "Agent not found"
});
}
res.status(200).send(data);
})
.catch(err => {
res.status(500).send({
message: err.message || "Some error occurred while retrieving agent."
});
});
};
const updateAgent = async (req, res) => {
if (req.body.motdepasse) {
const salt = await bcrypt.genSalt(10);
req.body.motDePasse = await bcrypt.hash(req.body.motdepasse, salt);
}
Agent.update(req.body, { where: { idAgentMaintenance: req.params.id } })
.then(result => {
res.status(200).send({
success: true,
message: `Agent ${req.body.nom} ${req.body.prenom} updated successfully`
})
}).catch(err => {
res.status(400).send({
success: false,
message: err.message
})
})
}
const deleteAgent = async (req, res) => {
Agent.destroy({ where: { idAgentMaintenance: req.params.id } }).then(result => {
res.status(200).send({
success: true,
message: `Agent deleted successfully`
})
}).catch(err => {
res.status(400).send({
success: false,
message: err.message
})
})
}
export default {
createAgent,
findAll,
findOne,
updateAgent,
deleteAgent
}
76 changes: 70 additions & 6 deletions app/controllers/locataire.controller.js
Original file line number Diff line number Diff line change
@@ -1,30 +1,35 @@
const db = require("../models");
const bcrypt = require("bcryptjs");
const Locataire = db.locataire;

// La creation d'un locataire (lors de l'inscription)
const createLocataire = async(req, res) => {
const createLocataire = async (req, res) => {
// Validate request
if (!req.body.nom || !req.body.prenom || !req.body.email || !req.body.motdepasse) {
res.status(400).send({
success: false,
message: "Content can not be empty!"
});
return;
}

const salt = await bcrypt.genSalt(10);
const mdp = await bcrypt.hash(req.body.motdepasse, salt);

const locataire = {

nom: req.body.nom,
prenom: req.body.prenom,
email: req.body.email,
motdepasse: req.body.motdepasse
motDePasse: mdp

};


// Enregistrer le locataire dans la BDD
try {
data = await Locataire.create(locataire)
res.send(data);
const data = await Locataire.create(locataire)
res.send({ success: true });

} catch (err) {
res.status(500).send({
Expand All @@ -40,16 +45,75 @@ const findAll = (req, res) => {

Locataire.findAll({ where: condition })
.then(data => {
res.send(data);
if (data.length == 0) {
return res.status(400).send({
success: false,
message: "No locataires were found"
});
}
res.status(200).send(data);
})
.catch(err => {
res.status(500).send({
message: err.message || "Some error occurred while retrieving locataire."
});
});
};

const findOne = async (req, res) => {

Locataire.findOne({ where: { idLocataire: req.params.id } })
.then(data => {
if (!data) {
return res.status(400).send({
message: "Locataire not found"
});
}
res.status(200).send(data);
})
.catch(err => {
res.status(500).send({
success: false,
message: err.message || "Some error occurred while retrieving locataire."
});
});
};
const updateLocataire = async (req, res) => {
if (req.body.motdepasse) {
const salt = await bcrypt.genSalt(10);
req.body.motDePasse = await bcrypt.hash(req.body.motdepasse, salt);
}

Locataire.update(req.body, { where: { idLocataire: req.params.id } })
.then(result => {
res.status(200).send({
success: true,
message: `Locataire updated successfully`
})
}).catch(err => {
res.status(400).send({
success: false,
message: err.message
})
})
}
const deleteLocataire = async (req, res) => {
Locataire.destroy({ where: { idLocataire: req.params.id } }).then(result => {
res.status(200).send({
success: true,
message: `Locataire deleted successfully`
})
}).catch(err => {
res.status(400).send({
success: false,
message: err.message
})
})
}
export default {
createLocataire,
findAll
findAll,
findOne,
updateLocataire,
deleteLocataire
}
Loading