// Copyright (c) 2026 Gordon Bolton. MIT License. /** * Helper functions for extracting user information from Ombi API responses. * The Ombi API returns requestedUser as an OmbiStore.Entities.OmbiUser object, * not a string, so we need to extract the username from the object. */ /** * Extracts the username from an Ombi request object. * Handles both the OmbiUser object format and legacy string format. * * @param {Object} request - The Ombi request object * @returns {string} The extracted username, or empty string if not found */ function extractRequestedUser(request) { if (!request) return ''; // Handle object format: OmbiStore.Entities.OmbiUser if (request.requestedUser && typeof request.requestedUser === 'object') { // Priority: alias > userAlias > userName > normalizedUserName > requestedByAlias return request.requestedUser.alias || request.requestedUser.userAlias || request.requestedUser.userName || request.requestedUser.normalizedUserName || request.requestedByAlias || ''; } // Handle string format (fallback for compatibility) return request.requestedUser || request.requestedByAlias || ''; } function filterRequestsByUser(requests, username, showAll) { if (!Array.isArray(requests)) return []; if (showAll || !username) return requests; const usernameLower = username.toLowerCase(); return requests.filter(req => { const requestedUser = extractRequestedUser(req); return requestedUser.toLowerCase() === usernameLower; }); } module.exports = { extractRequestedUser, filterRequestsByUser };