From d0af2ab104f776600cbdfad2a65e72f57ca8256d Mon Sep 17 00:00:00 2001
From: Eduardo Mathias <ems19@inf.ufpr.br>
Date: Wed, 14 Jun 2023 10:22:30 -0300
Subject: [PATCH] [FIX] Api CheckPassword

---
 src/libs/middlewares/oauth2.js   |  5 ++-
 src/libs/middlewares/passport.js |  2 +-
 src/libs/routes_v1/activity.js   | 74 ++++++++++++++++++--------------
 src/libs/routes_v1/api.js        |  5 +++
 4 files changed, 51 insertions(+), 35 deletions(-)

diff --git a/src/libs/middlewares/oauth2.js b/src/libs/middlewares/oauth2.js
index 672c203e..cc9eaab0 100644
--- a/src/libs/middlewares/oauth2.js
+++ b/src/libs/middlewares/oauth2.js
@@ -54,14 +54,15 @@ let generateTokens = (userId, clientId, done) => {
 
 };
 
-
+// Exchange username & password for access token.
 aserver.exchange(oauth2orize.exchange.password(function(client, username, password, scope, done) {
     User.findOne({ 
       where: {email:username} 
     }).then(function(user) {
-      if(user == null){
+      if(user == null|| !user.checkPassword(password)){
         return done(null, false);
       }
+
       if(user.dataValues.origin != client.client_secret){
         console.log("Erro de client_secret");
         return done(null, false);
diff --git a/src/libs/middlewares/passport.js b/src/libs/middlewares/passport.js
index a63cd150..7e8d5120 100644
--- a/src/libs/middlewares/passport.js
+++ b/src/libs/middlewares/passport.js
@@ -20,7 +20,7 @@ passport.use(new ClientPasswordStrategy(
                 return done(null, false);
             }
             if (client.client_secret !== client_secret) {
-                console.log("Erro de geracao Chave Secreta");
+                console.log("Erro de Chave Secreta");
                 return done(null, false);
             }
             return done(null, client);
diff --git a/src/libs/routes_v1/activity.js b/src/libs/routes_v1/activity.js
index 87ba5d1e..9467021f 100644
--- a/src/libs/routes_v1/activity.js
+++ b/src/libs/routes_v1/activity.js
@@ -99,19 +99,22 @@ activityApp.get('/:id', (req, res, next) => {
 }, response('activity'));
 
 activityApp.post('/', async (req, res, next) => {
-  let data = JSON.parse(req.body.data);
-  let pb = await Publication.create({
+  console.log(req.body);
+  let act = await Activity.create({
     id: 0,
-    filter: data.categoria,
-    title: data.title,
-    authors: data.autores,
-    organization: data.organizacao,
-    year: data.ano,
-    text: data.texto,
-    link: data.link,
-    upload: _file_id,
-    is_draft: data.rascunho,
-    is_homepage: data.homepage
+    type:req.body.tipo,
+    title: req.body.titulo,
+    subtitle: req.body.subtitulo,
+    date: req.body.dataDePostagem,
+    authors:req.body.autor,
+    text: req.body.texto,
+    name_headline: req.body.nome,
+    resume_headline: req.body.resumo,
+    date_headline: req.body.dataAtividade,
+    local_headline: req.body.local,
+    additional_headline: req.body.informacoes,
+    is_draft: req.body.rascunho,
+    is_headline: req.body.is_headline
   }).catch(function (err) {
     log.error(err);
     let errors = [];
@@ -123,54 +126,61 @@ activityApp.post('/', async (req, res, next) => {
     return res.json({ err, errors });
     // handle error;
   });
-  req.result = pb.toJSON();
+  if(!act){
+    console.log("AA");
+  }
+  req.result = act.toJSON();
   next();
-}, response('publication'));
+}, response('activity'));
 
 activityApp.put('/:id', passport.authenticate('bearer', { session: false }), async (req, res, next) => {
-  let pb = await Publication.findByPk(req.params.id).catch(function (err) {
+  let act = await Activity.findByPk(req.params.id).catch(function (err) {
     if (err) {
       log.error(err);
       return next({ err });
     }
   })
-  if (!pb) {
+  if (!act) {
     res.statusCode = 404;
     return next({
       err: {
-        message: 'Publicação não encontrada'
+        message: 'Atividade não encontrada'
       }
     });
   }
-  pb.filter = req.body.categoria || pb.filter;
-  pb.title = req.body.title || pb.title;
-  pb.authors = req.body.autores || pb.authors;
-  pb.organization= req.body.organizacao || pb.organization;
-  pb.year= req.body.ano || pb.year;
-  pb.text= req.body.texto || pb.text;
-  pb.link= req.body.link || pb.link;
-  pb.upload= req.body.upload || pb.upload;
-  pb.is_homepage= req.body.homepage || pb.is_homepage;
-
-  pb.save().catch(err => {
+  act.type = req.body.type || act.type;
+  act.title = req.body.title || act.title;
+  act.subtitle = req.body.subtitle || act.subtitle;
+  act.date = req.body.date || act.date;
+  act.authors = req.body.autores || act.authors;
+  act.text= req.body.text || act.text;
+  act.name_headline= req.body.name_headline || act.name_headline;
+  act.resume_headline= req.body.resume_headline || act.resume_headline;
+  act.date_headline= req.body.date_headline || act.date_headline;
+  act.local_headline= req.body.local_headline || act.local_headline;
+  act.additional_headline= req.body.additional_headline || act.additional_headline;
+  act.is_draft= req.body.is_draft || act.is_draft;
+  act.is_headline= req.body.is_headline || act.is_headline;
+
+  act.save().catch(err => {
     if (err) {
       log.error(err);
       return next({ message: 'Erro ao atualizar publicacao' });
     }
   })
-  let p = p.toJSON();
-  res.json({ publication: p });
+  let activity = act.toJSON();
+  res.json({ activity: activity});
 
 });
 
 activityApp.delete('/:id', passport.authenticate('bearer', { session: false }), async (req, res, next) => {
-  await Publication.destroy({where:{id:req.params.id}}).catch(function (err) {
+  await Activity.destroy({where:{id:req.params.id}}).catch(function (err) {
     if (err) {
         log.error(err);
         return next({ err });
     }
 });
-  return next({ msg: 'Publication Deleted', status: 200 });
+  return next({ msg: 'Activity Deleted', status: 200 });
 });
 
 module.exports = activityApp;
diff --git a/src/libs/routes_v1/api.js b/src/libs/routes_v1/api.js
index 50941a94..75a8e663 100644
--- a/src/libs/routes_v1/api.js
+++ b/src/libs/routes_v1/api.js
@@ -139,6 +139,8 @@ const courseStudents = require(`${libs}/routes_v1/courseStudents`);
 
 const publication = require(`${libs}/routes_v1/publication`);
 
+const activity = require(`${libs}/routes_v1/activity`);
+
 api.get('/', (req, res) => {
     res.json({ msg: 'SimCAQ API v1 is running' });
 });
@@ -202,4 +204,7 @@ api.use('/course_students', courseStudents);
 //Publication 
 api.use('/publication', publication);
 
+//Activity
+api.use('/activity', activity);
+
 module.exports = api;
-- 
GitLab