Added cache busting option for devs
All checks were successful
Pull Request CI / Merge Check (pull_request) Successful in 3m44s
All checks were successful
Pull Request CI / Merge Check (pull_request) Successful in 3m44s
This commit is contained in:
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user