Skip to content

Commit c09f1d8

Browse files
authored
Fix get name and group from lk.msu (#219)
## Изменения Починен парсер имён пользователей из ЛК МГУ и парсер групп для студентов магистратуры ## Детали реализации Теперь поиск группы происходит с конца. Парсится первая встреченная с конца группа физфака ## Check-List <!-- После сохранения у следующих полей появятся галочки, которые нужно проставить мышкой --> - [x] Вы проверили свой код перед отправкой запроса? - [x] Вы написали тесты к реализованным функциям? - [x] Вы не забыли применить форматирование `black` и `isort` для _Back-End_ или `Prettier` для _Front-End_?
1 parent 0194444 commit c09f1d8

1 file changed

Lines changed: 8 additions & 16 deletions

File tree

auth_backend/auth_plugins/lkmsu.py

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -180,12 +180,12 @@ async def _auth_url(cls):
180180
def get_student(cls, data: dict[str, Any]) -> list[dict[str | Any]]:
181181
student: dict[str, Any] = data.get("student", {})
182182
first_name, last_name, middle_name = '', '', ''
183-
if 'first_name' in data.keys() and data['first_name'] is not None:
184-
first_name = data['first_name']
185-
if 'last_name' in data.keys() and data['last_name'] is not None:
186-
last_name = data['last_name']
187-
if 'middle_name' in data.keys() and data['middle_name'] is not None:
188-
middle_name = data['middle_name']
183+
if 'first_name' in student.keys() and student['first_name'] is not None:
184+
first_name = student['first_name']
185+
if 'last_name' in student.keys() and student['last_name'] is not None:
186+
last_name = student['last_name']
187+
if 'middle_name' in student.keys() and student['middle_name'] is not None:
188+
middle_name = student['middle_name']
189189
full_name = concantenate_strings([first_name, last_name, middle_name])
190190
if not full_name:
191191
full_name = None
@@ -197,14 +197,8 @@ def get_student(cls, data: dict[str, Any]) -> list[dict[str | Any]]:
197197
@classmethod
198198
def get_entrants(cls, data: dict[str, Any]) -> list[dict[str, Any]]:
199199
student: dict[str, Any] = data.get("student", {})
200-
faculties_names = []
201-
for entrant in student.get('entrants'):
202-
faculties_names.append(entrant.get('faculty', {}).get("name"))
203-
for entrant in student.get('entrants'):
204-
if (
205-
cls.settings.LKMSU_FACULTY_NAME in faculties_names
206-
and entrant.get('faculty', {}).get("name") != cls.settings.LKMSU_FACULTY_NAME
207-
):
200+
for entrant in reversed(student.get('entrants', [])):
201+
if entrant.get('faculty', {}).get("name") != cls.settings.LKMSU_FACULTY_NAME:
208202
continue
209203
if not (group := entrant.get("groups")):
210204
group = [{}]
@@ -231,8 +225,6 @@ def get_entrants(cls, data: dict[str, Any]) -> list[dict[str, Any]]:
231225
"value": group[0].get("name"),
232226
},
233227
]
234-
if cls.settings.LKMSU_FACULTY_NAME not in faculties_names:
235-
break
236228
return items
237229

238230
@classmethod

0 commit comments

Comments
 (0)