roblox_api/api/auth/
v1.rs1use serde::{Deserialize, Serialize};
2
3use crate::{DateTime, Error, client::Client};
4
5pub const URL: &str = "https://auth.roblox.com/v1";
6
7#[derive(Clone, Debug, Deserialize, PartialEq, Eq)]
8pub struct RecommendedUsernamesFromDisplayName {
9 #[serde(rename = "didGenerateNewUsername")]
10 pub new_name_generated: bool,
11 #[serde(rename = "suggestedUsernames")]
12 pub suggested_names: Vec<String>,
13}
14
15pub async fn recommended_usernames_from_display_name(
16 client: &mut Client,
17 display_name: &str,
18 birthday: DateTime,
19) -> Result<RecommendedUsernamesFromDisplayName, Error> {
20 #[derive(Serialize)]
21 struct Request<'a> {
22 #[serde(rename = "displayName")]
23 display_name: &'a str,
24 birthday: &'a str,
25 }
26
27 let result = client
28 .requestor
29 .client
30 .post(format!(
31 "{URL}/validators/recommendedUsernameFromDisplayName"
32 ))
33 .headers(client.requestor.default_headers.clone())
34 .json(&Request {
35 display_name,
36 birthday: birthday.to_string().as_str(),
37 })
38 .send()
39 .await;
40
41 let response = client.validate_response(result).await?;
42 client
43 .requestor
44 .parse_json::<RecommendedUsernamesFromDisplayName>(response)
45 .await
46}