{"version":3,"file":"repository.min.js","sources":["../src/repository.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 course ajax actions.\n *\n * @module     core_course/repository\n * @copyright  2018 Ryan Wyllie <ryan@moodle.com>\n * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\ndefine(['jquery', 'core/ajax'], function($, Ajax) {\n\n    /**\n     * Get the list of courses that the logged in user is enrolled in for a given\n     * timeline classification.\n     *\n     * @param {string} classification past, inprogress, or future\n     * @param {int} limit Only return this many results\n     * @param {int} offset Skip this many results from the start of the result set\n     * @param {string} sort Column to sort by and direction, e.g. 'shortname asc'\n     * @return {object} jQuery promise resolved with courses.\n     */\n    var getEnrolledCoursesByTimelineClassification = function(classification, limit, offset, sort) {\n        var args = {\n            classification: classification\n        };\n\n        if (typeof limit !== 'undefined') {\n            args.limit = limit;\n        }\n\n        if (typeof offset !== 'undefined') {\n            args.offset = offset;\n        }\n\n        if (typeof sort !== 'undefined') {\n            args.sort = sort;\n        }\n\n        var request = {\n            methodname: 'core_course_get_enrolled_courses_by_timeline_classification',\n            args: args\n        };\n\n        return Ajax.call([request])[0];\n    };\n\n    /**\n     * Get the list of courses that the user has most recently accessed.\n     *\n     * @method getLastAccessedCourses\n     * @param {int} userid User from which the courses will be obtained\n     * @param {int} limit Only return this many results\n     * @param {int} offset Skip this many results from the start of the result set\n     * @param {string} sort Column to sort by and direction, e.g. 'shortname asc'\n     * @return {promise} Resolved with an array of courses\n     */\n    var getLastAccessedCourses = function(userid, limit, offset, sort) {\n        var args = {};\n\n        if (typeof userid !== 'undefined') {\n            args.userid = userid;\n        }\n\n        if (typeof limit !== 'undefined') {\n            args.limit = limit;\n        }\n\n        if (typeof offset !== 'undefined') {\n            args.offset = offset;\n        }\n\n        if (typeof sort !== 'undefined') {\n            args.sort = sort;\n        }\n\n        var request = {\n            methodname: 'core_course_get_recent_courses',\n            args: args\n        };\n\n        return Ajax.call([request])[0];\n    };\n\n    /**\n     * Get the list of users enrolled in this cmid.\n     *\n     * @param {Number} cmid Course Module from which the users will be obtained\n     * @param {Number} groupID Group ID from which the users will be obtained\n     * @returns {Promise} Promise containing a list of users\n     */\n    var getEnrolledUsersFromCourseModuleID = function(cmid, groupID) {\n        var request = {\n            methodname: 'core_course_get_enrolled_users_by_cmid',\n            args: {\n                cmid: cmid,\n                groupid: groupID,\n            },\n        };\n\n        return Ajax.call([request])[0];\n    };\n\n    return {\n        getEnrolledCoursesByTimelineClassification: getEnrolledCoursesByTimelineClassification,\n        getLastAccessedCourses: getLastAccessedCourses,\n        getUsersFromCourseModuleID: getEnrolledUsersFromCourseModuleID,\n    };\n});\n"],"names":["define","$","Ajax","getEnrolledCoursesByTimelineClassification","classification","limit","offset","sort","args","request","methodname","call","getLastAccessedCourses","userid","getUsersFromCourseModuleID","cmid","groupID","groupid"],"mappings":";;;;;;;AAsBAA,gCAAO,CAAC,SAAU,cAAc,SAASC,EAAGC,YA6FjC,CACHC,2CAlF6C,SAASC,eAAgBC,MAAOC,OAAQC,UACjFC,KAAO,CACPJ,eAAgBA,qBAGC,IAAVC,QACPG,KAAKH,MAAQA,YAGK,IAAXC,SACPE,KAAKF,OAASA,aAGE,IAATC,OACPC,KAAKD,KAAOA,UAGZE,QAAU,CACVC,WAAY,8DACZF,KAAMA,aAGHN,KAAKS,KAAK,CAACF,UAAU,IA6D5BG,uBAhDyB,SAASC,OAAQR,MAAOC,OAAQC,UACrDC,KAAO,QAEW,IAAXK,SACPL,KAAKK,OAASA,aAGG,IAAVR,QACPG,KAAKH,MAAQA,YAGK,IAAXC,SACPE,KAAKF,OAASA,aAGE,IAATC,OACPC,KAAKD,KAAOA,UAGZE,QAAU,CACVC,WAAY,iCACZF,KAAMA,aAGHN,KAAKS,KAAK,CAACF,UAAU,IAyB5BK,2BAfqC,SAASC,KAAMC,aAChDP,QAAU,CACVC,WAAY,yCACZF,KAAM,CACFO,KAAMA,KACNE,QAASD,iBAIVd,KAAKS,KAAK,CAACF,UAAU"}