- Implemented forgot password and reset password routes in the backend. - Added email sending capabilities using Nodemailer for password reset requests. - Created ResetPassword page in the frontend for users to reset their passwords. - Updated user model to include reset token and expiry fields. - Integrated hiscores API with caching mechanism for improved performance. - Enhanced authentication modal to include forgot password option. - Updated environment configuration for SMTP settings.
46 lines
1.2 KiB
JavaScript
46 lines
1.2 KiB
JavaScript
// Use relative URLs when REACT_APP_RELDO_URL is not set (same-origin via nginx)
|
|
const BASE_URL = process.env.REACT_APP_RELDO_URL || '';
|
|
|
|
export default async function getHiscores(rsn, handleResultCallback) {
|
|
if (!rsn) {
|
|
handleResultCallback({
|
|
success: false,
|
|
message: 'No username provided',
|
|
});
|
|
}
|
|
|
|
const url = `${BASE_URL}/api/hiscores/${rsn}`;
|
|
await fetch(url)
|
|
.then(res => res.json())
|
|
.then(
|
|
result => {
|
|
let hiscores;
|
|
if (result?.status === 404) {
|
|
hiscores = {
|
|
success: false,
|
|
message: `Username "${rsn}" not found.`,
|
|
};
|
|
} else if (!result || result.error) {
|
|
console.warn(result.error);
|
|
hiscores = {
|
|
success: false,
|
|
message: 'Unable to retrieve hiscores, please try again later.',
|
|
};
|
|
} else {
|
|
hiscores = {
|
|
success: true,
|
|
hiscores: result,
|
|
};
|
|
}
|
|
handleResultCallback(hiscores);
|
|
},
|
|
error => {
|
|
console.warn(error);
|
|
handleResultCallback({
|
|
success: false,
|
|
message: 'Unable to retrieve hiscores, please try again later.',
|
|
});
|
|
}
|
|
);
|
|
}
|