. /** * Ajax: rename a recording SCO. * * @package mod_meetletacbmarketplace * @copyright 2026 MeetLet * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ namespace mod_meetletacbmarketplace\external; use core_external\external_api; use core_external\external_function_parameters; use core_external\external_single_structure; use core_external\external_value; use mod_meetletacbmarketplace\api\service; use mod_meetletacbmarketplace\local\instance; use moodle_exception; defined('MOODLE_INTERNAL') || die(); /** * Rename Adobe Connect recording. */ class rename_recording extends external_api { public static function execute_parameters(): external_function_parameters { return new external_function_parameters([ 'cmid' => new external_value(PARAM_INT, 'Course module id'), 'recordingscoid' => new external_value(PARAM_INT, 'Recording sco id'), 'name' => new external_value(PARAM_TEXT, 'New recording name'), 'groupid' => new external_value(PARAM_INT, 'Group id', VALUE_DEFAULT, 0), ]); } public static function execute(int $cmid, int $recordingscoid, string $name, int $groupid = 0): array { global $DB; $params = self::validate_parameters(self::execute_parameters(), [ 'cmid' => $cmid, 'recordingscoid' => $recordingscoid, 'name' => $name, 'groupid' => $groupid, ]); \mod_meetletacbmarketplace\registration\manager::require_registered(); $inst = instance::get_from_cmid($params['cmid'], $params['groupid']); self::validate_context($inst->context); require_capability('mod/meetletacbmarketplace:view', $inst->context); \mod_meetletacbmarketplace\local\featureaccess::require_feature( \mod_meetletacbmarketplace\local\featureaccess::EDITRECORDING, $inst->context, $inst->record ); $name = trim($params['name']); if ($name === '') { throw new moodle_exception('error', 'meetletacbmarketplace'); } $service = new service(); $service->login_admin(); $ok = $service->rename_sco((int)$params['recordingscoid'], $name); $service->logout(); if (!$ok) { throw new moodle_exception('errorrenamerecording', 'meetletacbmarketplace'); } $record = $DB->get_record('meetlet_marketplace_recordings', [ 'instanceid' => $inst->record->id, 'recordingscoid' => (int)$params['recordingscoid'], ]); if ($record) { $record->name = $name; $record->timemodified = time(); $DB->update_record('meetlet_marketplace_recordings', $record); } return [ 'success' => true, 'name' => $name, 'message' => get_string('recordingrenamed', 'meetletacbmarketplace'), ]; } public static function execute_returns(): external_single_structure { return new external_single_structure([ 'success' => new external_value(PARAM_BOOL, 'OK'), 'name' => new external_value(PARAM_TEXT, 'New name'), 'message' => new external_value(PARAM_TEXT, 'Message'), ]); } }