11import { User } from "../interfaces/tables/user" ;
22import { createUser , updateUser , getUserByEmail , getUser } from "../crud/user" ;
33import { InsertResult } from "../interfaces/mysql" ;
4- import {
5- createEmail ,
6- updateEmail ,
7- getEmail ,
8- getUserPrimaryEmail
9- } from "../crud/email" ;
4+ import { createEmail , updateEmail , getEmail } from "../crud/email" ;
105import { mail } from "../helpers/mail" ;
116import {
127 emailVerificationToken ,
@@ -21,11 +16,22 @@ import { compare } from "bcrypt";
2116import { deleteSensitiveInfoUser } from "../helpers/utils" ;
2217import { createMembership } from "../crud/membership" ;
2318
24- export const login = async ( email : string , password : string ) => {
19+ export const login = async (
20+ email : string ,
21+ password : string ,
22+ locals : Locals
23+ ) => {
2524 const user = await getUserByEmail ( email , true ) ;
2625 if ( ! user . password ) throw new Error ( ErrorCode . MISSING_PASSWORD ) ;
2726 const correctPassword = await compare ( password , user . password ) ;
2827 if ( correctPassword ) {
28+ await createEvent (
29+ {
30+ userId : user . id ,
31+ type : EventType . AUTH_LOGIN
32+ } ,
33+ locals
34+ ) ;
2935 return await loginToken ( deleteSensitiveInfoUser ( user ) ) ;
3036 }
3137 throw new Error ( ErrorCode . INVALID_LOGIN ) ;
@@ -69,11 +75,19 @@ export const sendEmailVerification = async (
6975 return ;
7076} ;
7177
72- export const sendPasswordReset = async ( email : string ) => {
78+ export const sendPasswordReset = async ( email : string , locals : Locals ) => {
7379 const user = await getUserByEmail ( email ) ;
7480 if ( ! user . id ) throw new Error ( ErrorCode . USER_NOT_FOUND ) ;
7581 const token = await passwordResetToken ( user . id ) ;
76- return await mail ( email , "password-reset" , { name : user . name , token } ) ;
82+ await mail ( email , "password-reset" , { name : user . name , token } ) ;
83+ await createEvent (
84+ {
85+ userId : user . id ,
86+ type : EventType . AUTH_PASSWORD_RESET_REQUESTED
87+ } ,
88+ locals
89+ ) ;
90+ return ;
7791} ;
7892
7993export const verifyEmail = async ( token : string , locals : Locals ) => {
0 commit comments