1.0.12 • Published 8 months ago

moodle-ws v1.0.12

Weekly downloads
-
License
ISC
Repository
github
Last release
8 months ago

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
```typescript
    import { MwsService } from 'moodle-ws';

    //call a new instance
    const mws = new MwsService();
```
  • createUser Service (create an object that contains required params example below)
```typescript
    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))
```typescript
    //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)
```typescript
    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
```typescript
    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
```typescript
    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)
```typescript
    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
```typescript
    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
```typescript
    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
```typescript
    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!
1.0.12

8 months ago

1.0.11

9 months ago

1.0.10

9 months ago

1.0.9

1 year ago

1.0.8

1 year ago

1.0.7

1 year ago

1.0.6

1 year ago

1.0.5

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

0.0.23

1 year ago

0.0.22

1 year ago

0.0.21

1 year ago

0.0.20

1 year ago

0.0.19

1 year ago

0.0.18

1 year ago

0.0.17

1 year ago

0.0.16

1 year ago

0.0.15

1 year ago

0.0.14

1 year ago

0.0.13

1 year ago

0.0.12

1 year ago

0.0.11

1 year ago

0.0.10

1 year ago

0.0.9

1 year ago

0.0.8

1 year ago

0.0.7

1 year ago

0.0.6

1 year ago

0.0.5

1 year ago

0.0.4

1 year ago

0.0.3

1 year ago

0.0.2

1 year ago

1.0.0

1 year ago