diff --git a/README.md b/README.md index e178a82..227c60f 100644 --- a/README.md +++ b/README.md @@ -3,4 +3,6 @@ ## TODO - [x] Добавить RateLimiter -- [x] Добавить обработку ошибок при запросах к modeus \ No newline at end of file +- [x] Добавить обработку ошибок при запросах к modeus +- [ ] Добавить кэширование расписания +- [ ] Сделать передачу ошибок выше по цепочке \ No newline at end of file diff --git a/SfeduSchedule/Services/ModeusService.cs b/SfeduSchedule/Services/ModeusService.cs index 0083304..3c1b9ee 100644 --- a/SfeduSchedule/Services/ModeusService.cs +++ b/SfeduSchedule/Services/ModeusService.cs @@ -31,11 +31,7 @@ namespace SfeduSchedule.Services System.Text.Encoding.UTF8, "application/json"); var response = await _httpClient.SendAsync(request); _logger.LogInformation("GetScheduleAsync: Ответ получен: {StatusCode}", response.StatusCode); - if (response.StatusCode != System.Net.HttpStatusCode.OK) - { - _logger.LogError("GetScheduleAsync: Ошибка при получении списка студентов: {StatusCode}", response.StatusCode); - return null; - } + response.EnsureSuccessStatusCode(); return await response.Content.ReadAsStringAsync(); } @@ -45,11 +41,7 @@ namespace SfeduSchedule.Services $"schedule-calendar-v2/api/calendar/events/{eventId}/attendees"); var response = await _httpClient.SendAsync(request); _logger.LogInformation("GetAttendeesAsync: Ответ получен: {StatusCode}", response.StatusCode); - if (response.StatusCode != System.Net.HttpStatusCode.OK) - { - _logger.LogError("GetAttendeesAsync: Ошибка при получении списка студентов: {StatusCode}", response.StatusCode); - return new List(); - } + response.EnsureSuccessStatusCode(); List? attendees; try { @@ -71,11 +63,7 @@ namespace SfeduSchedule.Services System.Text.Encoding.UTF8, "application/json"); var response = await _httpClient.SendAsync(request); _logger.LogInformation("SearchRoomsAsync: Ответ получен: {StatusCode}", response.StatusCode); - if (response.StatusCode != System.Net.HttpStatusCode.OK) - { - _logger.LogError("SearchRoomsAsync: Ошибка при получении списка студентов: {StatusCode}", response.StatusCode); - return null; - } + response.EnsureSuccessStatusCode(); return await response.Content.ReadAsStringAsync(); } @@ -92,11 +80,7 @@ namespace SfeduSchedule.Services var response = await _httpClient.SendAsync(request); _logger.LogInformation("GetGuidAsync: Ответ получен: {StatusCode}", response.StatusCode); - if (response.StatusCode != System.Net.HttpStatusCode.OK) - { - _logger.LogError("GetGuidAsync: Ошибка при получении списка студентов: {StatusCode}", response.StatusCode); - return null; - } + response.EnsureSuccessStatusCode(); var json = await response.Content.ReadAsStringAsync(); @@ -125,8 +109,8 @@ namespace SfeduSchedule.Services var schedule = await GetScheduleAsync(msr); if (schedule == null) { - _logger.LogError("GetScheduleJsonAsync: Schedule is null. Request: " + JsonSerializer.Serialize(msr, GlobalVariables.jsonSerializerOptions)); - return null; + _logger.LogError("GetScheduleJsonAsync: Schedule is null. Request: {@msr}", msr); + throw new Exception("Schedule is null"); } Schedule? scheduleJson;