autograder.api.courses.assignments.submissions.fetch.user.history

Get the most recent scores for this user and assignment.

 1"""
 2Get the most recent scores for this user and assignment.
 3"""
 4
 5import typing
 6
 7import lms.model.scores
 8
 9import autograder.api.common
10import autograder.api.config
11import autograder.model.assignment
12import autograder.model.config
13
14API_ENDPOINT: str = 'courses/assignments/submissions/fetch/user/history'
15API_WRITE: bool = False
16API_PARAMS: typing.List[autograder.api.config.APIParam] = [
17    autograder.api.config.PARAM_SERVER,
18    autograder.api.config.PARAM_USER_EMAIL,
19    autograder.api.config.PARAM_USER_PASS,
20
21    autograder.api.config.PARAM_COURSE,
22    autograder.api.config.PARAM_ASSIGNMENT,
23
24    autograder.api.config.PARAM_TARGET_EMAIL_OR_SELF,
25]
26
27def send(config: autograder.model.config.Config, **kwargs: typing.Any) -> typing.Tuple[bool, typing.List[lms.model.scores.AssignmentScore]]:
28    """ Send a request to the autograder. """
29
30    response = autograder.api.common.make_api_request(API_ENDPOINT, config, API_PARAMS, write = API_WRITE, **kwargs)
31
32    if (not response['found-user']):
33        return False, []
34
35    scores = []
36    for raw_score in response['history']:
37        scores.append(autograder.model.assignment.make_assignment_score(raw_score))
38
39    return True, sorted(scores)
API_ENDPOINT: str = 'courses/assignments/submissions/fetch/user/history'
API_WRITE: bool = False
def send( config: autograder.model.config.Config, **kwargs: Any) -> Tuple[bool, List[lms.model.scores.AssignmentScore]]:
28def send(config: autograder.model.config.Config, **kwargs: typing.Any) -> typing.Tuple[bool, typing.List[lms.model.scores.AssignmentScore]]:
29    """ Send a request to the autograder. """
30
31    response = autograder.api.common.make_api_request(API_ENDPOINT, config, API_PARAMS, write = API_WRITE, **kwargs)
32
33    if (not response['found-user']):
34        return False, []
35
36    scores = []
37    for raw_score in response['history']:
38        scores.append(autograder.model.assignment.make_assignment_score(raw_score))
39
40    return True, sorted(scores)

Send a request to the autograder.