(
db: &SqlitePool,
provider_id: Option<&str>,
)
| 210 | } |
| 211 | |
| 212 | pub async fn get_provider_for_chat( |
| 213 | db: &SqlitePool, |
| 214 | provider_id: Option<&str>, |
| 215 | ) -> AppResult<Provider> { |
| 216 | if let Some(id) = provider_id { |
| 217 | let provider = sqlx::query_as::<_, Provider>(&format!( |
| 218 | "SELECT {SELECT_COLS} FROM providers WHERE id = ?1" |
| 219 | )) |
| 220 | .bind(id) |
| 221 | .fetch_optional(db) |
| 222 | .await?; |
| 223 | |
| 224 | return provider.ok_or_else(|| AppError::NotFound(format!("Provider not found: {id}"))); |
| 225 | } |
| 226 | |
| 227 | let provider = sqlx::query_as::<_, Provider>(&format!( |
| 228 | "SELECT {SELECT_COLS} FROM providers WHERE is_default = 1 ORDER BY updated_at DESC LIMIT 1" |
| 229 | )) |
| 230 | .fetch_optional(db) |
| 231 | .await?; |
| 232 | |
| 233 | provider.ok_or_else(|| AppError::NotFound("No default provider configured".to_string())) |
| 234 | } |
| 235 | |
| 236 | pub async fn toggle_provider_enabled(db: &SqlitePool, id: &str, enabled: bool) -> AppResult<()> { |
| 237 | let now = now_rfc3339(); |
no outgoing calls
no test coverage detected