44 lines
1.0 KiB
JavaScript
44 lines
1.0 KiB
JavaScript
const fs = require('fs/promises');
|
|
const path = require('path');
|
|
|
|
const storageDir = path.resolve(process.cwd(), 'storage', 'auth');
|
|
const storageFile = path.join(storageDir, 'password-change-requests.json');
|
|
|
|
const readRequests = async () => {
|
|
try {
|
|
const raw = await fs.readFile(storageFile, 'utf8');
|
|
return JSON.parse(raw);
|
|
} catch (error) {
|
|
return {};
|
|
}
|
|
};
|
|
|
|
const writeRequests = async (data) => {
|
|
await fs.mkdir(storageDir, { recursive: true });
|
|
await fs.writeFile(storageFile, JSON.stringify(data, null, 2), 'utf8');
|
|
};
|
|
|
|
const saveRequest = async (token, data) => {
|
|
const current = await readRequests();
|
|
current[token] = data;
|
|
await writeRequests(current);
|
|
};
|
|
|
|
const findRequest = async (token) => {
|
|
const current = await readRequests();
|
|
return current[token] || null;
|
|
};
|
|
|
|
const deleteRequest = async (token) => {
|
|
const current = await readRequests();
|
|
if (!current[token]) return;
|
|
delete current[token];
|
|
await writeRequests(current);
|
|
};
|
|
|
|
module.exports = {
|
|
saveRequest,
|
|
findRequest,
|
|
deleteRequest,
|
|
};
|