[API/Librus] Add syncing grade comments

This commit is contained in:
Kacper Ziubryniewicz
2019-09-29 15:54:59 +02:00
parent 07d4616974
commit 1a74c2a174
3 changed files with 35 additions and 0 deletions

View File

@ -291,6 +291,7 @@ public class Librus implements EdziennikInterface {
targetEndpoints.add("DescriptiveGrades");
targetEndpoints.add("TextGrades");
targetEndpoints.add("BehaviourGrades");
targetEndpoints.add("GradesComments");
targetEndpoints.add("Events");
targetEndpoints.add("CustomTypes");
@ -364,6 +365,8 @@ public class Librus implements EdziennikInterface {
targetEndpoints.add("DescriptiveGrades");
targetEndpoints.add("TextGrades");
targetEndpoints.add("BehaviourGrades");
targetEndpoints.add("GradesComments");
break;
case FEATURE_HOMEWORK:
targetEndpoints.add("Homework");
@ -509,6 +512,9 @@ public class Librus implements EdziennikInterface {
case "TextGrades":
getTextGrades();
break;
case "GradesComments":
getGradesComments();
break;
case "BehaviourGrades":
getBehaviourGrades();
break;
@ -1970,6 +1976,32 @@ public class Librus implements EdziennikInterface {
});
}
private void getGradesComments() {
callback.onActionStarted(R.string.sync_action_syncing_grade_comments);
apiRequest("Grades/Comments", data -> {
if (data == null) {
r("finish", "GradesComments");
return;
}
JsonArray comments = data.get("Comments").getAsJsonArray();
for (JsonElement commentEl : comments) {
JsonObject comment = commentEl.getAsJsonObject();
long gradeId = comment.get("Grade").getAsJsonObject().get("Id").getAsLong();
String text = comment.get("Text").getAsString();
for (Grade grade : gradeList) {
if (grade.id == gradeId) {
grade.description = text;
break;
}
}
}
r("finish", "GradesComments");
});
}
private void getPointGradesCategories() {
if (!fullSync || !enablePointGrades) {
// cancel every not-full sync; no need to download categories again