Skip to main content

get_sessions

Retrieves all game sessions with optional client filtering.

Signature

get_sessions($client_filter = null)

Parameters

client_filter
string
default:"null"
Filter sessions by associated client name. When provided, only returns sessions for games associated with the specified client.

Returns

sessions
array
Array of session objects from the de_app_sessions table. Each session includes:

Example Usage

// Retrieve all sessions
$sessions = get_sessions();
foreach ($sessions as $session) {
    echo "User {$session['userId']} - Score: {$session['score']}";
}

Implementation Details

When $client_filter is provided, the function performs JOINs across multiple tables (de_posts, de_postmeta) to filter sessions by client association. This may impact query performance for large datasets.
Query without filter:
$stmt = $pdo->query("SELECT * FROM de_app_sessions");
Query with client filter:
$sql = "SELECT s.* 
        FROM de_app_sessions s 
        JOIN de_posts p ON s.gameId = p.ID
        JOIN de_postmeta pm ON p.ID = pm.post_id AND pm.meta_key = '_cliente_asociado'
        JOIN de_posts c ON CAST(pm.meta_value AS UNSIGNED) = c.ID
        WHERE c.post_title = :client";

get_filtered_sessions

Filters an array of sessions based on multiple criteria.

Signature

get_filtered_sessions($sessions, $filters = [])

Parameters

sessions
array
required
Array of session objects to filter
filters
array
default:"[]"
Filter criteria:

Returns

filtered_sessions
array
Filtered array of session objects

Example Usage

// Get all sessions
$allSessions = get_sessions();

// Filter by date range and user
$filtered = get_filtered_sessions($allSessions, [
    'startDate' => '2024-01-01',
    'endDate' => '2024-12-31',
    'userId' => 42
]);

// Filter by game only
$gameFiltered = get_filtered_sessions($allSessions, [
    'gameId' => 10
]);
This function is useful when you already have sessions in memory and need to apply additional filters without making another database query.

get_session_details

Retrieves detailed information about a specific session including user data.

Signature

get_session_details($sessionId)

Parameters

sessionId
integer
required
Session ID

Returns

session
object
Session details object or null if not found:

Example Usage

$session = get_session_details(1234);
if ($session) {
    echo "User: " . $session['name'];
    echo "Score: " . $session['score'];
    echo "Duration: " . $session['duration'] . " minutes";
    echo "Status: " . $session['status'];
}
The function automatically calculates duration in minutes if not stored, based on startedAt and finishedAt/endedAt timestamps.

get_user_game_answers

Retrieves all answers for a specific user’s game session.

Signature

get_user_game_answers($gameId, $userId, $sessionId = null)

Parameters

gameId
integer
required
Game ID
userId
integer
required
User ID
sessionId
integer
default:"null"
Specific session ID. If not provided, uses the latest session for this user/game combination.

Returns

answers
array
Array of answer objects. Format varies based on game type:

Example Usage

// Get answers for a specific session
$answers = get_user_game_answers(42, 10, 1234);

// Get answers from latest session
$answers = get_user_game_answers(42, 10);

foreach ($answers as $answer) {
    echo "Question: " . $answer['text'];
    echo "Correct: " . ($answer['is_correct'] ? 'Yes' : 'No');
    echo "Score: " . $answer['score'];
}
The function automatically detects whether the game is an “Angel vs Demonio” type dilemma by checking for entries in the de_app_ad_questions table and returns appropriately formatted answer data.

calculate_metrics

Calculates aggregate metrics from a set of sessions.

Signature

calculate_metrics($sessions)

Parameters

sessions
array
required
Array of session objects

Returns

metrics
object
Calculated metrics:

Example Usage

$sessions = get_sessions('Acme Corporation');
$metrics = calculate_metrics($sessions);

echo "Total Sessions: " . $metrics['totalSessions'];
echo "Average Score: " . $metrics['avgScore'];
echo "Pass Rate: " . $metrics['passRate'] . "%";
echo "Active Users: " . $metrics['activeUsers'];

Users

User-related functions

Games

Game-related functions

Build docs developers (and LLMs) love