Я начинаю использовать Classroom API для улучшения локальных приложений в нашей школе. Чтобы составить отчет для класса, я хочу перечислить все ученические задания и оценки. Я использую циклы для go по всем курсам для студента, затем все курсовые работы для каждого курса, а затем все материалы для каждой курсовой работы. Вот фрагмент кода, который я использую:
function fListWorkStudent(idStudent)
{
// Variables
var pageToken = null;
var optionalArgs =
{
pageToken: pageToken,
courseStates: 'ACTIVE',
studentId: idStudent,
pageSize: 0
};
var optionalArgs2 =
{
pageToken: pageToken,
userId: idStudent,
pageSize: 0
};
// Courses for a student
var response = Classroom.Courses.list(optionalArgs);
var sCourses = response.courses;
if (sCourses.length === 0)
Logger.log("No courses");
else
{
for (course in sCourses)
{
var idCourse=sCourses[course].id;
var nomprof=getUserName(sCourses[course].ownerId);
// Coursework for every course
var responseW = Classroom.Courses.CourseWork.list(idCourse);
var works = responseW.courseWork;
if (works && (works.length > 0))
{
for work in works)
{
var idWork=works[work].id;
// Submissions for every coursework
var responseS = Classroom.Courses.CourseWork.StudentSubmissions.list(idCourse, idWork, optionalArgs2);
var submissions = responseS.studentSubmissions;
if (submissions && submissions.length >0)
{
for (submission in submissions)
{
// Prepare report here
}
}
}
}
}
}
}
Проблема с этим кодом заключается в том, что когда я вызываю Classroom.Courses.CourseWork.StudentSubmissions.list (idCourse, idWork, optionArgs2), чтобы отфильтровать представления выбранного студента, и l oop достигает курсовой работы, не назначенной этому студенту, вызов завершается с ошибкой 'classroom.courses.courseWork.studentSubmissions.list; ошибка: запрошенная сущность не найдена. ' Я мог бы решить эту проблему, проверив в l oop, не назначена ли курсовая работа этому студенту перед вызовом функции API, или, возможно, используя предложение try..catch для обнаружения возможной ошибки, но я хотел бы знать, есть ли является более разумным решением этой проблемы.
С уважением, Рафаэль