Skip to content

Commit

Permalink
refactorin back end, and fixing Class Schema #50
Browse files Browse the repository at this point in the history
  • Loading branch information
dataskeptic committed Mar 27, 2023
1 parent e473ffd commit 89e6468
Show file tree
Hide file tree
Showing 7 changed files with 204 additions and 179 deletions.
36 changes: 36 additions & 0 deletions server/src/controllers/AvaliationControllers.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
import { Request, Response } from 'express';
import { AvaliationModel, AvaliationDocument } from '../model/Avaliation';

export async function createAvaliationController (req: Request, res: Response) {
try {
const { typeAvaliation, themeAvaliation, questions, initialAvaliation, finalAvaliation, time, points } = req.body;
console.log(req.body);
const NewAvaliation = new AvaliationModel({
typeAvaliation,
themeAvaliation,
questions,
initialAvaliation,
finalAvaliation,
time,
points,
});

const createAvaliation = await NewAvaliation.save();

res.status(201).json({ message: 'Form created successfully', createAvaliation });
} catch (error) {
console.error(error);
res.status(500).json({ message: 'Error creating form' });
}
}


export async function getAvaliationsController (req: Request, res: Response) {
try {
const Avaliations = await AvaliationModel.find();
res.status(200).json({ message: 'Avaliations found successfully', Avaliations });
} catch (error) {
console.error(error);
res.status(500).json({ message: 'Error finding Avaliations' });
}
}
33 changes: 33 additions & 0 deletions server/src/controllers/ClassControlers.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
import { Request, Response } from 'express';
import { Class, IClass } from '../model/Class';


export async function createClassController (req: Request, res: Response) {
try {
const { className, classSummary, professor, students } = req.body;

const newClass: IClass = new Class({
className,
classSummary,
professor,
students
});

const savedClass: IClass = await newClass.save();

res.status(201).json({ message: 'Form created successfully', savedClass});
} catch (err) {
console.error(err);
res.status(500).send('Server error');
}
}

export async function getClassesControler(req: Request, res: Response) {
try {
const classes: IClass[] = await Class.find({});
res.status(200).json({ classes });
} catch (err) {
console.error(err);
res.status(500).send('Server error');
}
}
112 changes: 112 additions & 0 deletions server/src/controllers/UsersControllers.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
import { Request, Response } from 'express';
import { Professor, IProfessor } from '../model/Professor';
import { Student, IStudent } from '../model/Student';


export async function createProfessorController (req: Request, res: Response){
try {
const { name, password, email, user } = req.body;

const newProfessor: IProfessor = new Professor({
name,
password,
email,
user,
});

const savedProfessor: IProfessor = await newProfessor.save();

res.status(201).json({ message: 'Professor created successfully', savedProfessor});
} catch (err) {
console.error(err);
res.status(500).send('Server error');
}
}

export async function getProfessorsController (req: Request, res: Response) {

try {
const Professors: IProfessor[] = await Professor.find({});

Professors.forEach((professor) => {
professor.password = '';
});

console.log(Professors);
res.status(200).json({ Professors });
} catch (err) {
console.error(err);
res.status(500).send('Server error');
}
}

export async function getProfessorByEmailController (req: Request, res: Response){
try {
const { email } = req.params;
const professor: IProfessor | null = await Professor.findOne({ email });
if (!professor) {
return res.status(404).json({ message: 'Professor not found' });
}
res.status(200).json({ professor });
} catch (err) {
console.error(err);
res.status(500).send('Server error');
}
}

export async function createStudentController (req: Request, res: Response) {

try {
const { name, password, email, user } = req.body;

const newStudent: IStudent = new Student({
name,
password,
email,
user,
});

const savedStudent: IStudent = await newStudent.save();

res.status(201).json({ message: 'Student created successfully', savedStudent});
} catch (err) {
console.error(err);
res.status(500).send('Server error');
}
}

export async function getStudentsController (req: Request, res: Response) {

try {
const Students: IStudent[] = await Student.find({});

Students.forEach((student) => {
student.password = '';
});

res.status(200).json({ Students });
} catch (err) {
console.error(err);
res.status(500).send('Server error');
}
}


export async function searchByEmailController (req: Request, res: Response){

try {
const { email } = req.query;

const professor: IProfessor | null = await Professor.findOne({ email });
const student: IStudent | null = await Student.findOne({ email });

if (professor || student) {
res.status(200).json({ professor, student });
} else {
res.status(404).json({ message: `No record found for email: ${email}` });
}
} catch (err) {
console.error(err);
res.status(500).send('Server error');
}
}
189 changes: 14 additions & 175 deletions server/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@ import { Professor, IProfessor } from './model/Professor';
import { Student, IStudent } from './model/Student';
import AvaliationResponseModel from './model/AvaliationResponse';

import { createAvaliationController, getAvaliationsController } from './controllers/AvaliationControllers';
import { createClassController, getClassesControler } from './controllers/ClassControlers';
import { createProfessorController, createStudentController, getProfessorByEmailController, getProfessorsController, getStudentsController, searchByEmailController } from './controllers/UsersControllers';

const app = express();
mongoose.set('strictQuery', false);
const PORT = 3000;
Expand All @@ -21,183 +25,18 @@ app.use(
);
app.use(express.json());


app.post('/createAvaliation', async (req: Request, res: Response) => {
try {
const { typeAvaliation, themeAvaliation, questions, initialAvaliation, finalAvaliation, time, points } = req.body;
console.log(req.body);
const NewAvaliation = new AvaliationModel({
typeAvaliation,
themeAvaliation,
questions,
initialAvaliation,
finalAvaliation,
time,
points,
});

const createAvaliation = await NewAvaliation.save();

res.status(201).json({ message: 'Form created successfully', createAvaliation });
} catch (error) {
console.error(error);
res.status(500).json({ message: 'Error creating form' });
}
});

app.get('/getAvaliations', async (req: Request, res: Response) => {
try {
const Avaliations = await AvaliationModel.find();
res.status(200).json({ message: 'Avaliations found successfully', Avaliations });
} catch (error) {
console.error(error);
res.status(500).json({ message: 'Error finding Avaliations' });
}
});

app.post('/getResponseAvaliation/:id}', async (req: Request, res: Response) => {
try {
const { _id, questions } = req.body;
const form = new AvaliationResponseModel({
_id,
questions
});

const createResponseAvaliation = await form.save();
res.status(201).json({ message: 'Form created successfully', createResponseAvaliation });
} catch (error) {
console.error(error);
res.status(500).json({ message: 'Error finding form' });
}
});

app.post('/createClass', async (req: Request, res: Response) => {
try {
const { className, classSummary } = req.body;

const newClass: IClass = new Class({
className,
classSummary,
});

const savedClass: IClass = await newClass.save();

res.status(201).json({ message: 'Form created successfully', savedClass});
} catch (err) {
console.error(err);
res.status(500).send('Server error');
}
});

app.get('/getClasses', async (req: Request, res: Response) => {
try {
const classes: IClass[] = await Class.find({});
res.status(200).json({ classes });
} catch (err) {
console.error(err);
res.status(500).send('Server error');
}
});



app.post('/createProfessor', async (req: Request, res: Response) => {
try {
const { name, password, email, user } = req.body;

const newProfessor: IProfessor = new Professor({
name,
password,
email,
user,
});

const savedProfessor: IProfessor = await newProfessor.save();

res.status(201).json({ message: 'Professor created successfully', savedProfessor});
} catch (err) {
console.error(err);
res.status(500).send('Server error');
}
});



app.get('/getProfessorByEmail/:email', async (req: Request, res: Response) => {
try {
const { email } = req.params;
const professor: IProfessor | null = await Professor.findOne({ email });
if (!professor) {
return res.status(404).json({ message: 'Professor not found' });
}
res.status(200).json({ professor });
} catch (err) {
console.error(err);
res.status(500).send('Server error');
}
});

app.get('/searchByEmail', async (req: Request, res: Response) => {
try {
const { email } = req.query;

const professor: IProfessor | null = await Professor.findOne({ email });
const student: IStudent | null = await Student.findOne({ email });

if (professor || student) {
res.status(200).json({ professor, student });
} else {
res.status(404).json({ message: `No record found for email: ${email}` });
}
} catch (err) {
console.error(err);
res.status(500).send('Server error');
}
});



app.post('/createStudent', async (req: Request, res: Response) => {
try {
const { name, password, email, user } = req.body;

const newStudent: IStudent = new Student({
name,
password,
email,
user,
});

const savedStudent: IStudent = await newStudent.save();

res.status(201).json({ message: 'Student created successfully', savedStudent});
} catch (err) {
console.error(err);
res.status(500).send('Server error');
}
});

app.get('/getProfessors', async (req: Request, res: Response) => {
try {
const Professors: IProfessor[] = await Professor.find({});
res.status(200).json({ Professors });
} catch (err) {
console.error(err);
res.status(500).send('Server error');
}
});


app.post('/createAvaliation', createAvaliationController)
app.get('/getAvaliations', getAvaliationsController)
app.post('/createClass', createClassController);
app.get('/getClasses', getClassesControler);
app.post('/createProfessor', createProfessorController);
app.get('/getProfessors', getProfessorsController);
app.get('/getProfessorByEmail/:email', getProfessorByEmailController)
app.post('/createStudent', createStudentController)
app.get('/getStudents', getStudentsController)
app.get('/searchByEmail', searchByEmailController)

app.get('/getStudents', async (req: Request, res: Response) => {
try {
const Students: IClass[] = await Student.find({});
res.status(200).json({ Students });
} catch (err) {
console.error(err);
res.status(500).send('Server error');
}
});


mongoose.connect(`${process.env.MONGO_URL}`).then(() => {
Expand Down
Loading

0 comments on commit 89e6468

Please sign in to comment.