sakai-api icon indicating copy to clipboard operation
sakai-api copied to clipboard

:milky_way: Unofficial Sakai API Wrapper

Sakai API

Unofficial wrapper for the Sakai API

Installation

$ npm install sakai-api

Authenticate

Before you can take any actions you need to be authenticated.


const SakaiAPI = require("sakai-api").default;

(async () => {
    const API = new SakaiAPI();
    await API.login({ username: "xxx", password: "xxx" });
})();

Getting announcement for a site

const SakaiAPI = require("sakai-api").default;

(async () => {
    const API = new SakaiAPI();
    await API.login({ username: "xxx", password: "xxx" });

    const siteId = "xxx"; // <---- site id
    let announcement = await API.getSiteAnnouncement(siteId);
    console.log(announcement.data);
})();

Getting assignments for a site

const SakaiAPI = require("sakai-api").default;

(async () => {
    const API = new SakaiAPI();
    await API.login({ username: "xxx", password: "xxx" });

    const siteId = "xxx"; // <---- site id
    let assignment = await API.getSiteAssignment(siteId);
    console.log(assignment.data);
})();

Error handling

Any unsuccessful action will throw an error. If you want to mitigate that you need to catch it.

const SakaiAPI = require("sakai-api").default;

(async () => {
    const API = new SakaiAPI();
    try {
        await API.login({ username: "xxx", password: "xxx" });

        const siteId = "xxx"; // <---- site id
        let assignment = await API.getSiteAssignment(siteId);
        console.log(assignment.data);
    } catch (e) {
        console.log(e)
    }
})();

API

  • SakaiAPI
    • new SakaiAPI(config)
    • .login(params)
    • .getSiteAnnouncement(siteId)
    • .getUserAnnouncement()
    • .getSiteAssignment(siteId)
    • .getItemAssignment(assignmentId)
    • .getMyAssignment()
    • .getSiteCalendar(siteId)
    • .getMyCalendar()
    • .getEventCalendar(params)
    • .getSite()
    • .getSiteContent(siteId)

SakaiAPI.new(config)

Initialize new SakaiAPI.

Param Type Description
config.baseUrl String Baseurl - your institution's url

SakaiAPI.login(params) => null

Returns the extracted meaning from a sentence, based on the context.

Param Type Description
params.username String Username
params.password String Password

SakaiAPI.getSiteAnnouncement(siteId) => Promise

Gets announcement for a specific site

Param Type Description
siteId String Site ID

SakaiAPI.getUserAnnouncement() => Promise

Gets all announcement for current user


SakaiAPI.getSiteAssignment(siteId) => Promise

Gets assignments for a specific site

Param Type Description
siteId String Site ID

SakaiAPI.getItemAssignment(assignmentId) => Promise

Gets an assignment

Param Type Description
assignmentId String Assignment ID

SakaiAPI.getMyAssignment() => Promise

Gets all assignments for current user


SakaiAPI.getSiteCalendar(siteId) => Promise

Gets calendar for a specific site

Param Type Description
siteId String Site ID

SakaiAPI.getMyCalendar() => Promise

Gets all calendars for current user


SakaiAPI.getEventCalendar(params) => Promise

Gets calendar event for a specific site

Param Type Description
params.siteId String Site ID
params.eventId String Event ID

SakaiAPI.getSite() => Promise

Gets sites for current user


SakaiAPI.getSiteContent(siteId)

Gets content for a specific site

Param Type Description
siteId String Site ID

SakaiAPI.getMyContent()

Gets content for current user