moodle-ws
TypeScript icon, indicating that this package has built-in type declarations

1.0.12 • Public • Published

Description

Moodle Web Services (Core Api's) wrapper for nodejs. Written in TypeScript.

Installation

$ npm i moodle-ws

Environment/Setup

  1. Create .env file in your root folder.

  2. Add configuration and credentials

     MWS_URL=""
     MWS_USER=""
     MWS_PASS=""

    Sample configuration

    MWS_URL="https://yourlms.com"
    MWS_USER="username"
    MWS_PASS="password"

Usage

  • Import via ES6 syntax

        import { MwsService } from 'moodle-ws';
    
        //call a new instance
        const mws = new MwsService();
  • createUser Service (create an object that contains required params example below)

        const user = {
            username: 'jlzcrn3',
            password: 'samplepass',
            firstname: 'Julz',
            lastname: 'Crn',
            email: 'jlzcrn3@gmail.com',
            country: 'PH',
            lang: 'en'
        }
        //expected return { "id": 1, "username": "jlzcrn3" }
        return await mws.createUser(user)
  • getUser Service (will return specific user using (key, value))

        //key = 'email' && value = 'jlzcrn3@gmail.com', Note: you can use other key like username etc..
        return await mws.getUser('email', 'jlzcrn3@gmail.com')
  • updateUser Service (create an object that contains required params example below)

        const user = {
            id: 1,
            username: 'jlzcrn3',
            password: 'newpassword',
            firstname: 'New Name',
            lastname: 'New Last Name',
            email: 'jlzcrn3@gmail.com'
        }
        //expected return { warnings: [] }
        //if warnings are empty means moodle udpate rules are satisfied and user succesfully updated
        return await updateUser(user)
  • createCategory Service

        const category = {
            name: 'MWS Category',
            parent: 0, // Note: if you want to put your category in top level use 0 as value but if it's under sub category pass the value of parent category id.
            description: 'Moodle Web Services Category'
        }
        //expected return [{ "id": 17, "name": "MWS Category"}]
        return await mws.createCategory(category)
  • updateCategory Service

        const category = {
            id: 17,
            name: 'MWS Updated Category',
            description: 'Moodle Web Services Updated Category'
        }
        //expected return is 200 if the update was success
        return await mws.updateCategory(category)
  • createCourse Service (create Course under course category)

        const course = {
            fullname: 'MWS Course', // course name
            categoryid: 17, // parent category id
            shortname: 'MWSC', //shortname
            summary: 'MWS Course' // description here
        }
        //expected return [{ "id": 18, "shortname": "MWSC"}]
        return await mws.createCourse(course)
  • updateCourse Service

        const course = {
            id: 18,
            fullname: 'MWS Updated Course', // course name
        }
        //expected return { warnings: [] }
        //if warnings are empty means course updated successfully
        return await mws.updateCourse(course)
  • enrollUser Service

        const enrollment = {
            roleId: 5, // Note: roleid depends on your moodle roles
            moodleId: 1, // pass the moodle Id of the user, This is the moodle user id in your app 
            courseId: 18 // pass the course id
        }
        //expected return is 200 if the enrollment was success
        return await mws.enrollUser(enrollment)
  • unEnrollUser Service

        const unenroll = {
            roleId: 5, // in our Moodle the value of 5 is student
            moodleId: 1, // pass the moodle Id of the user, This is the moodle user id in your app 
            courseId: 18 // pass the course id
        }
        //expected return is 200 if the unenrollment was success
        return await mws.unEnrollUser(unenroll)

Stay in touch

  • Author - Jlz/Rdgjr/Lnnn/Tphr/Frn/Rnld

Final Toughts

  • Crying while coding is normal!

Package Sidebar

Install

npm i moodle-ws

Weekly Downloads

2

Version

1.0.12

License

ISC

Unpacked Size

29.4 kB

Total Files

14

Last publish

Collaborators

  • jlz