RosterServer: Node

⚠️

Exciting News!

Our transition to a new website is complete. Click here to seamlessly access the latest version of this article.

Kindly update any bookmarked URLs accordingly. The Development Center will no longer be accessible after April 1, 2024. Thank you for your attention to this matter.

📘

GitHub

Click here to go to GitHub

Setup

Insert the file OneRoster.js into your project.
RosterServer uses crypto-js and requests, so you will need to install them if they are not being used in your project already.

In the directory containing your package.json:

npm install request --save
npm install crypto-js --save

Usage

First, import OneRoster.

const OneRoster = require('./OneRoster')

Next, create a new instance of the OneRoster object, which takes in two strings,
the client_id and client_secret.

let oneRoster = new OneRoster('XXXXXXXXXXXXXXXXXXXXXXXX', 'XXXXXXXXXXXXXXXXXXXXXXXX');

You are now able to make requests to a specified URL. This is done using the method makeRosterRequest(url, callback), which takes in the URL and a callback, which takes in error, the status code, and the JSON response.

let oneRoster = new OneRoster('XXXXXXXXXXXXXXXXXXXXXXXX', 'XXXXXXXXXXXXXXXXXXXXXXXX');
oneRoster.makeRosterRequest("https://example.com/users", function(error, statusCode, response) {
    if (error) throw new Error(error);
    console.log(statusCode); // The status code
    console.log(response);  // The JSON response
});

Example

📘

Example

Print all students' names

// Import the OneRoster module
const OneRoster = require('./OneRoster');

function getUsers(url) {
    // Create new OneRoster object with the client_id and client_secret
    let oneRoster = new OneRoster('XXXXXXXXXXXXXXXXXXXXXXXX', 'XXXXXXXXXXXXXXXXXXXXXXXX');

    // Make the request to the given url with the callback that takes in error, the status code, and the response body
    oneRoster.makeRosterRequest(url, function (error, statusCode, response) {
        if (error) throw new Error(error);

        // Decode the resopnse
        let decoded = JSON.parse(response);

        // If statusCode is 200, create array of users from response, otherwise print message
        switch(statusCode) {
            case 200:
                printUsers(decoded.users);
                break;
            case 401:
                console.log("Unauthorized Request\n" + response);
                break;
            case 404:
                console.log("Not Found\n" + response);
                break;
            case 500:
                console.log("Server Error\n" + response);
                break;
            default:
                console.log("Something Went Wrong, status code " + response.statusCode + "\n" + response);
                break;
        }
    });
}

// Print the users
function printUsers(users) {
    for (let i = 0; i < users.length; i++) {
        console.log(users[i].givenName + " " + users[i].familyName);
    }
}

getUsers("https://example.com/users?fields=givenName%2CfamilyName&filter=role%3D'student'");