course-api-wrapper
v1.0.2
Published
An asynchronous TypeScript wrapper for SFU's course API. This package is not endorsed or supported by SFU.
Downloads
204
Readme
About The Project
This project was made since there is no developed wrapper that I know of for SFU's API. The goal is to not simply return the JSON data from the API, but custom classes with useful methods.
Also, this package has zero runtime dependencies! The package.json file only has "devDependencies", and no "dependencies".
This project is not endorsed or supported by Simon Fraser University.
Getting Started
Install the package from npm: npm install course-api-wrapper
Usage
Example usage of this API wrapper are shown below. For more detail, including all the properties each class has, see the TypeDoc Documentation.
Note that the API wrapper functions are the default export, while classes returned by the API wrapper functions and types used by this API wrapper are named exports.
Full Basic Example
In a non-async environment:
import courseApiWrapper from 'course-api-wrapper';
courseApiWrapper
.courseSection('cmpt', '120', 'd100', 2021, 'fall')
.then((courseSection) => {
console.log(courseSection);
});
In an async environment:
import courseApiWrapper from 'course-api-wrapper';
(async () => {
const courseSection = await courseApiWrapper.courseSection(
'cmpt',
'105w',
'd100',
2022,
'fall',
);
console.log(courseSection);
})();
Wrapper Functions
Get a course:
const course = await courseApiWrapper.course('cmpt', '120', 2021, 'fall');
Get a course offering:
const courseSection = await courseApiWrapper.courseSection(
'cmpt',
'120',
'd100',
2021,
'fall',
);
Course Class
For the examples, assume an instance of class Course
(found in
Course.ts) called course
has been created.
Check if a course has a given section:
const hasSection = await course.hasSection('d100');
Get a section of a course:
const courseSection = await course.getSection('d100');
Get all course offering sections of a course:
const courseSections = await course.getSections();
Loop through all course offering sections of a course:
for await (const courseSection of course) {
console.log(courseSection);
}
Contributing
Feel free to fork and create a pull request, or open an issue.
License
Distributed under the MIT License. See LICENSE
for more information.
Contact
Ewan Brinkman
Project Link: https://github.com/ewanbrinkman/sfu-course-api-wrapper
Acknowledgments
- SFU's Course Outlines REST API documentation
- https://www.sfu.ca/outlines/help/api.html