Beispiel #1
0
<?php

/**
 * GET {language-lab instance url}/api/v1/join?context={LTI context ID}&user={LTI user ID}
 *
 * Returns
 * {
 * 	[api_key: {OpenTOK API key},
 * 	session_id: {OpenTok session ID},
 * 	token: {OpenTok subscriber token for `session_id`},
 * 	id: {Database ID for `session_id`}]
 * }
 */
require_once 'common.inc.php';
use OpenTok\Role;
requiredParameters([PARAM_CONTEXT, PARAM_USER, PARAM_USER_NAME]);
$apiResponse = [];
if (($groupSessions = $_SESSION['app']->sql->query("\n    SELECT s.*\n        FROM `group_memberships` AS m\n            LEFT JOIN `groups` AS g ON m.`group` = g.`id`\n            LEFT JOIN `sessions` AS s ON g.`session` = s.`id`\n        WHERE\n            m.`context` = '" . $_SESSION['app']->sql->escape_string($_REQUEST[PARAM_CONTEXT]) . "' AND\n            m.`user` = '" . $_SESSION['app']->sql->escape_string($_REQUEST[PARAM_USER]) . "'\n        LIMIT 1\n")) === false) {
    databaseError(__LINE__);
}
if ($group = $groupSessions->fetch_assoc()) {
    $apiResponse[API_DATABASE_ID] = $group['id'];
    $apiResponse[API_SESSION_ID] = $group['tokbox'];
} else {
    if (($classSessions = $_SESSION['app']->sql->query("\n        SELECT *\n            FROM `sessions`\n            WHERE\n                `type` = '" . TYPE_CLASS . "' AND\n                `context` = '" . $_SESSION['app']->sql->escape_string($_REQUEST[PARAM_CONTEXT]) . "'\n            LIMIT 1\n    ")) === false) {
        databaseError(__LINE__);
    }
    if ($classSession = $classSessions->fetch_assoc()) {
        $apiResponse[API_DATABASE_ID] = $classSession['id'];
        $apiResponse[API_SESSION_ID] = $classSession['tokbox'];
    } else {
Beispiel #2
0
<?php

/**
 * GET {language-lab instance url}/api/v1/groups?context={LTI context ID}[&group={group ID}&action={list|delete|reset}]
 */
require_once 'common.inc.php';
use OpenTok\Role;
requiredParameters([PARAM_CONTEXT, PARAM_USER, PARAM_USER_NAME]);
$apiResponse = [];
switch (trim(strtolower(empty($_REQUEST[PARAM_ACTION]) ? ACTION_LIST : $_REQUEST[PARAM_ACTION]))) {
    case ACTION_DELETE:
        requiredParameters([PARAM_GROUP]);
        $apiResponse[API_GROUP_ID] = $_REQUEST[PARAM_GROUP];
        if (($groups = $_SESSION['app']->sql->query("\n            SELECT *\n                FROM `groups`\n                WHERE\n                    `context` = '" . $_SESSION['app']->sql->escape_string($_REQUEST[PARAM_CONTEXT]) . "' AND\n                    `id` = '" . $_SESSION['app']->sql->escape_string($_REQUEST[PARAM_GROUP]) . "'\n        ")) === false) {
            databaseError(__LINE__);
        }
        if ($groups->num_rows > 0) {
            $group = $groups->fetch_assoc();
            if ($_SESSION['app']->sql->query("\n                DELETE\n                    FROM `sessions`\n                    WHERE\n                        `context` = '" . $_SESSION['app']->sql->escape_string($_REQUEST[PARAM_CONTEXT]) . "' AND\n                        `id` = '{$group['session']}'\n            ") === false) {
                databaseError(__LINE__);
            }
            if ($_SESSION['app']->sql->query("\n                DELETE\n                    FROM `groups`\n                    WHERE\n                        `context` = '" . $_SESSION['app']->sql->escape_string($_REQUEST[PARAM_CONTEXT]) . "' AND\n                        `id` = '{$group['id']}'\n            ") === false) {
                databaseError(__LINE__);
            }
            if ($_SESSION['app']->sql->query("\n                DELETE\n                    FROM `group_memberships`\n                    WHERE\n                        `context` = '" . $_SESSION['app']->sql->escape_string($_REQUEST[PARAM_CONTEXT]) . "' AND\n                        `group` = '{$group['id']}'\n            ") === false) {
                databaseError(__LINE__);
            }
            $apiResponse[API_ACTION_RESULT] = true;
        } else {
            $apiResponse[API_ACTION_RESULT] = false;
        }