torrust_index_backend/services/
proxy.rs1use std::sync::Arc;
10
11use bytes::Bytes;
12
13use super::user::DbUserRepository;
14use crate::cache::image::manager::{Error, ImageCacheService};
15use crate::models::user::UserId;
16
17pub struct Service {
18 image_cache_service: Arc<ImageCacheService>,
19 user_repository: Arc<DbUserRepository>,
20}
21
22impl Service {
23 #[must_use]
24 pub fn new(image_cache_service: Arc<ImageCacheService>, user_repository: Arc<DbUserRepository>) -> Self {
25 Self {
26 image_cache_service,
27 user_repository,
28 }
29 }
30
31 pub async fn get_image_by_url(&self, url: &str, user_id: &UserId) -> Result<Bytes, Error> {
42 let user = self.user_repository.get_compact(user_id).await.ok();
43
44 self.image_cache_service.get_image_by_url(url, user).await
45 }
46}