caccl-api
Version:
A class that defines a set of smart Canvas endpoints that actually behave how you'd expect them to.
59 lines (58 loc) • 2.59 kB
TypeScript
/**
* Functions for interacting with course announcements
* @namespace api.course.announcement
*/
import EndpointCategory from '../../shared/EndpointCategory';
import CanvasDiscussionTopic from '../../types/CanvasDiscussionTopic';
import APIConfig from '../../shared/types/APIConfig';
declare class ECatAnnouncement extends EndpointCategory {
/**
* Create an announcement
* @author Gabe Abrams
* @memberof api.course.announcement
* @instance
* @async
* @method create
* @param {object} opts object containing all arguments
* @param {string} opts.title the title of the announcement
* @param {string} opts.message the message of the announcement
* @param {number} [opts.courseId=default course id] Canvas course Id
* @param {APIConfig} [config] custom configuration for this specific endpoint
* call (overwrites defaults that were included when api was initialized)
* @returns {Promise<CanvasDiscussionTopic>} a discussion topic {@link https://canvas.instructure.com/doc/api/discussion_topics.html#DiscussionTopic}
*/
create(opts: {
title: string;
message: string;
courseId?: number;
}, config?: APIConfig): Promise<CanvasDiscussionTopic>;
/**
* Gets the list of announcements in a course
* @author Gabe Abrams
* @memberof api.course.announcement
* @instance
* @async
* @method list
* @param {object} opts object containing all arguments
* @param {number} opts.courseId Canvas course Id to query
* @param {boolean} [opts.onlyIncludeActive] if true, only include active
* announcements
* @param {Date} [opts.startDate=two weeks ago] the start date for the
* query
* @param {Date} [opts.endDate=28 days from start date] the end date for
* the query
* @param {boolean} [opts.queryLastSixMonths] if true, overwrites the
* start date with 6 months ago and end date to now
* @param {APIConfig} [config] custom configuration for this specific endpoint
* call (overwrites defaults that were included when api was initialized)
* @returns {Promise<CanvasDiscussionTopic[]>} list of discussion topics {@link https://canvas.instructure.com/doc/api/discussion_topics.html#DiscussionTopic}
*/
list(opts: {
courseId: number;
onlyIncludeActive?: boolean;
startDate?: (Date | string);
endDate?: (Date | string);
queryLastSixMonths?: boolean;
}, config?: APIConfig): Promise<CanvasDiscussionTopic[]>;
}
export default ECatAnnouncement;