api: dispatch activation email code on demand
Pedro Lucas Porcellis porcellis@eletrotupi.com · 4 months ago
76614c011875ef7dcbd6e470618dfb9e0adf74f2 Browse filesParents
4e8e478Changed files
1
Additions
+9
Deletions
-6
api/src/controllers/auth.ts
1 1
import { Request, Response, NextFunction } from 'express';
2 2
import { AuthenticatedRequest } from '@app/middleware/auth';
3 3
4 4
import {
5 5
login,
135 135
email: payload.email,
136 136
user: {
137 137
firstName: user.firstName,
138 138
email: user.email,
139 139
lastName: user.lastName,
140 -
updatedAt: user.updatedAt
140 +
updatedAt: user.updatedAt,
141 +
active: user.active,
142 +
avatarKey: user.avatarKey,
143 +
avatarURL: user.avatarURL
141 144
}
142 145
});
143 146
} catch (err: any) {
144 147
if (err.name === 'JsonWebTokenError' || err.name === 'TokenExpiredError') {
145 148
return res.status(401).json({ error: 'Invalid or expired token' });
190 193
.join("");
191 194
192 195
const expiresAt = addMinutes(new Date(), 5);
193 196
await storeActivationCode(user.id, code, expiresAt);
194 197
195 -
//const mailQueue = getQueue('mail');
196 -
//const job = await mailQueue.add(MailJobName.ActivateAccountEmail, {
197 -
// userId: user.id,
198 -
// code: code
199 -
//});
198 +
const mailQueue = getQueue('mail');
199 +
const job = await mailQueue.add(MailJobName.ActivateAccountEmail, {
200 +
userId: user.id,
201 +
code: code
202 +
});
200 203
201 204
res.json({
202 205
user
203 206
})
204 207
} catch (err: any) {
205 208
next(err);
206 209
}
207 210
}
208 211
};