From 9565d689e9ed87e9a53eda0347dc29bac01ab015 Mon Sep 17 00:00:00 2001
From: Janaina <jsk22@inf.ufpr.br>
Date: Thu, 6 Mar 2025 11:04:54 -0300
Subject: [PATCH] Issue #23/email-service

---
 .env.example                              |   2 +
 bun.lockb                                 | Bin 76818 -> 158123 bytes
 package.json                              |   5 +-
 src/db/repo/password-recovery.repo.ts     |  51 -------
 src/db/schema/index.ts                    |   6 -
 src/db/schema/password-recovery.schema.ts |  69 ---------
 src/db/schema/user.schema.ts              |   1 -
 src/db/seeds/resource.seed.ts             |   2 +-
 src/db/seeds/resourceStats.seed.ts        |   6 +
 src/mailer.ts                             |   9 ++
 src/routes/auth.route.ts                  | 165 ++++++++++------------
 src/routes/user.route.ts                  |   5 +-
 src/services/auth.service.ts              |  79 +++++++++++
 src/services/password.service.ts          | 139 ------------------
 src/static/mecred.svg                     |  32 +++++
 src/tests/preload-tests.ts                |   2 +-
 16 files changed, 214 insertions(+), 359 deletions(-)
 delete mode 100644 src/db/repo/password-recovery.repo.ts
 delete mode 100644 src/db/schema/password-recovery.schema.ts
 create mode 100644 src/mailer.ts
 delete mode 100644 src/services/password.service.ts
 create mode 100644 src/static/mecred.svg

diff --git a/.env.example b/.env.example
index 83dc1cc..cb44a37 100644
--- a/.env.example
+++ b/.env.example
@@ -2,6 +2,8 @@ NODE_ENV=development
 
 # db config
 DB_HOST=localhost
+MAILER_HOST=smtp.c3sl.ufpr.br
+MAILER_PORT=25
 DB_USER=postgres
 DB_PASSWORD=postgres
 DB_NAME=apex_db
diff --git a/bun.lockb b/bun.lockb
index eb973bacbb595524c04f0abd0000e6b6fc16a0d4..ed664d4f36f4331d4d53938047c366426f3f22f2 100755
GIT binary patch
literal 158123
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

delta 14582
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
Wq{Iqpt{86r<HuAdIbArDX$Anu5bzKH

diff --git a/package.json b/package.json
index a48e327..3611059 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
 {
   "name": "hono-backend",
   "scripts": {
-    "dev": "bun run --hot --watch src/index.ts",
+    "dev": "bun run --hot --watch src/index.ts --port=4000",
     "db:generate": "drizzle-kit generate",
     "db:migrate": "cross-env DB_MIGRATING=true bun run src/db/migrate.ts",
     "db:seed": "cross-env DB_SEEDING=true bun run src/db/seed.ts",
@@ -20,6 +20,9 @@
     "drizzle-zod": "^0.5.1",
     "file-type": "^20.1.0",
     "hono": "^4.4.8",
+    "hono-openapi": "^0.4.6",
+    "jwt-simple": "^0.5.6",
+    "nodemailer": "^6.10.0",
     "postgres": "^3.4.4",
     "reflect-metadata": "^0.2.2",
     "typedi": "^0.10.0",
diff --git a/src/db/repo/password-recovery.repo.ts b/src/db/repo/password-recovery.repo.ts
deleted file mode 100644
index bc2c4e9..0000000
--- a/src/db/repo/password-recovery.repo.ts
+++ /dev/null
@@ -1,51 +0,0 @@
-import { Service } from "typedi";
-import db from "@/db";
-import type { PasswordRecoveryInput, PasswordRecoveryModel, PasswordRecoveryUpdate } from "../schema/password-recovery.schema";
-import passwordRecoveryTable, { passwordRecoverySchemas } from "../schema/password-recovery.schema";
-import { eq } from "drizzle-orm";
-import { z } from "zod";
-
-@Service()
-export class PasswordRecoveryRepo{
-  async create(passTicket: PasswordRecoveryInput, tx?: db): Promise<PasswordRecoveryModel> {
-    const repo = tx ?? db
-
-    const [ret] = await repo
-    .insert(passwordRecoveryTable)
-    .values(passTicket)
-    .returning()
-
-    return passwordRecoverySchemas.model.parse(ret)
-  }
-  async update(resetTicket: PasswordRecoveryUpdate): Promise<PasswordRecoveryModel>{
-    const [ret] = await db
-      .update(passwordRecoveryTable)
-      .set(resetTicket)
-      .where(eq(passwordRecoveryTable.id, resetTicket.id))
-      .returning()
-
-      return passwordRecoverySchemas.model.parse(ret)
-  }
-  async findById(id: PasswordRecoveryModel['id']): Promise<PasswordRecoveryModel | null>{
-    const passTicket = await db.query.passwordRecoveryTable.findFirst({
-      where: eq(passwordRecoveryTable.id, id)
-    })
-    if (!passTicket) return null
-    return passwordRecoverySchemas.model.parse(passTicket)
-  }
-  async findByUserId(userId: PasswordRecoveryModel['userId']): Promise<PasswordRecoveryModel[] | null>{
-    const passTicket = await db.query.passwordRecoveryTable.findMany({
-      where: eq(passwordRecoveryTable.userId, userId)
-    })
-    if (!passTicket) return null
-    return z.array(passwordRecoverySchemas.model).parse(passTicket)
-  }
-  async delete(id: PasswordRecoveryModel['id']): Promise<PasswordRecoveryModel>{
-    const [ret] = await db
-    .delete(passwordRecoveryTable)
-    .where(eq(passwordRecoveryTable.id, id))
-    .returning()
-
-    return passwordRecoverySchemas.model.parse(ret)
-  }
-}
\ No newline at end of file
diff --git a/src/db/schema/index.ts b/src/db/schema/index.ts
index 574a14e..7975332 100644
--- a/src/db/schema/index.ts
+++ b/src/db/schema/index.ts
@@ -7,9 +7,6 @@ import submissionTable from './submission.schema'
 import licenseTable from './license.schema'
 import languageTable from './language.schema'
 import educationalStageTable from './educational-stage.schema'
-import passwordRecoveryTable, { 
-  passwordRecoveryTableRelations 
-} from './password-recovery.schema'
 import userStatsTable from './user-stats.schema'
 import userTable from './user.schema'
 import objectTypeTable from './object-type.schema'
@@ -49,8 +46,6 @@ export {
   licenseTable,
   languageTable,
   educationalStageTable,
-  passwordRecoveryTable,
-  passwordRecoveryTableRelations,
   objectTypeTable,
   roleTable,
   complaintTable,
@@ -79,7 +74,6 @@ export {
 
 export const tables = [
   userTable, 
-  passwordRecoveryTable,
   userStatsTable,
   resourceTable,
   resourceStatsTable,
diff --git a/src/db/schema/password-recovery.schema.ts b/src/db/schema/password-recovery.schema.ts
deleted file mode 100644
index 1a2c79c..0000000
--- a/src/db/schema/password-recovery.schema.ts
+++ /dev/null
@@ -1,69 +0,0 @@
-import { relations, sql } from "drizzle-orm";
-import { boolean, integer, pgTable, serial, timestamp, varchar } from "drizzle-orm/pg-core";
-import userTable from "./user.schema";
-import { createInsertSchema, createSelectSchema } from "drizzle-zod";
-import type { z } from "zod";
-
-const passwordRecoveryTable = pgTable('reset_tickets',{
-  id: serial('id').primaryKey()
-  .unique()
-  .notNull(),
-  userId: integer('user_id')
-    .references(() => userTable.id, {onDelete: 'cascade'})
-    .notNull(),
-  tokenHash: varchar('token_hash', {length: 255})
-    .notNull(),
-  expirationDate: timestamp('expiration_date', { mode: 'string'})
-    .notNull(),
-  tokenUsed: boolean('token_used')
-    .notNull()
-    .default(false),
-  validToken: boolean('valid_token')
-    .notNull()
-    .default(true),
-  createdAt: timestamp('created_at', {
-    mode: 'string',
-  })
-    .notNull()
-    .defaultNow(),
-  updatedAt: timestamp('updated_at', {
-    mode: 'string',
-  })
-    .notNull()
-    .defaultNow()
-    .$onUpdate(() => sql`current_timestamp`),
-
-})
-
-export const passwordRecoveryTableRelations = relations(
-  passwordRecoveryTable,
-  ({ one }) => ({
-    user: one(userTable, {
-      fields: [passwordRecoveryTable.userId],
-      references: [userTable.id]
-    })   
-  })
-)
-
-const passwordRecoveryModelSchema = createSelectSchema(passwordRecoveryTable)
-const passwordRecoveryDtoSchema = passwordRecoveryModelSchema.omit({
-  tokenHash: true
-})
-const passwordRecoveryInputSchema = createInsertSchema(passwordRecoveryTable)
-const passwordRecoveryUpdateSchema = passwordRecoveryInputSchema
-  .partial()
-  .required({ id: true })
-
-export type PasswordRecoveryModel = z.infer<typeof passwordRecoveryModelSchema>
-export type PasswordRecoveryDto = z.infer<typeof passwordRecoveryDtoSchema>
-export type PasswordRecoveryInput = z.infer<typeof passwordRecoveryInputSchema>
-export type PasswordRecoveryUpdate = z.infer<typeof passwordRecoveryUpdateSchema>
-
-export const passwordRecoverySchemas = {
-  model: passwordRecoveryModelSchema,
-  dto: passwordRecoveryDtoSchema,
-  input: passwordRecoveryInputSchema,
-  update: passwordRecoveryInputSchema
-}
-
-export default passwordRecoveryTable
\ No newline at end of file
diff --git a/src/db/schema/user.schema.ts b/src/db/schema/user.schema.ts
index f0b89c6..913f574 100644
--- a/src/db/schema/user.schema.ts
+++ b/src/db/schema/user.schema.ts
@@ -76,7 +76,6 @@ const userProfileSchema = userModelSchema.omit({
   deleted_at: true,
   reactivated_at: true,
   active: true,
-  
 })
 
 export type UserInput = z.infer<typeof userInputSchema>
diff --git a/src/db/seeds/resource.seed.ts b/src/db/seeds/resource.seed.ts
index 98cf82a..783883f 100644
--- a/src/db/seeds/resource.seed.ts
+++ b/src/db/seeds/resource.seed.ts
@@ -36,7 +36,7 @@ const resourceData: ResourceInput[] = [
         link: 'link 2',
         thumbnail: 'thumbnail 2',
         user_id: 1,
-        resource_stats_id: 2,
+        resource_stats_id: 3,
         object_type_id: 1,
         license_id: 1
     }
diff --git a/src/db/seeds/resourceStats.seed.ts b/src/db/seeds/resourceStats.seed.ts
index e592618..db8ed38 100644
--- a/src/db/seeds/resourceStats.seed.ts
+++ b/src/db/seeds/resourceStats.seed.ts
@@ -14,6 +14,12 @@ const statsResourceData: ResourceStatsInput[] = [
         shares: 0,
         score: '0'
     },
+    {
+        views: 0,
+        downloads: 0,
+        shares: 0,
+        score: '0'
+    },
     {
         views: 0,
         downloads: 0,
diff --git a/src/mailer.ts b/src/mailer.ts
new file mode 100644
index 0000000..f3881a1
--- /dev/null
+++ b/src/mailer.ts
@@ -0,0 +1,9 @@
+import nodemailer from 'nodemailer';
+
+/* cria o transportador de email */
+const transporter = nodemailer.createTransport({
+  host: process.env.MAILER_HOST,
+  port: +(process.env.MAILER_PORT as string)
+});
+
+export default transporter;
diff --git a/src/routes/auth.route.ts b/src/routes/auth.route.ts
index ce9b45b..6c8b726 100644
--- a/src/routes/auth.route.ts
+++ b/src/routes/auth.route.ts
@@ -1,20 +1,18 @@
 import { authSchema } from '@/db/repo/auth.repo'
-import type { PasswordRecoveryModel } from '@/db/schema/password-recovery.schema'
 import { userStatsSchemas } from '@/db/schema/user-stats.schema'
 import { userSchemas } from '@/db/schema/user.schema'
 import { AuthService } from '@/services/auth.service'
 import { HttpStatus, createApexError } from '@/services/error.service'
-import { PasswordRecoveryService } from '@/services/password.service'
 import { UserStatsService } from '@/services/user-stats.service'
 import { UserService } from '@/services/user.service'
 import { zValidator } from '@hono/zod-validator'
 import { Hono } from 'hono'
 import Container from 'typedi'
+import jwt from 'jwt-simple';
 
 const authService = Container.get(AuthService)
 const userService = Container.get(UserService)
 const userStatsService = Container.get(UserStatsService)
-const passwordRecoveryService = Container.get(PasswordRecoveryService)
 
 export const authRouter = new Hono().post(
   '/signin',
@@ -57,114 +55,103 @@ export const authRouter = new Hono().post(
       return c.text('could not create')
     }
 })
-.post('/request/:email',
+.post('/recoveryPassword/:id',
   async (c) => {
-    try{
-      const email: string = c.req.param('email')
-      const user = userSchemas.userDtoSchema.parse(
-        await userService.findByEmail(email)
-      )
+    try {
+      const id: number = +c.req.param('id')
+
+      const user = await userService.findById(id)
 
-      /*
-        * When a ticket is generated, the last one is deleted
-        */
-      const ticketList = await passwordRecoveryService.findByUserId(user.id)
-      if(ticketList?.length != 0){
-        const lastTicket = ticketList![ticketList!.length - 1]
-        if(lastTicket.validToken){
-          await passwordRecoveryService.delete(lastTicket.id)
-        }
-        
+      if (!user) {
+        return c.json(
+          createApexError({
+            status: 'error',
+            message: 'Usuário não encontrado',
+            code: HttpStatus.NOT_FOUND,
+            path: c.req.routePath,
+            suggestion: 'Verifique se o e-mail está correto',
+          }),
+          HttpStatus.NOT_FOUND
+        )
       }
-      const resetTicket = await passwordRecoveryService.create(user)
-      return c.json(resetTicket)
-
-      /**
-       * To-do: send email
-       * const subject = "Plataforma MEC de Recursos Educacionais - Redefinição de senha"
-       * 
-       * const content = passwordRecoveryService.emailTemplatePasswordRecovery(resetTicket);
-       * await emailService.sendEmail(user.email, subject, content)
-       * return c.json({
-       *   message: {
-       *     status: 'success',
-       *     message: 'email sent successfully',
-       *     code: HttpStatus.OK
-       *   }
-       * })
-      */
+
+      var payload = {
+        id: id,
+        email: user.email
+      };
+
+
+      var secret = user.password + '-' + user.createdAt;
+      //const resetTicket = await recoveryService.create(user)
+
+      var token = jwt.encode(payload, secret);
+
+      await authService.passwordRecoveryEmail(token, user.email, "Recuperação de senha", user.email)
+      return c.json({ message: 'E-mail de recuperação enviado com sucesso!' })
     } catch (e) {
+      console.error(e)
       return c.json(
         createApexError({
           status: 'error',
-          message: 'could not send recovery password email',
-          code: HttpStatus.BAD_REQUEST,
+          message: 'Erro ao processar solicitação',
+          code: HttpStatus.INTERNAL_SERVER_ERROR,
           path: c.req.routePath,
-          suggestion: 'check the input and try again',
+          suggestion: 'Tente novamente mais tarde',
         }),
-        HttpStatus.BAD_REQUEST
+        HttpStatus.INTERNAL_SERVER_ERROR
       )
     }
-})
+  }
+)
 .post(
-  '/reset', 
-//url preview: reset?email=admin%40admin.com&token=xEakn2HpEaH8Xvyz8fsntYvmHip8IVP0NZu7bWpjkEY&password=
+  '/reset/password-reset', 
+  zValidator('json', userSchemas.userUpdateSchema),
   async (c) => {
     try {
-      /* 
-        * Variable declaration section
-        */
-      const email = c.req.queries('email')
-      const password = c.req.queries('password')
-      const token = c.req.queries('token')
-      if(email == null || password == null|| token == null)
-        throw new Error();
-      const user = await userService.findByEmail(email[0])
-      if(user == null)
-        throw new Error();
-
-      const resetTickets = await passwordRecoveryService.findByUserId(user.id)
-      if(resetTickets == null)
-        throw new Error();
-
-      /*
-        * Find reset ticket in database
-        */
-      let resetTicket: PasswordRecoveryModel | any = null
-        resetTickets.forEach(element => {
-            if(element.tokenHash == token[0])
-                resetTicket = element
-        });
-
-      /*
-        * Check if the ticket is valid (expired, used, new ticket generated)
-        */
-      if(passwordRecoveryService.isNotValidTicket(resetTicket))
-        throw new Error();
-        
-      /*
-        * Set user new password and update it
-        */
-      user.password = password[0]
-      
-      const ret = userSchemas.userDtoSchema.parse(
-        await userService.update(user)
-      )
-              
-      await passwordRecoveryService.delete(resetTicket.id)
+      const input = await c.req.valid('json');
+      const emailArray = c.req.queries('email');
+      const token = c.req.queries('token')?.[0] ?? '';
+
+      if (!emailArray?.[0] || !token) {
+        throw new Error('Invalid request: missing email or token');
+      }
+
+      const email = emailArray[0];
+      const user = await userService.findByEmail(email);
+
+      if (!user) {
+        throw new Error('User not found');
+      }
 
-      return c.json({ user: ret })
+      const secret = user.password + '-' + String(user.createdAt);
+
+      // Decodifica o token e verifica a assinatura
+      let payload;
+      try {
+        payload = jwt.decode(token, secret);
+      } catch (error) {
+        throw new Error('Invalid or expired token');
+      }
+
+      // Atualiza a senha do usuário
+      user.password = String(input.password);
+      const updatedUser = await userService.update(user);
+
+      userSchemas.userDtoSchema.parse(updatedUser);
+
+      return c.json({ message: 'Password updated successfully' });
     } catch (e) {
       return c.json(
         createApexError({
           status: 'error',
-          message: 'could not send recovery password email',
+          message:  'Token expired',
           code: HttpStatus.BAD_REQUEST,
           path: c.req.routePath,
-          suggestion: 'check the input and try again',
+          suggestion: 'Check the input and try again',
         }),
         HttpStatus.BAD_REQUEST
-      )
+      );
     }
   }
-)
\ No newline at end of file
+);
+
diff --git a/src/routes/user.route.ts b/src/routes/user.route.ts
index 333803e..48372f8 100644
--- a/src/routes/user.route.ts
+++ b/src/routes/user.route.ts
@@ -8,6 +8,8 @@ import { createApexError, HttpStatus } from '@/services/error.service'
 import { followRelationSchemas } from '@/db/relations/followers.relation'
 import { UserStatsService } from '@/services/user-stats.service'
 import { FollowRelationService } from '@/services/follow.relation.service'
+import { UserRepo } from '@/db/repo/user.repo'
+import { PasswordRecoveryService } from '@/services/password.service'
 
 const service = Container.get(UserService)
 const followService = Container.get(FollowRelationService)
@@ -288,4 +290,5 @@ export const userRouter = honoWithJwt()
           HttpStatus.BAD_REQUEST
         )
       }
-    })  
+    })
+  
\ No newline at end of file
diff --git a/src/services/auth.service.ts b/src/services/auth.service.ts
index bf01c8b..d7c92e9 100644
--- a/src/services/auth.service.ts
+++ b/src/services/auth.service.ts
@@ -8,6 +8,7 @@ import {
   type AuthInput,
   type AuthPayload,
 } from '@/db/repo/auth.repo'
+import transporter from "@/mailer";
 
 @Service()
 export class AuthService {
@@ -31,4 +32,82 @@ export class AuthService {
 
     return token
   }
+
+   async passwordRecoveryEmail(resetTicket: string, receiver: string, subject: string,  userEmail: string) {
+      const token_link: string = `http://mecreddev:3002/novaSenha?token=${resetTicket}&email=${userEmail}`;
+      const text = `
+              <head>
+                  <style>
+  
+                      .container {
+                        display: block;
+                        text-align: left;
+                        background-color: rgb(240, 240, 240);
+                        width: 90%;
+                        margin: 0 auto;
+                        padding: 30px 30px;
+                        border-radius: 30%,
+                        font-family: Arial, Helvetica, sans-serif;
+                      }
+  
+                      button {
+                          background-color: #00bacc;
+                          color: white;
+                          border: none;
+                          border-radius: 5px;
+                          padding: 10px;
+                          font-size: 16px;
+                          cursor: pointer;
+                      }
+  
+                  .container_msg {
+                      text-align: left;	
+                          padding: 0px 20px 0px 20px;
+                          background-color: white;
+                      }
+  
+                      button:hover {
+                          background-color: rgb(7, 29, 65, 0.8);
+                      }
+                  span {
+                    color: #e74c3c;
+                    font-weight: bold;
+                  }
+  
+              </style>
+              </head>
+  
+              <body>
+                <div class="container" >
+                <a href="${process.env["URL"]}"></a>
+                  <h1 style="color:#00bacc; font-size: 30px; font-weight: 800; margin-top: 5px; margin-bottom: 5px">Recuperação de senha</h1>
+                <br>
+                <p>Este e-mail foi enviado para confirmar que você é o proprietário do endereço de e-mail fornecido no cadastro da MECRED. 
+                Essa etapa é importante para garantir a validade e segurança das informações enviadas. 
+                </p>
+                <p> Para criar uma nova senha, acesse: </p>
+                <a href="${token_link}"><button>Recupere sua senha</button></a>
+                <p style="margin-top:5px">
+                <br>
+                <span>Atenção:</span> caso você não tenha cadastrado uma conta na plataforma, por favor, ignore este e-mail. Nenhuma ação será realizada sem sua confirmação.
+                </p>
+                </div>
+               
+              </body>
+        `
+     
+      try {
+        const response = await transporter.sendMail({
+          from: "Não responda <no-reply@c3sl.ufpr.br>",
+          to: receiver,
+          subject: subject,
+          html: text
+        });
+        console.log("E-mail enviado:", response);
+        console.log(userEmail)
+      } catch (error) {
+        console.error("Erro ao enviar e-mail:", error);
+      }
+    }
+  
 }
diff --git a/src/services/password.service.ts b/src/services/password.service.ts
deleted file mode 100644
index 9ed0a64..0000000
--- a/src/services/password.service.ts
+++ /dev/null
@@ -1,139 +0,0 @@
-/*/import  * as nodemailer from 'nodemailer';
-import mailConfig from "./config";*/
-import { Inject, Service } from "typedi";
-import { PasswordRecoveryRepo } from '@/db/repo/password-recovery.repo';
-import type { PasswordRecoveryModel } from '@/db/schema/password-recovery.schema';
-import type db from '@/db';
-import type { UserDto } from '@/db/schema/user.schema';
-
-@Service()
-export class PasswordRecoveryService {
-    @Inject()
-    private readonly repo: PasswordRecoveryRepo
-    
-    isNotValidTicket(resetTicket: PasswordRecoveryModel): boolean {
-        
-        if(resetTicket == null) return true
-        const is_expired: boolean = Date.parse(resetTicket.expirationDate) <  Date.now()
-        if(!resetTicket.validToken || is_expired || resetTicket.tokenUsed)
-            return true
-        return false
-    }
-
-    generateToken(userEmail: string, tokenExpirationDate: string): string{
-        const hasher = new Bun.CryptoHasher("sha256")
-        const hashKey = userEmail.concat(tokenExpirationDate)
-        return hasher.update(hashKey).digest("base64")
-
-    }
-    
-    generateExpirationDate(): string {
-      const time_expire = new Date()
-      time_expire.setHours(time_expire.getHours() + 1)
-        
-      return time_expire.toLocaleString('pt-br', { timeZone: 'America/Sao_Paulo'})
-    }
-
-    
-    emailTemplatePasswordRecovery(resetTicket: PasswordRecoveryModel): string{
-        const recover_link: string = process.env["URL"] + '/reset-password/'+resetTicket.tokenHash
-        const token_link: string = recover_link + "?token=" + resetTicket.tokenHash
-        
-        const expirationDate = new Date(resetTicket.expirationDate)
-        expirationDate.setHours(expirationDate.getHours() - 1)
-        const requestedDate = expirationDate.toLocaleString('pt-br', { timeZone: 'America/Sao_Paulo'})
-        const text = `
-            <head>
-                <style>
-
-                    .container {
-                    display: block;
-                    text-align: center;
-                        background-color: rgb(240, 240, 240);
-                        box-shadow: 0 7px 29px 0 rgba(100, 100, 111, .2);
-                        width: 50%;
-                        margin: 0 auto;
-                        padding: 60px 20px;
-                        font-family: Arial, Helvetica, sans-serif;
-                    }
-
-                    button {
-                        background-color: rgb(7, 29, 65);
-                        color: white;
-                        border: none;
-                        border-radius: 5px;
-                        padding: 10px;
-                        font-size: 16px;
-                        cursor: pointer;
-                    }
-
-                .container_msg {
-                    text-align: center;	
-                        padding: 0px 20px 0px 20px;
-                        background-color: white;
-                    }
-
-                    button:hover {
-                        background-color: rgb(7, 29, 65, 0.8);
-                    }
-                </style>
-            </head>
-
-            <body>
-                <div class="container" >
-                <a href="${process.env["URL"]}"></a>
-                    <h1 style="color:rgb(7, 29, 65); font-size: 30px; font-weight: 800; margin-top: 10px;">Recuperação de senha</h1>
-                    <p>Recebemos uma requisição de recuperação de senha em </p>
-                <strong>${requestedDate}</strong>
-                    <br>
-                    <p> Para criar uma nova senha, acesse: </p>
-                    <br>
-                    <a href="${token_link}"><button>Recupere sua senha </button></a>
-                </div>
-            </body>
-
-	    `
-        // precisa pegar a logo do mecred
-        // <a href="${process.env["URL"]}"><img src="${process.env["URL"]}/static/media/PNLD_logo.c06d68e4.png" width="133" height="53" /></a>
-        return text
-    }
-
-    /*async sendEmail(receiver: string, subject: string, content: string): Promise<object>{
-        const transporter = nodemailer.createTransporter(mailConfig);
-        return await transporter.sendMail({
-        from: "Não Responda <no-reply@c3sl.ufpr.br>",
-        to: receiver,
-        subject: subject,
-        html: content
-     })      
-    }*/
-
-    async create(user: UserDto, tx?: db): Promise<PasswordRecoveryModel>{
-        const tokenExpirationDate = this.generateExpirationDate()
-        const newTokenHash = this.generateToken(user?.email, tokenExpirationDate)
-        const resetTicket = {
-            userId: user!.id,
-            tokenHash: newTokenHash,
-            expirationDate: tokenExpirationDate,
-            tokenUsed: false
-        }
-        return await this.repo.create(resetTicket, tx)
-    }
-
-    async findById(id: PasswordRecoveryModel['id']): Promise<PasswordRecoveryModel | null>{
-        return await this.repo.findById(id)
-    }
-
-    async findByUserId(userId: PasswordRecoveryModel['userId']): Promise<PasswordRecoveryModel[] | null>{
-        return await this.repo.findByUserId(userId)
-    }
-
-    async update(resetTicket: PasswordRecoveryModel): Promise<PasswordRecoveryModel>{
-        return await this.repo.update(resetTicket)
-    }
-
-    async delete(id: PasswordRecoveryModel['id']): Promise<PasswordRecoveryModel>{
-        return await this.repo.delete(id)
-    }
-
-}
\ No newline at end of file
diff --git a/src/static/mecred.svg b/src/static/mecred.svg
new file mode 100644
index 0000000..8ccfd67
--- /dev/null
+++ b/src/static/mecred.svg
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 226.73 45.26">
+  <defs>
+    <style>
+      .cls-1 {
+        fill: #ed6f24;
+      }
+
+      .cls-1, .cls-2, .cls-3, .cls-4 {
+        stroke-width: 0px;
+      }
+
+      .cls-2 {
+        fill: #56358c;
+      }
+
+      .cls-3 {
+        fill: #e62954;
+      }
+
+      .cls-4 {
+        fill: #00a3bb;
+      }
+    </style>
+  </defs>
+  <path class="cls-4" d="M68.21,25.82h-17.21v11.05h20.4v7.86h-30.6V.74h30.6v7.86h-20.4v9.56h17.21v7.65Z"/>
+  <path class="cls-4" d="M110.08,29.33h0c-.21,5.31-1.7,9.35-4.46,11.9-2.76,2.76-6.8,4.04-11.9,4.04s-9.56-1.7-12.75-5.1-4.89-7.65-4.89-12.96v-8.92c0-5.31,1.49-9.56,4.68-12.96,3.19-3.4,7.23-5.1,12.32-5.1s9.56,1.49,12.32,4.25,4.46,6.8,4.89,11.9v.21h-9.56c-.21-2.76-.85-4.89-1.91-6.38s-2.98-2.12-5.52-2.12c-2.34,0-4.04.85-5.31,2.76s-1.91,4.25-1.91,7.23v9.35c0,2.97.64,5.53,2.12,7.44s3.4,2.76,5.74,2.76,4.04-.64,5.1-1.91,1.49-3.4,1.7-6.16h9.35v-.21Z"/>
+  <path class="cls-1" d="M126.64,27.84v16.79h-10.2V.64h17c5.1,0,9.14,1.28,12.11,3.61s4.46,5.53,4.46,9.78c0,2.34-.64,4.25-1.7,5.95-1.28,1.7-2.97,2.97-5.31,4.04,2.76.85,4.67,2.12,5.74,3.82,1.28,1.7,1.7,4.04,1.7,6.59v2.76c0,1.06.21,2.55.43,3.82.43,1.49.85,2.55,1.7,3.19v.64h-10.62c-.85-.64-1.28-1.7-1.49-3.4-.21-1.49-.42-2.98-.42-4.46v-2.76c0-2.12-.64-3.61-1.7-4.89-1.06-1.06-2.76-1.7-4.89-1.7h-6.8v.21ZM126.64,19.98h6.8c2.12,0,3.61-.43,4.67-1.49,1.06-.85,1.7-2.34,1.7-4.04s-.64-3.19-1.7-4.25-2.76-1.7-4.67-1.7h-6.8v11.47Z"/>
+  <path class="cls-3" d="M184.87,25.82h-17.21v11.05h20.4v7.86h-30.6V.74h30.6v7.86h-20.4v9.56h17.21v7.65Z"/>
+  <path class="cls-2" d="M192.52,44.73V.74h15.94c5.1,0,9.56,1.7,12.96,5.1s5.31,7.65,5.31,12.96v7.86c0,5.31-1.7,9.56-5.31,12.96-3.4,3.4-7.86,5.1-12.96,5.1h-15.94ZM202.93,8.61v28.26h4.89c2.76,0,4.89-.85,6.38-2.76,1.49-1.91,2.34-4.25,2.34-7.44v-8.07c0-2.97-.85-5.53-2.34-7.44-1.49-1.91-3.61-2.76-6.38-2.76h-4.89v.21Z"/>
+  <polygon class="cls-4" points="25.93 .74 18.06 13.07 10.2 .74 0 .74 0 44.73 10.2 44.73 10.2 18.38 15.3 25.82 20.82 25.82 25.93 18.38 25.93 44.73 36.12 44.73 36.12 .74 25.93 .74"/>
+</svg>
\ No newline at end of file
diff --git a/src/tests/preload-tests.ts b/src/tests/preload-tests.ts
index f8838f5..7037d4c 100644
--- a/src/tests/preload-tests.ts
+++ b/src/tests/preload-tests.ts
@@ -2,7 +2,7 @@ import 'reflect-metadata'
 
 console.log('preloaded for tests')
 
-export const api = 'http://localhost:3000/api'
+export const api = 'http://localhost:4000/api'
 
 export const token =
   'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImZlNzcwMWJjLWNhZDItNDNkYi05ZjFiLWE3ZDhjM2I1Zjc0YiIsInVzZXJuYW1lIjoiYWRtaW4ifQ.Cd8ixLFseKLRidLTpBfHA1QLolwBFO2pzXHq9UtclWk'
-- 
GitLab