Added cache busting option for devs
All checks were successful
Pull Request CI / Merge Check (pull_request) Successful in 3m44s

This commit is contained in:
2026-03-08 10:34:29 -04:00
parent ef3cbbf370
commit 0cc327a9c4
7 changed files with 117 additions and 2 deletions

View File

@@ -7,7 +7,7 @@ import { requireLogin, requireMemberState, requireRole } from '../middleware/aut
import { getUserActiveLOA } from '../services/db/loaService';
import { getAllMembersLite, getMemberSettings, getMembersFull, getMembersLite, getUserData, getUserState, setUserSettings, getFilteredMembers, setUserState, getLastNonSuspendedState } from '../services/db/memberService';
import { getUserRoles, stripUserRoles } from '../services/db/rolesService';
import { memberSettings, MemberState, myData } from '@app/shared/types/member';
import { memberSettings, MemberState, myData, UserCacheBustResult } from '@app/shared/types/member';
import { Discharge } from '@app/shared/schemas/dischargeSchema';
import { Performance } from 'perf_hooks';
@@ -211,6 +211,32 @@ router.post('/full/bulk', async (req: Request, res: Response) => {
}
})
router.post('/cache/user/bust', [requireLogin, requireMemberState(MemberState.Member), requireRole('dev')], async (req: Request, res: Response) => {
try {
const clearedEntries = memberCache.Clear();
const payload: UserCacheBustResult = {
success: true,
clearedEntries,
bustedAt: new Date().toISOString(),
};
logger.info('app', 'User cache manually busted', {
actor: req.user.id,
clearedEntries,
});
return res.status(200).json(payload);
} catch (error) {
logger.error('app', 'Failed to bust user cache', {
caller: req.user?.id,
error: error instanceof Error ? error.message : String(error),
stack: error instanceof Error ? error.stack : undefined,
});
return res.status(500).json({ error: 'Failed to bust user cache' });
}
})
router.get('/:id', [requireLogin], async (req, res) => {
const userId = req.params.id;