Skip to content

Commit

Permalink
MDL-65515 badges: Split install/upgrade
Browse files Browse the repository at this point in the history
Use badges/upgradelib.php for functions that only affect install/upgrade.

All credit goes to Damyon Wiese.
  • Loading branch information
Mihail Geshoski committed Oct 9, 2019
1 parent 6ec1078 commit 9ad5cff
Show file tree
Hide file tree
Showing 4 changed files with 67 additions and 41 deletions.
65 changes: 65 additions & 0 deletions badges/upgradelib.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.

/**
* Contains upgrade and install functions for badges.
*
* @package core_badges
* @copyright 2019 Damyon Wiese
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/

defined('MOODLE_INTERNAL') || die();

/**
* Called on install or upgrade to create default list of backpacks a user can connect to.
* Don't use the global defines from badgeslib because this is for install/upgrade.
*
* @return void
*/
function badges_install_default_backpacks() {
global $DB;

$record = new stdClass();
$record->backpackweburl = 'https://backpack.openbadges.org';
$record->backpackapiurl = 'https://backpack.openbadges.org';
$record->apiversion = 1;
$record->sortorder = 0;
$record->password = '';

if (!($bp = $DB->get_record('badge_external_backpack', array('backpackapiurl' => $record->backpackapiurl)))) {
$bpid = $DB->insert_record('badge_external_backpack', $record);
} else {
$bpid = $bp->id;
}
set_config('badges_site_backpack', $bpid);

// All existing backpacks default to V1.
$DB->set_field('badge_backpack', 'externalbackpackid', $bpid);

$record = new stdClass();
$record->backpackapiurl = 'https://api.badgr.io/v2';
$record->backpackweburl = 'https://badgr.io';
$record->apiversion = 2;
$record->sortorder = 1;
$record->password = '';

if (!$DB->record_exists('badge_external_backpack', array('backpackapiurl' => $record->backpackapiurl))) {
$DB->insert_record('badge_external_backpack', $record);
}

}

39 changes: 0 additions & 39 deletions lib/badgeslib.php
Original file line number Diff line number Diff line change
Expand Up @@ -856,45 +856,6 @@ function badges_get_badge_api_versions() {
];
}

/**
* Called on install or upgrade to create default list of backpacks a user can connect to.
*
* @return void
*/
function badges_install_default_backpacks() {
global $DB;

$record = new stdClass();
$record->backpackweburl = BADGE_BACKPACKWEBURL;
$record->backpackapiurl = BADGE_BACKPACKAPIURL;
$record->apiversion = OPEN_BADGES_V1;
$record->sortorder = 0;
$record->password = '';

$bpid = 0;
if (!($bp = $DB->get_record('badge_external_backpack', array('backpackapiurl' => $record->backpackapiurl)))) {
$bpid = $DB->insert_record('badge_external_backpack', $record);
} else {
$bpid = $bp->id;
}
set_config('badges_site_backpack', $bpid);

// All existing backpacks default to V1.
$DB->set_field('badge_backpack', 'externalbackpackid', $bpid);

$record = new stdClass();
$record->backpackapiurl = BADGRIO_BACKPACKAPIURL;
$record->backpackweburl = BADGRIO_BACKPACKWEBURL;
$record->apiversion = OPEN_BADGES_V2;
$record->sortorder = 1;
$record->password = '';

if (!$DB->record_exists('badge_external_backpack', array('backpackapiurl' => $record->backpackapiurl))) {
$DB->insert_record('badge_external_backpack', $record);
}

}

/**
* Get the default issuer for a badge from this site.
*
Expand Down
2 changes: 1 addition & 1 deletion lib/db/install.php
Original file line number Diff line number Diff line change
Expand Up @@ -321,6 +321,6 @@ function xmldb_main_install() {
make_default_scale();
make_competence_scale();

require_once($CFG->libdir . '/badgeslib.php');
require_once($CFG->dirroot . '/badges/upgradelib.php'); // Core install and upgrade related functions only for badges.
badges_install_default_backpacks();
}
2 changes: 1 addition & 1 deletion lib/db/upgrade.php
Original file line number Diff line number Diff line change
Expand Up @@ -3361,7 +3361,7 @@ function xmldb_main_upgrade($oldversion) {
}

// Add default backpacks.
require_once($CFG->libdir.'/badgeslib.php'); // Core Upgrade-related functions for badges only.
require_once($CFG->dirroot . '/badges/upgradelib.php'); // Core install and upgrade related functions only for badges.
badges_install_default_backpacks();

// Main savepoint reached.
Expand Down

0 comments on commit 9ad5cff

Please sign in to comment.