File size: 2,166 Bytes
3c2af29 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
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,
}
}
// pub fn is_expected(&self) -> bool {
// self.is_expected.unwrap_or_default()
// }
}
|