roblox_api/api/auth/
v1.rs

1use 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}