|
include!(concat!(env!("OUT_DIR"), "/aiserver.v1.rs")); |
|
use error_details::Error; |
|
|
|
impl ErrorDetails { |
|
pub fn status_code(&self) -> u16 { |
|
match Error::try_from(self.error) { |
|
Ok(error) => match error { |
|
Error::Unspecified => 500, |
|
Error::BadApiKey |
|
| Error::InvalidAuthId |
|
| Error::AuthTokenNotFound |
|
| Error::AuthTokenExpired |
|
| Error::Unauthorized => 401, |
|
Error::NotLoggedIn |
|
| Error::NotHighEnoughPermissions |
|
| Error::AgentRequiresLogin |
|
| Error::ProUserOnly |
|
| Error::TaskNoPermissions => 403, |
|
Error::NotFound |
|
| Error::UserNotFound |
|
| Error::TaskUuidNotFound |
|
| Error::AgentEngineNotFound |
|
| Error::GitgraphNotFound |
|
| Error::FileNotFound => 404, |
|
Error::FreeUserRateLimitExceeded |
|
| Error::ProUserRateLimitExceeded |
|
| Error::OpenaiRateLimitExceeded |
|
| Error::OpenaiAccountLimitExceeded |
|
| Error::GenericRateLimitExceeded |
|
| Error::Gpt4VisionPreviewRateLimit |
|
| Error::ApiKeyRateLimit => 429, |
|
Error::BadRequest |
|
| Error::BadModelName |
|
| Error::SlashEditFileTooLong |
|
| Error::FileUnsupported |
|
| Error::ClaudeImageTooLarge => 400, |
|
Error::Deprecated |
|
| Error::FreeUserUsageLimit |
|
| Error::ProUserUsageLimit |
|
| Error::ResourceExhausted |
|
| Error::Openai |
|
| Error::MaxTokens |
|
| Error::ApiKeyNotSupported |
|
| Error::UserAbortedRequest |
|
| Error::CustomMessage |
|
| Error::OutdatedClient |
|
| Error::Debounced |
|
| Error::RepositoryServiceRepositoryIsNotInitialized => 500, |
|
}, |
|
Err(_) => 500, |
|
} |
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|