2016-08-07 14 views
0

Mit einer HTTP-GET-Anfrage erhalten Sie nur die aktiven Klassen. Können Sie der Google API-URL einen Parameter hinzufügen, der nur eine Liste aktiver Klassen zurückgibt? Oder müssen Sie das zurückgegebene Array durchsuchen und alle Klassen löschen, die mit einer for-Schleife archiviert wurden?Get courses.list ohne archivierte Klassen

var classroom = new XMLHttpRequest(); 
    var accessToken = localStorage.getItem('accessToken'); 
    classroom.open('GET', 
     'https://classroom.googleapis.com/v1/courses'); 
    classroom.setRequestHeader('Authorization', 
     'Bearer ' + accessToken); 
    classroom.send(); 

    classroom.onload = function() { 
     if (classroom.readyState === classroom.DONE) { 
      if (classroom.status === 200) { 
       var response = JSON.parse(classroom.response); 
       vm.classes = response.courses; 
       console.log(response); 
       for (var i = 0; i < response.courses.length; i++){ 
       var courses = response.courses[i]; 
       console.log(courses.name); 

       } 
      } else { 
       console.log("Error Unknown"); 
      } 
     } 
    }; 

Jede Hilfe würde sehr geschätzt werden. Danke!

Antwort

1

Es gibt noch keine Filteroption wie bei Benutzerobjekten. (Soweit ich das beurteilen kann, ist das dokumentiert). Also müssen Sie alle Kurse belegen und dann die archivierten Kurse herausfiltern. https://developers.google.com/classroom/reference/rest/v1/courses gibt es einen CourseState Abschnitt, der die fünf möglichen Zustände ein Kurs in kann auflistet. [COURSE_STATE_UNSPECIFIED, ACTIVE, ARCHIVED, provisioniert, DECLINED]

0

durch die docs Lesen, courses.list eine Liste von Kursen zurückgibt, die der anfragende Benutzer erlaubt, zu Aussicht. Es gibt keine direkte Möglichkeit, nur aktive Klassen abzurufen. Möglicherweise müssen Sie auf Ihre genannte Implementierung zurückgreifen.

0

Versuchen Sie folgendes:

function get_courses(student) { 
    var optionalArgs = { 
    studentId: student 
    }; 
    var response = Classroom.Courses.list(optionalArgs); 
    var courses = response.courses; 
    var active_courses = []; 
    if (courses && courses.length > 0) { 
    for (i = 0; i < courses.length; i++) { 
     var course = courses[i]; 
     if(course.courseState == "ACTIVE"){ 

     active_courses.push(course); 

     Logger.log('%s (%s)', course.name, course.id); 
     } 
    } 
    } else { 
    Logger.log('No courses found.'); 
    } 

    return active_courses; 
}