chore: cleanup env and type case
This commit is contained in:
parent
12bf2182dc
commit
da59f11bcc
1 changed files with 34 additions and 13 deletions
|
|
@ -3,8 +3,10 @@ import prisma from "../db";
|
||||||
import nodemailer from "nodemailer";
|
import nodemailer from "nodemailer";
|
||||||
import { notFoundError } from "../utils/error";
|
import { notFoundError } from "../utils/error";
|
||||||
import { RequestWithLineUser } from "../interfaces/user";
|
import { RequestWithLineUser } from "../interfaces/user";
|
||||||
|
import HttpError from "../interfaces/http-error";
|
||||||
|
import HttpStatus from "../interfaces/http-status";
|
||||||
|
|
||||||
type sendEmail = {
|
type SendEmail = {
|
||||||
email: string;
|
email: string;
|
||||||
} & ({ legalPersonNo: string } | { citizenId: string });
|
} & ({ legalPersonNo: string } | { citizenId: string });
|
||||||
|
|
||||||
|
|
@ -13,6 +15,8 @@ type VerificationPayload = {
|
||||||
otp: string;
|
otp: string;
|
||||||
} & ({ legalPersonNo: string } | { citizenId: string });
|
} & ({ legalPersonNo: string } | { citizenId: string });
|
||||||
|
|
||||||
|
let emailTransport: ReturnType<(typeof nodemailer)["createTransport"]>;
|
||||||
|
|
||||||
@Route("/api/v1/verification")
|
@Route("/api/v1/verification")
|
||||||
@Tags("Verification")
|
@Tags("Verification")
|
||||||
export class verificationController extends Controller {
|
export class verificationController extends Controller {
|
||||||
|
|
@ -23,7 +27,34 @@ export class verificationController extends Controller {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Post("/send-otp")
|
@Post("/send-otp")
|
||||||
public async sendOTP(@Body() body: sendEmail) {
|
public async sendOTP(@Body() body: SendEmail) {
|
||||||
|
if (
|
||||||
|
![
|
||||||
|
process.env.SMTP_HOST,
|
||||||
|
process.env.SMTP_PORT,
|
||||||
|
process.env.SMTP_USER,
|
||||||
|
process.env.SMTP_PASS,
|
||||||
|
].every(Boolean)
|
||||||
|
) {
|
||||||
|
throw new HttpError(
|
||||||
|
HttpStatus.PRECONDITION_FAILED,
|
||||||
|
"SMTP not configured",
|
||||||
|
"smtpNotConfigured",
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!emailTransport) {
|
||||||
|
emailTransport = nodemailer.createTransport({
|
||||||
|
host: process.env.SMTP_HOST!,
|
||||||
|
port: +process.env.SMTP_PORT!,
|
||||||
|
secure: false, // true for port 465, false for other ports
|
||||||
|
auth: {
|
||||||
|
user: process.env.SMTP_USER!,
|
||||||
|
pass: process.env.SMTP_PASS!,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
const generateOTP = Math.floor(100000 + Math.random() * 900000).toString();
|
const generateOTP = Math.floor(100000 + Math.random() * 900000).toString();
|
||||||
const expiresTime = new Date(Date.now() + 5 * 60 * 1000);
|
const expiresTime = new Date(Date.now() + 5 * 60 * 1000);
|
||||||
|
|
||||||
|
|
@ -48,17 +79,7 @@ export class verificationController extends Controller {
|
||||||
|
|
||||||
if (!dataCustomerBranch) throw notFoundError("Customer Branch");
|
if (!dataCustomerBranch) throw notFoundError("Customer Branch");
|
||||||
|
|
||||||
const fromData = nodemailer.createTransport({
|
await emailTransport.sendMail({
|
||||||
host: "smtp.gmail.com",
|
|
||||||
port: 587,
|
|
||||||
secure: false, // true for port 465, false for other ports
|
|
||||||
auth: {
|
|
||||||
user: process.env.SMTP_USER,
|
|
||||||
pass: process.env.SMTP_PASS,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
await fromData.sendMail({
|
|
||||||
from: process.env.SMTP_USER,
|
from: process.env.SMTP_USER,
|
||||||
to: body.email,
|
to: body.email,
|
||||||
subject: "Your OTP Code",
|
subject: "Your OTP Code",
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue