mirror of
https://github.com/szkolny-eu/szkolny-android.git
synced 2025-02-08 00:54:37 +01:00
[API/Usos] Change team codes to include unique ID or current year
This commit is contained in:
parent
c35222cdfd
commit
514fbafd00
@ -9,6 +9,7 @@ import pl.szczodrzynski.edziennik.data.api.ERROR_USOS_API_INCOMPLETE_RESPONSE
|
||||
import pl.szczodrzynski.edziennik.data.api.edziennik.usos.DataUsos
|
||||
import pl.szczodrzynski.edziennik.data.api.edziennik.usos.ENDPOINT_USOS_API_COURSES
|
||||
import pl.szczodrzynski.edziennik.data.api.edziennik.usos.data.UsosApi
|
||||
import pl.szczodrzynski.edziennik.data.db.entity.GradeCategory
|
||||
import pl.szczodrzynski.edziennik.data.db.entity.Team
|
||||
import pl.szczodrzynski.edziennik.ext.*
|
||||
|
||||
@ -25,17 +26,20 @@ class UsosApiCourses(
|
||||
apiRequest<JsonObject>(
|
||||
tag = TAG,
|
||||
service = "courses/user",
|
||||
params = mapOf(
|
||||
"active_terms_only" to false,
|
||||
),
|
||||
fields = listOf(
|
||||
// "terms" to listOf("id", "name", "start_date", "end_date"),
|
||||
"course_editions" to listOf(
|
||||
"course_id",
|
||||
"course_name",
|
||||
// "term_id",
|
||||
"user_groups" to listOf(
|
||||
"course_unit_id",
|
||||
"group_number",
|
||||
// "class_type",
|
||||
"class_type",
|
||||
"class_type_id",
|
||||
"term_id",
|
||||
"lecturers",
|
||||
),
|
||||
),
|
||||
@ -63,22 +67,38 @@ class UsosApiCourses(
|
||||
for (courseEdition in courseEditions) {
|
||||
val courseId = courseEdition.getString("course_id") ?: continue
|
||||
val courseName = courseEdition.getLangString("course_name") ?: continue
|
||||
val userGroups = courseEdition.getJsonArray("user_groups")?.asJsonObjectList() ?: continue
|
||||
val userGroups =
|
||||
courseEdition.getJsonArray("user_groups")?.asJsonObjectList() ?: continue
|
||||
for (userGroup in userGroups) {
|
||||
val courseUnitId = userGroup.getLong("course_unit_id") ?: continue
|
||||
val groupNumber = userGroup.getInt("group_number") ?: continue
|
||||
// val classType = userGroup.getLangString("class_type") ?: continue
|
||||
val classType = userGroup.getLangString("class_type") ?: continue
|
||||
val classTypeId = userGroup.getString("class_type_id") ?: continue
|
||||
val termId = userGroup.getString("term_id") ?: continue
|
||||
val lecturers = userGroup.getLecturerIds("lecturers")
|
||||
|
||||
data.teamList.put(courseUnitId, Team(
|
||||
data.teamList.put(
|
||||
courseUnitId, Team(
|
||||
profileId,
|
||||
courseUnitId,
|
||||
"${profile?.studentClassName} $classTypeId$groupNumber - $courseName",
|
||||
"${profile?.studentClassName} $courseName ($classTypeId$groupNumber)",
|
||||
2,
|
||||
"${data.schoolId}:${courseId} $classTypeId$groupNumber",
|
||||
"${data.schoolId}:${termId}:${courseId} $classTypeId$groupNumber",
|
||||
lecturers.firstOrNull() ?: -1L,
|
||||
))
|
||||
)
|
||||
)
|
||||
|
||||
val gradeCategory = data.gradeCategories[courseUnitId]
|
||||
data.gradeCategories.put(
|
||||
courseUnitId, GradeCategory(
|
||||
profileId,
|
||||
courseUnitId,
|
||||
gradeCategory?.weight ?: -1.0f,
|
||||
0,
|
||||
courseId,
|
||||
).addColumn(classType)
|
||||
)
|
||||
|
||||
hasValidTeam = true
|
||||
}
|
||||
}
|
||||
|
@ -32,7 +32,8 @@ class UsosApiUser(
|
||||
"last_name",
|
||||
"student_number",
|
||||
"student_programmes" to listOf(
|
||||
"programme" to listOf("id"),
|
||||
"id",
|
||||
"programme" to listOf("id", "description"),
|
||||
),
|
||||
),
|
||||
),
|
||||
@ -40,9 +41,11 @@ class UsosApiUser(
|
||||
) { json, response ->
|
||||
val programmes = json.getJsonArray("student_programmes")
|
||||
if (programmes.isNullOrEmpty()) {
|
||||
data.error(ApiError(TAG, ERROR_USOS_NO_STUDENT_PROGRAMMES)
|
||||
data.error(
|
||||
ApiError(TAG, ERROR_USOS_NO_STUDENT_PROGRAMMES)
|
||||
.withApiResponse(json)
|
||||
.withResponse(response))
|
||||
.withResponse(response)
|
||||
)
|
||||
return@apiRequest
|
||||
}
|
||||
|
||||
@ -50,13 +53,19 @@ class UsosApiUser(
|
||||
val lastName = json.getString("last_name")
|
||||
val studentName = buildFullName(firstName, lastName)
|
||||
|
||||
val studentProgrammeId = programmes.getJsonObject(0)
|
||||
.getString("id")
|
||||
val programmeId = programmes.getJsonObject(0)
|
||||
.getJsonObject("programme")
|
||||
.getString("id")
|
||||
|
||||
data.studentId = json.getInt("id") ?: data.studentId
|
||||
profile?.studentNameLong = studentName
|
||||
profile?.studentNameShort = studentName.getShortName()
|
||||
profile?.studentNumber = json.getInt("student_number", -1)
|
||||
profile?.studentClassName = programmes.getJsonObject(0).getJsonObject("programme").getString("id")
|
||||
profile?.studentClassName = programmeId
|
||||
|
||||
profile?.studentClassName?.let {
|
||||
val team = programmeId?.let {
|
||||
data.getTeam(
|
||||
id = null,
|
||||
name = it,
|
||||
@ -64,6 +73,7 @@ class UsosApiUser(
|
||||
isTeamClass = true,
|
||||
)
|
||||
}
|
||||
team?.code = "${data.schoolId}:${studentProgrammeId}:${programmeId}"
|
||||
|
||||
data.setSyncNext(ENDPOINT_USOS_API_USER, 4 * DAY)
|
||||
onSuccess(ENDPOINT_USOS_API_USER)
|
||||
|
Loading…
x
Reference in New Issue
Block a user