modio/request/files/multipart/
complete_multipart_upload_session.rs1use std::future::IntoFuture;
2
3use crate::client::Client;
4use crate::request::{Output, RequestBuilder, Route};
5use crate::response::ResponseFuture;
6use crate::types::files::multipart::{UploadId, UploadSession};
7use crate::types::id::{GameId, ModId};
8
9pub struct CompleteMultipartUploadSession<'a> {
10 http: &'a Client,
11 game_id: GameId,
12 mod_id: ModId,
13 upload_id: UploadId,
14}
15
16impl<'a> CompleteMultipartUploadSession<'a> {
17 pub(crate) const fn new(
18 http: &'a Client,
19 game_id: GameId,
20 mod_id: ModId,
21 upload_id: UploadId,
22 ) -> Self {
23 Self {
24 http,
25 game_id,
26 mod_id,
27 upload_id,
28 }
29 }
30}
31
32impl IntoFuture for CompleteMultipartUploadSession<'_> {
33 type Output = Output<UploadSession>;
34 type IntoFuture = ResponseFuture<UploadSession>;
35
36 fn into_future(self) -> Self::IntoFuture {
37 let route = Route::CompleteMultipartUploadSession {
38 game_id: self.game_id,
39 mod_id: self.mod_id,
40 upload_id: self.upload_id,
41 };
42 match RequestBuilder::from_route(&route).empty() {
43 Ok(req) => self.http.request(req),
44 Err(err) => ResponseFuture::failed(err),
45 }
46 }
47}