A persistent cache for user details (get_user_details()) must be implemented under the directory: data/cache/users.
Cache Requirements
The cache should store information for:
- All users present in the route data.
- Any user who presses the Take It button.
Cached user data must be refreshed every 10 minutes via a new Queue command.
The cache will replace the current mechanism for resolving the full user name in existing incidents when Take It is pressed (function fetch_and_assign_user_name()).
At startup, IMPulse must not request user details information (function _generate_users()).
Directory Structure (e.g.)
data/
└ cache/
└ users/
<user_id>.json
User fields we should store:
- update_at
- username
- email
- first_name
- last_name
- timezone
Config
No changes are required in configuration files or environment variables.