### This file contains exampels of HTTP requests to sut.ru API.
# You can use them for reference and better understanding of what I have to deal with.
# You can use a vscode extension (like REST Client) to make this file interactive.

# Current semester "ID" (must be updated before sending requests)
@schet=205.2526/2

# Breakdown:
# "205." part is static
# "2526" represents current academic year (2025-2026 in this case)
# "/2" represents current semester. Can be either "/1" (first semester) or "/2" (second semester)
# When making requests this ID must always point to current semester, otherwise you may get a broken response.

# Tip:
# From August through January is considered to be the first semester
# Other months (February-July) are considered to be the second semester

###

# Get list of faculties
POST https://cabinet.sut.ru/raspisanie_all_new.php
Content-Type: application/x-www-form-urlencoded; charset=UTF-8

choice=1&schet={{schet}}

###

# Get list of groups for faculty

# Year filters out groups by the term year they are at.
# Year should be an integer from 0 to 5, inclusive.
# If year is set to 0, all groups for the chosen faculty will be received instead.

@facultyId=50029
@year=0
POST https://cabinet.sut.ru/raspisanie_all_new.php
Content-Type: application/x-www-form-urlencoded; charset=UTF-8

choice=1&schet={{schet}}&faculty={{facultyId}}&kurs={{year}}

###

# Get timetable for selected group

# Type here can be on of the following:
# 1 - for regular timetable (Занятия)
# 2 - for exams timetable (Экзаменационная сессия)
# 4 - for exams timetable for extramural students (Сессия для заочников)
# 14 - for attestations timetable (Зачеты)

@type=1
@groupId=55512
POST https://cabinet.sut.ru/raspisanie_all_new.php
Content-Type: application/x-www-form-urlencoded; charset=UTF-8

schet={{schet}}&type_z={{type}}&group={{groupId}}

###

# Get page that contains current week number

# We use this page because it's the only known page that contains publicly accessible semester week number.
# Since regular timetable doesn't show normal dates for classes, and instead uses week numbers,
# we need to know a date of the first day of current semester to calculate dates for them
# (e.g. 3 week tuesday is = first day + 3 * 7 + 1)

# Since we know current date and weekday, by knowing week number we can calculate date for the first day.

GET https://www.sut.ru/studentu/raspisanie/raspisanie-zanyatiy-studentov-ochnoy-i-vecherney-form-obucheniya?group={{groupId}}
