impl register

This commit is contained in:
bitfl0wer 2023-04-21 18:20:57 +02:00
parent 1418b67921
commit b18e38a5fc
No known key found for this signature in database
GPG Key ID: 84BBB60DF895ABF2
1 changed files with 28 additions and 4 deletions

View File

@ -3,16 +3,40 @@ pub mod register {
use reqwest::Client; use reqwest::Client;
use serde_json::json; use serde_json::json;
use crate::{api::schemas::schemas::RegisterSchema, instance::Instance}; use crate::{
api::{limits::LimitType, schemas::schemas::RegisterSchema},
errors::InstanceServerError,
instance::{Instance, Token},
};
impl Instance { impl Instance {
pub fn register(&mut self, register_schema: &RegisterSchema) { /**
Registers a new user on the Spacebar server.
# Arguments
* `register_schema` - The [`RegisterSchema`] that contains all the information that is needed to register a new user.
# Errors
* [`InstanceServerError`] - If the server does not respond.
*/
pub async fn register(
&mut self,
register_schema: &RegisterSchema,
) -> Result<Token, InstanceServerError> {
let json_schema = json!(register_schema); let json_schema = json!(register_schema);
let limited_requester = &self.requester; let limited_requester = &mut self.requester;
let client = Client::new(); let client = Client::new();
let endpoint_url = self.urls.get_api().to_string() + "/auth/register"; let endpoint_url = self.urls.get_api().to_string() + "/auth/register";
let request_builder = client.post(endpoint_url).body(json_schema.to_string()); let request_builder = client.post(endpoint_url).body(json_schema.to_string());
// TODO let response = limited_requester
.send_request(request_builder, LimitType::AuthRegister)
.await;
if response.is_none() {
return Err(InstanceServerError::NoResponse);
}
let token = match response.unwrap().text().await {
Ok(token) => token,
Err(_) => return Err(InstanceServerError::NoResponse),
};
return Ok(Token { token });
} }
} }
} }