diff --git a/src/controllers/usuarios.controller.js b/src/controllers/usuarios.controller.js index e69de29..f6f25f6 100644 --- a/src/controllers/usuarios.controller.js +++ b/src/controllers/usuarios.controller.js @@ -0,0 +1,66 @@ +import usuario from "../models/Usuario"; + +class UsuarioController +{ + //Criar usuario + static async novoUsuario(req, res){ + try{ + const novoUsuario = await usuario.create(req.body); + res.status(201).json({message: "usuario criado com sucesso", usuario: novoUsuario}); + }catch (erro) { + res.status(500).json({message: `${erro.message} - falha ao cadastrar usuario`}); + } + }; + + + // puxar todos os usuarios + async buscarUsuarios(req, res) + { + try { + const usuarios = await usuario.find({}); + res.status(200).json(usuarios); + } catch (error) { + res.status(500).json({ message: `${error.message} - Falha ao buscar usuários` }); + } + }; + + // Buscar usuario pelo ID + async buscarUsuarioPorId(req, res) + { + try { + const id = req.params.id; + const usuarioPesquisado = await usuario.findById(id); + res.status(200).json(usuarioPesquisado); + } catch (error) { + res.status(500).json({ message: `${error.message} - Falha ao buscar usuário` }); + } + }; + + //atualizar usuario + static async atualizarUsuario(req, res) + { + try + { + const id = req.params.id; + await usuario.findByIdAndUpdate(id, req.body); + res.status(200).json({message: "usuario atualizado"}); + }catch(erro){ + res.status(500).json({message: `${erro.message} - falha na atualização` }); + } + }; + + static async excluirUsuario(req, res) + { + try + { + const id = req.params.id; + await usuario.findByIdAndDelete(id); + res.status(200).json({message: "Usuario deletado com sucesso"}); + }catch(erro){ + res.status(500).json({message: `${erro.message} - falha ao deletar`}) + } + }; + +}; + +export default UsuarioController; \ No newline at end of file diff --git a/src/models/Usuario.js b/src/models/Usuario.js index 7e259ed..cd2d595 100644 --- a/src/models/Usuario.js +++ b/src/models/Usuario.js @@ -5,9 +5,12 @@ const usuarioSchema = new mongoose.Schema({ nome: {type: String, required: true}, nick: {type: String, required: true}, email: {type: String, required: true}, - senha: {type: String, required: true} - /*localização - tipo de usuario*/ + senha: {type: String, required: true}, + localizacao: { + cidade: { type: String }, + estado: { type: String }, + }, + tipoUsuario: { type: String, enum: ['Professor', 'Aluno'], default: 'Aluno' } }, {versionKey: false}); const usuario = mongoose.model("usuarios", usuarioSchema); diff --git a/src/routes/usuario.route.js b/src/routes/usuario.route.js index e69de29..b512888 100644 --- a/src/routes/usuario.route.js +++ b/src/routes/usuario.route.js @@ -0,0 +1,11 @@ +import express from "express"; +import UsuarioController from "../controllers/usuarios.controller"; + +const routes = express.Router(); +routes.post("/Usuario", UsuarioController.novoUsuario); +routes.get("/Usuario", UsuarioController.buscarUsuarios); +routes.get("/Usuario/:id", UsuarioController.buscarUsuarioPorId); +routes.put("/Usuario/:id", UsuarioController.atualizarUsuario); +routes.delete("/Usuario/:id", UsuarioController.excluirUsuario); + +export default routes; \ No newline at end of file