/*
* This file is part of laurelin_client
* Copyright (C) 2023 Jonni Liljamo <jonni@liljamo.com>
*
* Licensed under GPL-3.0-only.
* See LICENSE for licensing information.
*/
use serde::Serialize;
use crate::{NetworkingOptions, post_request};
use super::User;
pub type RegisterResponse = Result<User, ()>;
#[derive(Serialize)]
struct RegisterPost {
username: String,
email: String,
password: String,
}
pub fn register(
no: &NetworkingOptions,
username: &str,
email: &str,
password: &str,
) -> RegisterResponse {
let res = post_request!(no, "/user", &RegisterPost {
username: username.to_string(),
email: email.to_string(),
password: password.to_string(),
});
Ok(res.json().unwrap())
}