1.0.12 • Published 8 months ago
moodle-ws v1.0.12
Description
Moodle Web Services (Core Api's) wrapper for nodejs. Written in TypeScript.
Installation
$ npm i moodle-ws
Environment/Setup
- Create .env file in your root folder.
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