evals
scenario-1
scenario-10
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
Build a simple user profile query system that safely retrieves user information from a PostgreSQL database using parameterized queries.
Create a module that provides functions to query user profiles from a database. The system should support:
All database queries must use proper parameterization to prevent SQL injection vulnerabilities. Assume the database has a users table with columns: id, email, age, and registration_date.
/**
* Retrieves a user profile by user ID
*
* @param {Object} client - Database client instance
* @param {number} userId - The user's ID
* @returns {Promise<Object|null>} User object or null if not found
*/
async function getUserById(client, userId) {
// IMPLEMENTATION HERE
}
/**
* Finds a user by email address
*
* @param {Object} client - Database client instance
* @param {string} email - The user's email address
* @returns {Promise<Object|null>} User object or null if not found
*/
async function getUserByEmail(client, email) {
// IMPLEMENTATION HERE
}
/**
* Finds all users within a specified age range
*
* @param {Object} client - Database client instance
* @param {number} minAge - Minimum age (inclusive)
* @param {number} maxAge - Maximum age (inclusive)
* @returns {Promise<Array>} Array of user objects
*/
async function getUsersByAgeRange(client, minAge, maxAge) {
// IMPLEMENTATION HERE
}
module.exports = {
getUserById,
getUserByEmail,
getUsersByAgeRange
};The following test cases verify the functionality:
Provides PostgreSQL database connectivity and query execution.