4ddd3036d9
Build and Push Docker Image / build (push) Successful in 48s
CI / Swagger Validation & Coverage (push) Successful in 1m54s
Licence Check / Licence compatibility and copyright header verification (push) Successful in 1m54s
CI / Security audit (push) Successful in 2m23s
CI / Tests & coverage (push) Successful in 2m35s
45 lines
1.6 KiB
JavaScript
45 lines
1.6 KiB
JavaScript
// 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
|
|
};
|