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.DataUsos
|
||||||
import pl.szczodrzynski.edziennik.data.api.edziennik.usos.ENDPOINT_USOS_API_COURSES
|
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.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.data.db.entity.Team
|
||||||
import pl.szczodrzynski.edziennik.ext.*
|
import pl.szczodrzynski.edziennik.ext.*
|
||||||
|
|
||||||
@ -25,17 +26,20 @@ class UsosApiCourses(
|
|||||||
apiRequest<JsonObject>(
|
apiRequest<JsonObject>(
|
||||||
tag = TAG,
|
tag = TAG,
|
||||||
service = "courses/user",
|
service = "courses/user",
|
||||||
|
params = mapOf(
|
||||||
|
"active_terms_only" to false,
|
||||||
|
),
|
||||||
fields = listOf(
|
fields = listOf(
|
||||||
// "terms" to listOf("id", "name", "start_date", "end_date"),
|
// "terms" to listOf("id", "name", "start_date", "end_date"),
|
||||||
"course_editions" to listOf(
|
"course_editions" to listOf(
|
||||||
"course_id",
|
"course_id",
|
||||||
"course_name",
|
"course_name",
|
||||||
// "term_id",
|
|
||||||
"user_groups" to listOf(
|
"user_groups" to listOf(
|
||||||
"course_unit_id",
|
"course_unit_id",
|
||||||
"group_number",
|
"group_number",
|
||||||
// "class_type",
|
"class_type",
|
||||||
"class_type_id",
|
"class_type_id",
|
||||||
|
"term_id",
|
||||||
"lecturers",
|
"lecturers",
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@ -63,22 +67,38 @@ class UsosApiCourses(
|
|||||||
for (courseEdition in courseEditions) {
|
for (courseEdition in courseEditions) {
|
||||||
val courseId = courseEdition.getString("course_id") ?: continue
|
val courseId = courseEdition.getString("course_id") ?: continue
|
||||||
val courseName = courseEdition.getLangString("course_name") ?: 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) {
|
for (userGroup in userGroups) {
|
||||||
val courseUnitId = userGroup.getLong("course_unit_id") ?: continue
|
val courseUnitId = userGroup.getLong("course_unit_id") ?: continue
|
||||||
val groupNumber = userGroup.getInt("group_number") ?: 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 classTypeId = userGroup.getString("class_type_id") ?: continue
|
||||||
|
val termId = userGroup.getString("term_id") ?: continue
|
||||||
val lecturers = userGroup.getLecturerIds("lecturers")
|
val lecturers = userGroup.getLecturerIds("lecturers")
|
||||||
|
|
||||||
data.teamList.put(courseUnitId, Team(
|
data.teamList.put(
|
||||||
profileId,
|
courseUnitId, Team(
|
||||||
courseUnitId,
|
profileId,
|
||||||
"${profile?.studentClassName} $classTypeId$groupNumber - $courseName",
|
courseUnitId,
|
||||||
2,
|
"${profile?.studentClassName} $courseName ($classTypeId$groupNumber)",
|
||||||
"${data.schoolId}:${courseId} $classTypeId$groupNumber",
|
2,
|
||||||
lecturers.firstOrNull() ?: -1L,
|
"${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
|
hasValidTeam = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -32,7 +32,8 @@ class UsosApiUser(
|
|||||||
"last_name",
|
"last_name",
|
||||||
"student_number",
|
"student_number",
|
||||||
"student_programmes" to listOf(
|
"student_programmes" to listOf(
|
||||||
"programme" to listOf("id"),
|
"id",
|
||||||
|
"programme" to listOf("id", "description"),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@ -40,9 +41,11 @@ class UsosApiUser(
|
|||||||
) { json, response ->
|
) { json, response ->
|
||||||
val programmes = json.getJsonArray("student_programmes")
|
val programmes = json.getJsonArray("student_programmes")
|
||||||
if (programmes.isNullOrEmpty()) {
|
if (programmes.isNullOrEmpty()) {
|
||||||
data.error(ApiError(TAG, ERROR_USOS_NO_STUDENT_PROGRAMMES)
|
data.error(
|
||||||
.withApiResponse(json)
|
ApiError(TAG, ERROR_USOS_NO_STUDENT_PROGRAMMES)
|
||||||
.withResponse(response))
|
.withApiResponse(json)
|
||||||
|
.withResponse(response)
|
||||||
|
)
|
||||||
return@apiRequest
|
return@apiRequest
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -50,13 +53,19 @@ class UsosApiUser(
|
|||||||
val lastName = json.getString("last_name")
|
val lastName = json.getString("last_name")
|
||||||
val studentName = buildFullName(firstName, lastName)
|
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
|
data.studentId = json.getInt("id") ?: data.studentId
|
||||||
profile?.studentNameLong = studentName
|
profile?.studentNameLong = studentName
|
||||||
profile?.studentNameShort = studentName.getShortName()
|
profile?.studentNameShort = studentName.getShortName()
|
||||||
profile?.studentNumber = json.getInt("student_number", -1)
|
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(
|
data.getTeam(
|
||||||
id = null,
|
id = null,
|
||||||
name = it,
|
name = it,
|
||||||
@ -64,6 +73,7 @@ class UsosApiUser(
|
|||||||
isTeamClass = true,
|
isTeamClass = true,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
team?.code = "${data.schoolId}:${studentProgrammeId}:${programmeId}"
|
||||||
|
|
||||||
data.setSyncNext(ENDPOINT_USOS_API_USER, 4 * DAY)
|
data.setSyncNext(ENDPOINT_USOS_API_USER, 4 * DAY)
|
||||||
onSuccess(ENDPOINT_USOS_API_USER)
|
onSuccess(ENDPOINT_USOS_API_USER)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user