Removed the need for it to alway use Passport ID
This commit is contained in:
@@ -58,30 +58,37 @@ export default function BatchCodeGenerator({user}: {user: User}) {
|
|||||||
if (filesContent.length > 0) {
|
if (filesContent.length > 0) {
|
||||||
const file = filesContent[0];
|
const file = filesContent[0];
|
||||||
readXlsxFile(file.content).then((rows) => {
|
readXlsxFile(file.content).then((rows) => {
|
||||||
const information = uniqBy(
|
try {
|
||||||
rows
|
const information = uniqBy(
|
||||||
.map((row) => {
|
rows
|
||||||
const [firstName, lastName, country, passport_id, email, ...phone] = row as string[];
|
.map((row) => {
|
||||||
return EMAIL_REGEX.test(email) && !users.map((u) => u.email).includes(email)
|
const [firstName, lastName, country, passport_id, email, ...phone] = row as string[];
|
||||||
? {
|
return EMAIL_REGEX.test(email) && !users.map((u) => u.email).includes(email)
|
||||||
email: email.toString(),
|
? {
|
||||||
name: `${firstName ?? ""} ${lastName ?? ""}`.trim(),
|
email: email.toString(),
|
||||||
passport_id: passport_id.toString(),
|
name: `${firstName ?? ""} ${lastName ?? ""}`.trim(),
|
||||||
}
|
passport_id: passport_id?.toString() || undefined,
|
||||||
: undefined;
|
}
|
||||||
})
|
: undefined;
|
||||||
.filter((x) => !!x) as typeof infos,
|
})
|
||||||
(x) => x.email,
|
.filter((x) => !!x) as typeof infos,
|
||||||
);
|
(x) => x.email,
|
||||||
|
);
|
||||||
|
|
||||||
if (information.length === 0) {
|
if (information.length === 0) {
|
||||||
|
toast.error(
|
||||||
|
"Please upload an Excel file containing user information, one per line! All already registered e-mails have also been ignored!",
|
||||||
|
);
|
||||||
|
return clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
setInfos(information);
|
||||||
|
} catch {
|
||||||
toast.error(
|
toast.error(
|
||||||
"Please upload an Excel file containing user information, one per line! All already registered e-mails have also been ignored!",
|
"Please upload an Excel file containing user information, one per line! All already registered e-mails have also been ignored!",
|
||||||
);
|
);
|
||||||
return clear();
|
return clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
setInfos(information);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ async function post(req: NextApiRequest, res: NextApiResponse) {
|
|||||||
const {type, codes, infos, expiryDate} = req.body as {
|
const {type, codes, infos, expiryDate} = req.body as {
|
||||||
type: Type;
|
type: Type;
|
||||||
codes: string[];
|
codes: string[];
|
||||||
infos?: {email: string; name: string; passport_id: string}[];
|
infos?: {email: string; name: string; passport_id?: string}[];
|
||||||
expiryDate: null | Date;
|
expiryDate: null | Date;
|
||||||
};
|
};
|
||||||
const permission = PERMISSIONS.generateCode[type];
|
const permission = PERMISSIONS.generateCode[type];
|
||||||
@@ -74,7 +74,7 @@ async function post(req: NextApiRequest, res: NextApiResponse) {
|
|||||||
|
|
||||||
if (infos && infos.length > index) {
|
if (infos && infos.length > index) {
|
||||||
const {email, name, passport_id} = infos[index];
|
const {email, name, passport_id} = infos[index];
|
||||||
await setDoc(codeRef, {email: email.trim(), name: name.trim(), passport_id: passport_id.trim()}, {merge: true});
|
await setDoc(codeRef, {email: email.trim(), name: name.trim(), ...(passport_id ? {passport_id: passport_id.trim()} : {})}, {merge: true});
|
||||||
|
|
||||||
const transport = prepareMailer();
|
const transport = prepareMailer();
|
||||||
const mailOptions = prepareMailOptions(
|
const mailOptions = prepareMailOptions(
|
||||||
|
|||||||
Reference in New Issue
Block a user