Files
scel/crates/scel_api/src/graphql/mutation.rs
kjuulh 74ea9ddf79
All checks were successful
continuous-integration/drone/push Build is passing
feat: update
Signed-off-by: kjuulh <contact@kjuulh.io>
2024-04-10 20:50:48 +02:00

39 lines
858 B
Rust

use std::sync::Arc;
use async_graphql::{Context, Object, Result, SimpleObject, ID};
use scel_core::{services::Download, App};
pub struct MutationRoot;
#[derive(SimpleObject)]
struct RequestDownloadResponse {
id: ID,
}
#[Object]
impl MutationRoot {
async fn request_download(
&self,
ctx: &Context<'_>,
download_link: String,
) -> Result<RequestDownloadResponse> {
let app = ctx.data_unchecked::<Arc<App>>();
let download = app
.download_service
.clone()
.add_download(Download {
id: None,
link: download_link,
progress: None,
file_name: None,
})
.await
.unwrap();
Ok(RequestDownloadResponse {
id: download.id.unwrap().into(),
})
}
}