Files
leagues-tools/os-league-tools-master/src/client/hiscores-client.js
Sonderau 95063d4066 feat: add password reset functionality and email notifications
- 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.
2026-02-03 23:37:47 +00:00

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.',
});
}
);
}