sfr_slack_api/builder/
files_get_upload_url_external.rs

1//! The builder for [`FilesGetUploadUrlExternal`].
2
3use sfr_types as st;
4
5use crate::api::files_get_upload_url_external::FilesGetUploadUrlExternal;
6
7/// The builder for [`FilesGetUploadUrlExternal`].
8#[derive(Debug, Default)]
9pub struct FilesGetUploadUrlExternalBuilder {
10    /// The [`filename`][`st::FilesGetUploadUrlExternalRequest::filename`].
11    filename: Option<String>,
12
13    /// The [`length`][`st::FilesGetUploadUrlExternalRequest::length`].
14    length: Option<usize>,
15
16    /// The [`alt_txt`][`st::FilesGetUploadUrlExternalRequest::alt_txt`].
17    alt_txt: Option<String>,
18
19    /// The [`snippet_type`][`st::FilesGetUploadUrlExternalRequest::snippet_type`].
20    snippet_type: Option<String>,
21}
22
23impl FilesGetUploadUrlExternalBuilder {
24    /// The constructor.
25    pub fn new() -> Self {
26        Self::default()
27    }
28
29    /// Builds [`FilesGetUploadUrlExternal`].
30    pub fn build(self) -> Result<FilesGetUploadUrlExternal, st::Error> {
31        let filename = self
32            .filename
33            .ok_or_else(|| st::Error::required_value_is_missing(&["filename"]))?;
34
35        let length = self
36            .length
37            .ok_or_else(|| st::Error::required_value_is_missing(&["length"]))?;
38
39        let result = st::FilesGetUploadUrlExternalRequest {
40            filename,
41            length,
42            alt_txt: self.alt_txt,
43            snippet_type: self.snippet_type,
44        };
45
46        Ok(result.into())
47    }
48
49    /// Sets [`filename`][`st::FilesGetUploadUrlExternalRequest::filename`].
50    pub fn filename(mut self, filename: Option<String>) -> Self {
51        self.filename = filename;
52        self
53    }
54
55    /// Sets [`length`][`st::FilesGetUploadUrlExternalRequest::length`].
56    pub fn length(mut self, length: Option<usize>) -> Self {
57        self.length = length;
58        self
59    }
60
61    /// Sets [`alt_txt`][`st::FilesGetUploadUrlExternalRequest::alt_txt`].
62    pub fn alt_txt(mut self, alt_txt: Option<String>) -> Self {
63        self.alt_txt = alt_txt;
64        self
65    }
66
67    /// Sets [`snippet_type`][`st::FilesGetUploadUrlExternalRequest::snippet_type`].
68    pub fn snippet_type(mut self, snippet_type: Option<String>) -> Self {
69        self.snippet_type = snippet_type;
70        self
71    }
72}