updateGradingPeriodSettings method

Future<GradingPeriodSettings> updateGradingPeriodSettings(
  1. GradingPeriodSettings request,
  2. String courseId, {
  3. String? updateMask,
  4. String? $fields,
})

Updates grading period settings of a course.

Individual grading periods can be added, removed, or modified using this method. The requesting user and course owner must be eligible to modify Grading Periods. For details, see licensing requirements. This method returns the following error codes: * PERMISSION_DENIED if the requesting user is not permitted to modify the grading period settings in a course or for access errors: * UserIneligibleToUpdateGradingPeriodSettings * INVALID_ARGUMENT if the request is malformed. * NOT_FOUND if the requested course does not exist.

request - The metadata request object.

Request parameters:

courseId - Required. The identifier of the course.

updateMask - Mask that identifies which fields in the GradingPeriodSettings to update. The GradingPeriodSettings grading_periods list will be fully replaced by the grading periods specified in the update request. For example: * Grading periods included in the list without an ID are considered additions, and a new ID will be assigned when the request is made. * Grading periods that currently exist, but are missing from the request will be considered deletions. * Grading periods with an existing ID and modified data are considered edits. Unmodified data will be left as is. * Grading periods included with an unknown ID will result in an error. The following fields may be specified:

  • grading_periods * apply_to_existing_coursework

$fields - Selector specifying which fields to include in a partial response.

Completes with a GradingPeriodSettings.

Completes with a commons.ApiRequestError if the API endpoint returned an error.

If the used http.Client completes with an error when making a REST call, this method will complete with the same error.

Implementation

async.Future<GradingPeriodSettings> updateGradingPeriodSettings(
  GradingPeriodSettings request,
  core.String courseId, {
  core.String? updateMask,
  core.String? $fields,
}) async {
  final body_ = convert.json.encode(request);
  final queryParams_ = <core.String, core.List<core.String>>{
    if (updateMask != null) 'updateMask': [updateMask],
    if ($fields != null) 'fields': [$fields],
  };

  final url_ =
      'v1/courses/' +
      commons.escapeVariable('$courseId') +
      '/gradingPeriodSettings';

  final response_ = await _requester.request(
    url_,
    'PATCH',
    body: body_,
    queryParams: queryParams_,
  );
  return GradingPeriodSettings.fromJson(
    response_ as core.Map<core.String, core.dynamic>,
  );
}