Улучшенное отображение ошибок при обновлении ссылки расписания.

This commit is contained in:
2025-04-18 00:11:05 +04:00
parent e04d462223
commit 20602eb863
3 changed files with 48 additions and 41 deletions

View File

@@ -1,23 +1,32 @@
use chrono::{DateTime, Utc};
use derive_more::Display;
use std::mem::discriminant;
use std::sync::Arc;
use utoipa::ToSchema;
/// XLS data retrieval errors.
#[derive(Debug)]
#[derive(Clone, Debug, ToSchema, Display)]
pub enum FetchError {
/// File url is not set.
#[display("The link to the timetable was not provided earlier.")]
NoUrlProvided,
/// Unknown error.
Unknown(reqwest::Error),
#[display("An unknown error occurred while downloading the file.")]
#[schema(value_type = String)]
Unknown(Arc<reqwest::Error>),
/// Server returned a status code different from 200.
BadStatusCode,
#[display("Server returned a status code {_0}.")]
BadStatusCode(u16),
/// The url leads to a file of a different type.
BadContentType,
#[display("The link leads to a file of type '{_0}'.")]
BadContentType(String),
/// Server doesn't return expected headers.
BadHeaders,
#[display("Server doesn't return expected header(s) '{_0}'.")]
BadHeaders(String),
}
impl PartialEq for FetchError {