MDL-75318 core: JS updates for sharing course to MoodleNet

This commit is contained in:
Safat 2023-06-01 00:58:03 +10:00
parent 78bc87619b
commit 4b9438431e
6 changed files with 113 additions and 47 deletions

View File

@ -6,6 +6,6 @@ define("core/moodlenet/send_resource",["exports","core/config","core/modal_facto
* @copyright 2023 Huong Nguyen <huongnv13@gmail.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since 4.2
*/Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.init=void 0,_config=_interopRequireDefault(_config),_modal_factory=_interopRequireDefault(_modal_factory),_prefetch=_interopRequireDefault(_prefetch),Templates=_interopRequireWildcard(Templates),MoodleNetService=_interopRequireWildcard(MoodleNetService),_send_activity_modal=_interopRequireDefault(_send_activity_modal);let currentModal,siteSupportUrl,issuerId,courseId,cmId,shareFormat;const responseFromMoodleNet=function(status){let resourceUrl=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";const $modal=currentModal.getModal(),modal=$modal[0];modal.querySelector(".modal-header").classList.add("no-border"),currentModal.setBody(Templates.render("core/moodlenet/send_activity_modal_done",{success:status,sitesupporturl:siteSupportUrl})),status&&(currentModal.setFooter(Templates.render("core/moodlenet/send_activity_modal_footer_view",{resourseurl:resourceUrl})),currentModal.showFooter())},handleAuthorization=issuerId=>MoodleNetService.authorizationCheck(issuerId,courseId).then((async data=>data.status?((issuerId,cmId,shareFormat)=>{const modal=currentModal.getModal()[0];modal.querySelector(".modal-header").classList.remove("no-border"),modal.querySelector(".modal-header").classList.add("no-header-text"),currentModal.setBody(Templates.render("core/moodlenet/send_activity_modal_packaging",{})),currentModal.hideFooter(),MoodleNetService.sendActivity(issuerId,cmId,shareFormat).then((async data=>{const status=data.status,resourceUrl=data.resourceurl;return responseFromMoodleNet(status,resourceUrl)})).catch(_notification.exception)})(issuerId,cmId,shareFormat):(window.moodleNetAuthorize=(error,errorDescription)=>{""==error?handleAuthorization(issuerId):"access_denied"!==error&&(0,_notification.alert)("Authorization error","Error: "+error+"<br><br>Error description: "+errorDescription,"Cancel")},window.open(data.loginurl,"moodlenet_auth","location=0,status=0,width=".concat(550,",height=").concat(550,",scrollbars=yes"))))).catch(_notification.exception);_exports.init=()=>{_prefetch.default.prefetchTemplates(["core/moodlenet/send_activity_modal_base","core/moodlenet/send_activity_modal_packaging","core/moodlenet/send_activity_modal_done","core/moodlenet/send_activity_modal_footer_view"]),document.addEventListener("click",(e=>{const shareAction=e.target.closest('[data-action="sendtomoodlenet"]'),sendAction=e.target.closest('.moodlenet-action-buttons [data-action="share"]');if(shareAction){e.preventDefault();const type=shareAction.getAttribute("data-type"),shareType=shareAction.getAttribute("data-sharetype"),cmId=_config.default.contextInstanceId;"activity"==type&&MoodleNetService.getActivityInformation(cmId).then((async data=>data.status?(siteSupportUrl=data.supportpageurl,issuerId=data.issuerid,_modal_factory.default.create({type:_send_activity_modal.default.TYPE,large:!0,templateContext:{activitytype:data.type,activityname:data.name,sharetype:await(0,_str.get_string)("moodlenet:sharetype"+shareType,"moodle"),server:data.server}}).then((modal=>(currentModal=modal,modal.show(),modal))).catch(_notification.exception)):(0,_notification.addNotification)({message:data.warnings[0].message,type:"error"}))).catch(_notification.exception)}sendAction&&(e.preventDefault(),courseId=_config.default.courseId,cmId=_config.default.contextInstanceId,shareFormat=0,handleAuthorization(issuerId))}))}}));
*/Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.init=void 0,_config=_interopRequireDefault(_config),_modal_factory=_interopRequireDefault(_modal_factory),_prefetch=_interopRequireDefault(_prefetch),Templates=_interopRequireWildcard(Templates),MoodleNetService=_interopRequireWildcard(MoodleNetService),_send_activity_modal=_interopRequireDefault(_send_activity_modal);let currentModal,siteSupportUrl,issuerId,courseId,resourceId,shareFormat,type,listenersRegistered=!1;const responseFromMoodleNet=function(status){let resourceUrl=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";const $modal=currentModal.getModal(),modal=$modal[0];modal.querySelector(".modal-header").classList.add("no-border"),currentModal.setBody(Templates.render("core/moodlenet/send_activity_modal_done",{success:status,sitesupporturl:siteSupportUrl})),status&&(currentModal.setFooter(Templates.render("core/moodlenet/send_activity_modal_footer_view",{resourseurl:resourceUrl})),currentModal.showFooter())},handleAuthorization=issuerId=>MoodleNetService.authorizationCheck(issuerId,courseId).then((async data=>data.status?((issuerId,resourceId,shareFormat)=>{const modal=currentModal.getModal()[0];let infoPromise;modal.querySelector(".modal-header").classList.remove("no-border"),modal.querySelector(".modal-header").classList.add("no-header-text"),currentModal.setBody(Templates.render("core/moodlenet/send_activity_modal_packaging",{})),currentModal.hideFooter(),"activity"===type?infoPromise=MoodleNetService.sendActivity(issuerId,resourceId,shareFormat):"course"===type&&(infoPromise=MoodleNetService.sendCourse(issuerId,resourceId,shareFormat)),infoPromise.then((async data=>{const status=data.status,resourceUrl=data.resourceurl;return responseFromMoodleNet(status,resourceUrl)})).catch(_notification.exception)})(issuerId,resourceId,shareFormat):(window.moodleNetAuthorize=(error,errorDescription)=>{""===error?handleAuthorization(issuerId):"access_denied"!==error&&(0,_notification.alert)("Authorization error","Error: "+error+"<br><br>Error description: "+errorDescription,"Cancel")},window.open(data.loginurl,"moodlenet_auth","location=0,status=0,width=".concat(550,",height=").concat(550,",scrollbars=yes"))))).catch(_notification.exception),registerEventListeners=()=>{document.addEventListener("click",(e=>{const shareAction=e.target.closest('[data-action="sendtomoodlenet"]'),sendAction=e.target.closest('.moodlenet-action-buttons [data-action="share"]');if(shareAction){e.preventDefault(),type=shareAction.getAttribute("data-type");const shareType=shareAction.getAttribute("data-sharetype"),resourceId=_config.default.contextInstanceId;let infoPromise;"activity"===type?infoPromise=MoodleNetService.getActivityInformation(resourceId):"course"===type&&(infoPromise=MoodleNetService.getCourseInformation(resourceId)),infoPromise.then((async data=>{(async(data,shareType)=>{if(data.status)return siteSupportUrl=data.supportpageurl,issuerId=data.issuerid,_modal_factory.default.create({type:_send_activity_modal.default.TYPE,large:!0,templateContext:{activitytype:data.type,activityname:data.name,sharetype:await(0,_str.get_string)("moodlenet:sharetype"+shareType,"moodle"),server:data.server}}).then((modal=>(currentModal=modal,modal.show(),modal))).catch(_notification.exception);return(0,_notification.addNotification)({message:data.warnings[0].message,type:"error"})})(data,shareType).catch(_notification.exception)})).catch(_notification.exception)}sendAction&&(e.preventDefault(),courseId=_config.default.courseId,resourceId=_config.default.contextInstanceId,shareFormat=0,handleAuthorization(issuerId))}))};_exports.init=()=>{listenersRegistered||(_prefetch.default.prefetchTemplates(["core/moodlenet/send_activity_modal_base","core/moodlenet/send_activity_modal_packaging","core/moodlenet/send_activity_modal_done","core/moodlenet/send_activity_modal_footer_view"]),registerEventListeners(),listenersRegistered=!0)}}));
//# sourceMappingURL=send_resource.min.js.map

File diff suppressed because one or more lines are too long

View File

@ -6,6 +6,6 @@ define("core/moodlenet/service",["exports","core/ajax"],(function(_exports,_ajax
* @copyright 2023 Huong Nguyen <huongnv13@gmail.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since 4.2
*/Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.sendActivity=_exports.getActivityInformation=_exports.authorizationCheck=void 0,_ajax=(obj=_ajax)&&obj.__esModule?obj:{default:obj};_exports.getActivityInformation=cmId=>{const request={methodname:"core_moodlenet_get_share_info_activity",args:{cmid:cmId}};return _ajax.default.call([request])[0]};_exports.sendActivity=(issuerId,cmId,shareFormat)=>{const request={methodname:"core_moodlenet_send_activity",args:{issuerid:issuerId,cmid:cmId,shareformat:shareFormat}};return _ajax.default.call([request])[0]};_exports.authorizationCheck=(issuerId,courseId)=>{const request={methodname:"core_moodlenet_auth_check",args:{issuerid:issuerId,courseid:courseId}};return _ajax.default.call([request])[0]}}));
*/Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.sendCourse=_exports.sendActivity=_exports.getCourseInformation=_exports.getActivityInformation=_exports.authorizationCheck=void 0,_ajax=(obj=_ajax)&&obj.__esModule?obj:{default:obj};_exports.getActivityInformation=cmId=>{const request={methodname:"core_moodlenet_get_share_info_activity",args:{cmid:cmId}};return _ajax.default.call([request])[0]};_exports.getCourseInformation=courseID=>{const request={methodname:"core_moodlenet_get_shared_course_info",args:{courseid:courseID}};return _ajax.default.call([request])[0]};_exports.sendCourse=(issuerId,courseId,shareFormat)=>{const request={methodname:"core_moodlenet_send_course",args:{issuerid:issuerId,courseid:courseId,shareformat:shareFormat}};return _ajax.default.call([request])[0]};_exports.sendActivity=(issuerId,cmId,shareFormat)=>{const request={methodname:"core_moodlenet_send_activity",args:{issuerid:issuerId,cmid:cmId,shareformat:shareFormat}};return _ajax.default.call([request])[0]};_exports.authorizationCheck=(issuerId,courseId)=>{const request={methodname:"core_moodlenet_auth_check",args:{issuerid:issuerId,courseid:courseId}};return _ajax.default.call([request])[0]}}));
//# sourceMappingURL=service.min.js.map

View File

@ -1 +1 @@
{"version":3,"file":"service.min.js","sources":["../../src/moodlenet/service.js"],"sourcesContent":["// This file is part of Moodle - http://moodle.org/\n//\n// Moodle is free software: you can redistribute it and/or modify\n// it under the terms of the GNU General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// Moodle is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU General Public License for more details.\n//\n// You should have received a copy of the GNU General Public License\n// along with Moodle. If not, see <http://www.gnu.org/licenses/>.\n\n/**\n * A javascript module to handle MoodleNet ajax actions.\n *\n * @module core/moodlenet/service\n * @copyright 2023 Huong Nguyen <huongnv13@gmail.com>\n * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n * @since 4.2\n */\n\nimport Ajax from 'core/ajax';\n\n/**\n * Get the activity information by course module id.\n *\n * @param {Integer} cmId The course module id.\n * @return {promise}\n */\nexport const getActivityInformation = (cmId) => {\n const request = {\n methodname: 'core_moodlenet_get_share_info_activity',\n args: {\n cmid: cmId\n }\n };\n\n return Ajax.call([request])[0];\n};\n\n/**\n * Send the activity to Moodlenet.\n *\n * @param {Integer} issuerId The OAuth 2 issuer ID.\n * @param {Integer} cmId The course module ID.\n * @param {Integer} shareFormat The share format.\n * @return {promise}\n */\nexport const sendActivity = (issuerId, cmId, shareFormat) => {\n const request = {\n methodname: 'core_moodlenet_send_activity',\n args: {\n issuerid: issuerId,\n cmid: cmId,\n shareformat: shareFormat,\n }\n };\n\n return Ajax.call([request])[0];\n};\n\n/**\n * Check if the user is already authorized with MoodleNet.\n *\n * @param {Integer} issuerId The OAuth 2 issuer ID.\n * @param {Integer} courseId The course ID.\n * @return {promise}\n */\nexport const authorizationCheck = (issuerId, courseId) => {\n const request = {\n methodname: 'core_moodlenet_auth_check',\n args: {\n issuerid: issuerId,\n courseid: courseId,\n }\n };\n\n return Ajax.call([request])[0];\n};\n"],"names":["cmId","request","methodname","args","cmid","Ajax","call","issuerId","shareFormat","issuerid","shareformat","courseId","courseid"],"mappings":";;;;;;;;0OAgCuCA,aAC7BC,QAAU,CACZC,WAAY,yCACZC,KAAM,CACFC,KAAMJ,cAIPK,cAAKC,KAAK,CAACL,UAAU,0BAWJ,CAACM,SAAUP,KAAMQ,qBACnCP,QAAU,CACZC,WAAY,+BACZC,KAAM,CACFM,SAAUF,SACVH,KAAMJ,KACNU,YAAaF,qBAIdH,cAAKC,KAAK,CAACL,UAAU,gCAUE,CAACM,SAAUI,kBACnCV,QAAU,CACZC,WAAY,4BACZC,KAAM,CACFM,SAAUF,SACVK,SAAUD,kBAIXN,cAAKC,KAAK,CAACL,UAAU"}
{"version":3,"file":"service.min.js","sources":["../../src/moodlenet/service.js"],"sourcesContent":["// This file is part of Moodle - http://moodle.org/\n//\n// Moodle is free software: you can redistribute it and/or modify\n// it under the terms of the GNU General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// Moodle is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU General Public License for more details.\n//\n// You should have received a copy of the GNU General Public License\n// along with Moodle. If not, see <http://www.gnu.org/licenses/>.\n\n/**\n * A javascript module to handle MoodleNet ajax actions.\n *\n * @module core/moodlenet/service\n * @copyright 2023 Huong Nguyen <huongnv13@gmail.com>\n * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n * @since 4.2\n */\n\nimport Ajax from 'core/ajax';\n\n/**\n * Get the activity information by course module id.\n *\n * @param {Integer} cmId The course module id.\n * @return {promise}\n */\nexport const getActivityInformation = (cmId) => {\n const request = {\n methodname: 'core_moodlenet_get_share_info_activity',\n args: {\n cmid: cmId\n }\n };\n\n return Ajax.call([request])[0];\n};\n\n\n/**\n * Get the course information by course module id.\n *\n * @param {Integer} courseID The course id.\n * @return {promise}\n */\nexport const getCourseInformation = (courseID) => {\n const request = {\n methodname: 'core_moodlenet_get_shared_course_info',\n args: {\n courseid: courseID\n }\n };\n\n return Ajax.call([request])[0];\n};\n\n/**\n * Send the course to MoodleNet.\n *\n * @param {Integer} issuerId The OAuth 2 issuer ID.\n * @param {Integer} courseId The course ID.\n * @param {Integer} shareFormat The share format.\n * @return {promise}\n */\nexport const sendCourse = (issuerId, courseId, shareFormat) => {\n const request = {\n methodname: 'core_moodlenet_send_course',\n args: {\n issuerid: issuerId,\n courseid: courseId,\n shareformat: shareFormat,\n }\n };\n\n return Ajax.call([request])[0];\n};\n\n/**\n * Send the activity to Moodlenet.\n *\n * @param {Integer} issuerId The OAuth 2 issuer ID.\n * @param {Integer} cmId The course module ID.\n * @param {Integer} shareFormat The share format.\n * @return {promise}\n */\nexport const sendActivity = (issuerId, cmId, shareFormat) => {\n const request = {\n methodname: 'core_moodlenet_send_activity',\n args: {\n issuerid: issuerId,\n cmid: cmId,\n shareformat: shareFormat,\n }\n };\n\n return Ajax.call([request])[0];\n};\n\n/**\n * Check if the user is already authorized with MoodleNet.\n *\n * @param {Integer} issuerId The OAuth 2 issuer ID.\n * @param {Integer} courseId The course ID.\n * @return {promise}\n */\nexport const authorizationCheck = (issuerId, courseId) => {\n const request = {\n methodname: 'core_moodlenet_auth_check',\n args: {\n issuerid: issuerId,\n courseid: courseId,\n }\n };\n\n return Ajax.call([request])[0];\n};\n"],"names":["cmId","request","methodname","args","cmid","Ajax","call","courseID","courseid","issuerId","courseId","shareFormat","issuerid","shareformat"],"mappings":";;;;;;;;4RAgCuCA,aAC7BC,QAAU,CACZC,WAAY,yCACZC,KAAM,CACFC,KAAMJ,cAIPK,cAAKC,KAAK,CAACL,UAAU,kCAUKM,iBAC3BN,QAAU,CACZC,WAAY,wCACZC,KAAM,CACFK,SAAUD,kBAIXF,cAAKC,KAAK,CAACL,UAAU,wBAWN,CAACQ,SAAUC,SAAUC,qBACrCV,QAAU,CACZC,WAAY,6BACZC,KAAM,CACFS,SAAUH,SACVD,SAAUE,SACVG,YAAaF,qBAIdN,cAAKC,KAAK,CAACL,UAAU,0BAWJ,CAACQ,SAAUT,KAAMW,qBACnCV,QAAU,CACZC,WAAY,+BACZC,KAAM,CACFS,SAAUH,SACVL,KAAMJ,KACNa,YAAaF,qBAIdN,cAAKC,KAAK,CAACL,UAAU,gCAUE,CAACQ,SAAUC,kBACnCT,QAAU,CACZC,WAAY,4BACZC,KAAM,CACFS,SAAUH,SACVD,SAAUE,kBAIXL,cAAKC,KAAK,CAACL,UAAU"}

View File

@ -32,22 +32,25 @@ import * as MoodleNetService from 'core/moodlenet/service';
import SendActivityModal from 'core/moodlenet/send_activity_modal';
const TYPE_ACTIVITY = "activity";
const TYPE_COURSE = "course";
let listenersRegistered = false;
let currentModal;
let siteSupportUrl;
let issuerId;
let courseId;
let cmId;
let resourceId;
let shareFormat;
let type;
/**
* Handle send to MoodleNet.
*
* @param {int} issuerId The OAuth 2 issuer ID.
* @param {int} cmId The course module ID.
* @param {int} resourceId The resource ID, it can be a course or an activity.
* @param {int} shareFormat The share format.
*/
const sendToMoodleNet = (issuerId, cmId, shareFormat) => {
const sendToMoodleNet = (issuerId, resourceId, shareFormat) => {
const $modal = currentModal.getModal();
const modal = $modal[0];
modal.querySelector('.modal-header').classList.remove('no-border');
@ -56,7 +59,13 @@ const sendToMoodleNet = (issuerId, cmId, shareFormat) => {
currentModal.setBody(Templates.render('core/moodlenet/send_activity_modal_packaging', {}));
currentModal.hideFooter();
MoodleNetService.sendActivity(issuerId, cmId, shareFormat).then(async(data) => {
let infoPromise;
if (type === TYPE_ACTIVITY) {
infoPromise = MoodleNetService.sendActivity(issuerId, resourceId, shareFormat);
} else if (type === TYPE_COURSE) {
infoPromise = MoodleNetService.sendCourse(issuerId, resourceId, shareFormat);
}
infoPromise.then(async(data) => {
const status = data.status;
const resourceUrl = data.resourceurl;
return responseFromMoodleNet(status, resourceUrl);
@ -103,7 +112,7 @@ const handleAuthorization = (issuerId) => {
// Declare moodleNetAuthorize variable, so we can call it later in the callback.
window.moodleNetAuthorize = (error, errorDescription) => {
// This will be called by the callback after the authorization is successful.
if (error == '') {
if (error === '') {
handleAuthorization(issuerId);
} else if (error !== 'access_denied') {
displayAlert(
@ -118,11 +127,44 @@ const handleAuthorization = (issuerId) => {
`location=0,status=0,width=${windowsizewidth},height=${windowsizeheight},scrollbars=yes`);
} else {
// Already authorized.
return sendToMoodleNet(issuerId, cmId, shareFormat);
return sendToMoodleNet(issuerId, resourceId, shareFormat);
}
}).catch(displayException);
};
/**
* Render the modal to send resource to MoodleNet.
*
* @param {obj} data The data of the resource to be shared.
* @param {string} shareType The type of the resource to be shared.
*/
const renderModal = async(data, shareType) => {
if (data.status) {
siteSupportUrl = data.supportpageurl;
issuerId = data.issuerid;
const modalPromise = ModalFactory.create({
type: SendActivityModal.TYPE,
large: true,
templateContext: {
'activitytype': data.type,
'activityname': data.name,
'sharetype': await getString('moodlenet:sharetype' + shareType, 'moodle'),
'server': data.server,
}
});
return modalPromise.then(modal => {
currentModal = modal;
modal.show();
return modal;
}).catch(displayException);
} else {
return addNotification({
message: data.warnings[0].message,
type: 'error'
});
}
};
/**
* Register events.
*/
@ -132,43 +174,25 @@ const registerEventListeners = () => {
const sendAction = e.target.closest('.moodlenet-action-buttons [data-action="share"]');
if (shareAction) {
e.preventDefault();
const type = shareAction.getAttribute('data-type');
type = shareAction.getAttribute('data-type');
const shareType = shareAction.getAttribute('data-sharetype');
const cmId = Config.contextInstanceId;
if (type == TYPE_ACTIVITY) {
MoodleNetService.getActivityInformation(cmId).then(async(data) => {
if (data.status) {
siteSupportUrl = data.supportpageurl;
issuerId = data.issuerid;
const modalPromise = ModalFactory.create({
type: SendActivityModal.TYPE,
large: true,
templateContext: {
'activitytype': data.type,
'activityname': data.name,
'sharetype': await getString('moodlenet:sharetype' + shareType, 'moodle'),
'server': data.server,
}
});
return modalPromise.then(modal => {
currentModal = modal;
modal.show();
return modal;
}).catch(displayException);
} else {
return addNotification({
message: data.warnings[0].message,
type: 'error'
});
}
}).catch(displayException);
const resourceId = Config.contextInstanceId;
let infoPromise;
if (type === TYPE_ACTIVITY) {
infoPromise = MoodleNetService.getActivityInformation(resourceId);
} else if (type === TYPE_COURSE) {
infoPromise = MoodleNetService.getCourseInformation(resourceId);
}
infoPromise.then(async(data) => {
renderModal(data, shareType).catch(displayException);
}).catch(displayException);
}
if (sendAction) {
e.preventDefault();
courseId = Config.courseId;
cmId = Config.contextInstanceId;
resourceId = Config.contextInstanceId;
shareFormat = 0;
handleAuthorization(issuerId);
}
@ -179,11 +203,14 @@ const registerEventListeners = () => {
* Initialize.
*/
export const init = () => {
Prefetch.prefetchTemplates([
'core/moodlenet/send_activity_modal_base',
'core/moodlenet/send_activity_modal_packaging',
'core/moodlenet/send_activity_modal_done',
'core/moodlenet/send_activity_modal_footer_view',
]);
registerEventListeners();
if (!listenersRegistered) {
Prefetch.prefetchTemplates([
'core/moodlenet/send_activity_modal_base',
'core/moodlenet/send_activity_modal_packaging',
'core/moodlenet/send_activity_modal_done',
'core/moodlenet/send_activity_modal_footer_view',
]);
registerEventListeners();
listenersRegistered = true;
}
};

View File

@ -41,6 +41,45 @@ export const getActivityInformation = (cmId) => {
return Ajax.call([request])[0];
};
/**
* Get the course information by course module id.
*
* @param {Integer} courseID The course id.
* @return {promise}
*/
export const getCourseInformation = (courseID) => {
const request = {
methodname: 'core_moodlenet_get_shared_course_info',
args: {
courseid: courseID
}
};
return Ajax.call([request])[0];
};
/**
* Send the course to MoodleNet.
*
* @param {Integer} issuerId The OAuth 2 issuer ID.
* @param {Integer} courseId The course ID.
* @param {Integer} shareFormat The share format.
* @return {promise}
*/
export const sendCourse = (issuerId, courseId, shareFormat) => {
const request = {
methodname: 'core_moodlenet_send_course',
args: {
issuerid: issuerId,
courseid: courseId,
shareformat: shareFormat,
}
};
return Ajax.call([request])[0];
};
/**
* Send the activity to Moodlenet.
*