Skip to content

Releases: kstateome/canvas-api

2.0.0

08 Jun 19:48
Compare
Choose a tag to compare

BREAK EVERYTHING!

This release doesn't have any functionality change over version 1.8.0 however it changes virtually all of the uses of Integer to Long so it will break compilation of everything that depends on it. This was done because all numbers within Canvas are 64 bits and there have been several problems with people running into problems with Integers so rather than fix things one by one, we decided to just do everything and bump the major version number because it is such a breaking change.

1.8.0

02 Jun 06:03
Compare
Choose a tag to compare

Big updates after a year of neglect!

  • Skipped to version 1.8.0: The oxctl fork made several public releases under the coordinates uk.ac.ox.ctl:canvas-api so I skipped ahead to avoid confusion. This release contains all changes made in the fork as of May 2021, plus some more changes.
  • Breaking changes: Several fields were changed from Integer to Long:
    • Account.defaultStorageQuotaMb (as well as user & group quotas)
    • Conversation.id
    • Conversation.Message.id
    • Conversation.Message.authorId
    • Conversation.MessageParticipant.id
    • Course.id
    • Course.storageQuotaMb
    • Enrollment.courseId
  • New API calls or fields implemented
    • Retrieve grading rules as part of assignment groups AssignmentGroup.gradingRules
    • Retrieve assignment submission history (Submission.submissionHistory)
    • Force new thread when creating a Conversation (via CreateConversationOptions class)
    • Ability to retrieve a single course from an account (in CourseReader)
    • Query and set feature flags
    • Calendar related API calls
    • Include course blueprint status in the account course list options
    • Ability to query course modules
    • Support for SIS imports
    • Authentication log API calls
    • Ability to list submission objects for multiple assignments in a single call
    • Add createdAt field to the Enrollment object
    • Support for grading rubrics
    • Ability to do a batch update on courses to change the course state (published, concluded, etc) in an asynchronous call
  • Fixes
    • In the Tab model, position was misspelled which caused tab order to never be defined
    • Fix errors when pushing UTF-8 text to Canvas
    • Throwing more specific exceptions when encountering API throttling and gateway timeout errors
    • Fix cookie handling when uploading files

1.0.24

20 Dec 20:21
Compare
Choose a tag to compare

Minor update to add an assignment visibility list to the Assignment object.

1.0.23

15 Nov 22:05
Compare
Choose a tag to compare

Potentially disruptive change:

Logging has been changed from a hard dependency on log4j to using the slf4j framework which lets you choose your logging implementation at runtime. Depending on your application's runtime environment, you may have to add the following dependency to your project:

    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <version>1.7.27</version>
    </dependency>

For details see #111

Other changes:

  • Ability to query Assignment Submission objects from courses and sections
  • New field in ExternalTool model to indicate LTI version number
  • New field in Assignment model for omitting an assignment from the final grade
  • Several compiler/javadoc warning cleanups

1.0.17

02 Aug 19:08
Compare
Choose a tag to compare
  • Changed ListAccountAdminOptions to make use of a list of String instead of numbers
  • Changed how exceptions from 5xx response from rest requests are handled.
  • Changed how error messages are being sent/handled.

1.0.16

26 Apr 20:01
Compare
Choose a tag to compare

This release contains a few changes that mostly affect our internal CI and release processes.

Visible changes include:

  • Many additions to the Course object. Canvas has added some features concerning public courses and permissions that were not reflected in this library yet.
  • Ability to control whether or not null values get serialized out when sending JSON objects to Canvas. This is required if you are trying to blank out a value that was previously set. To make use of this feature, pass an additional boolean parameter to the CanvasApiFactory.getWriter method to get a writer that will serialize nulls. Default behavior remains to not serialize null values.
  • Implementation of some Account Admin related API calls
  • Implementation of the API call to crosslist sections

1.0.15

02 Jan 22:37
Compare
Choose a tag to compare
  • Implemented equals and hashcode for User and Enrollment
  • Refactored wrapper objects into their own package.

1.0.14

04 Oct 15:23
Compare
Choose a tag to compare

Lots of new calls implemented thanks to CU Boulder and UBC!

  • Ability to enroll a user in a section (course enrollment was already implemented)
    • Method EnrollUser was deprecated in favor of either enrollUserInCourse or enrollUserInSection
  • Retrieve user Login objects from Canvas
  • Update a section object in Canvas
  • API calls will now throw a RateLimitException if the rate limit remaining header returned by Canvas drops too low

Breaking change: The userId field in the Enrollment model object was changed from Integer to String. This was necessary to allow specifying an SIS user ID when creating enrollments instead of just Canvas user ID.

1.0.13

01 Sep 22:11
Compare
Choose a tag to compare

There were two internal releases that my coworkers did while I was out of the office. I will cover all the changes here:

1.0.11

1.0.12

1.0.13

Big pull request from @dquispeott that added several new features:

  • Enhanced call to the Enroll a User endpoint to enable using all available options (for example force enrolling a user instead of just sending an invitation)
  • Implemented Course editing call
  • Implemented call to list the roles available in an account
  • Implemented call to retrieve user details

1.0.10

03 Mar 20:32
Compare
Choose a tag to compare

Changes in this release:

  • Implemented quiz question deletion
  • Fixed quiz editing method
  • Fixed user creation method (thanks to @wmono for the PR)
  • Fixed time stamp formatting for write operations (via custom Gson type adapter)
  • Added a custom CanvasException which gets thrown when there is an error and carries with it the request URL that failed as well as the Canvas human readable error string returned (if any)
  • Added a specific ObjectNotFoundException for throwing when we get a 404 from Canvas.

Error handling is an ongoing struggle to get right and may change further. Input from other developers is welcome!