mirror of
https://github.com/fluxerapp/fluxer
synced 2026-10-10 20:52:12 +09:00
35 lines
1.1 KiB
Rust
35 lines
1.1 KiB
Rust
// SPDX-License-Identifier: AGPL-3.0-or-later
|
|
|
|
use crate::api::generated::types as generated_types;
|
|
|
|
use super::client::{AdminApiClient, ApiError, ApiResult};
|
|
use super::types::CodesResponse;
|
|
|
|
impl AdminApiClient {
|
|
pub async fn generate_gift_codes(
|
|
&self,
|
|
count: u32,
|
|
duration_type: generated_types::GiftCodeDurationTypeSchema,
|
|
duration_quantity: u32,
|
|
) -> ApiResult<CodesResponse> {
|
|
let body = generated_types::GenerateGiftCodesRequest {
|
|
count: crate::api::generated::nonzero_u32(count, "count")
|
|
.map_err(ApiError::Parse)?
|
|
.into(),
|
|
duration_quantity: crate::api::generated::nonzero_u32(
|
|
duration_quantity,
|
|
"duration_quantity",
|
|
)
|
|
.map_err(ApiError::Parse)?
|
|
.into(),
|
|
duration_type,
|
|
};
|
|
let response = self
|
|
.generated()
|
|
.create_admin_gift_codes(&body)
|
|
.await
|
|
.map_err(|e| self.generated_error(e))?;
|
|
self.generated_value(response.into_inner())
|
|
}
|
|
}
|