use std::sync::Arc;
use http::Method;
use crate::api::AsyncAuthEndpoint;
use crate::db::DbAdapter;
mod account;
mod change_email;
mod delete_user;
mod email_verification;
mod error;
mod password;
mod session;
mod shared;
mod sign_in;
mod sign_out;
mod sign_up;
mod social;
mod update_user;
pub fn core_auth_async_endpoints(adapter: Arc<dyn DbAdapter>) -> Vec<AsyncAuthEndpoint> {
vec![
sign_up::sign_up_email_endpoint(Arc::clone(&adapter)),
sign_in::sign_in_email_endpoint(Arc::clone(&adapter)),
social::sign_in_social_endpoint(Arc::clone(&adapter)),
social::sign_in_oauth2_endpoint(Arc::clone(&adapter)),
social::callback_oauth_endpoint(Method::GET, Arc::clone(&adapter)),
social::callback_oauth_endpoint(Method::POST, Arc::clone(&adapter)),
social::link_social_endpoint(Arc::clone(&adapter)),
error::error_endpoint(),
session::get_session_endpoint(Method::GET, Arc::clone(&adapter)),
session::get_session_endpoint(Method::POST, Arc::clone(&adapter)),
session::list_sessions_endpoint(Arc::clone(&adapter)),
session::update_session_endpoint(Arc::clone(&adapter)),
session::revoke_session_endpoint(Arc::clone(&adapter)),
session::revoke_sessions_endpoint(Arc::clone(&adapter)),
session::revoke_other_sessions_endpoint(Arc::clone(&adapter)),
account::list_user_accounts_endpoint(Arc::clone(&adapter)),
account::unlink_account_endpoint(Arc::clone(&adapter)),
account::get_access_token_endpoint(Arc::clone(&adapter)),
account::refresh_token_endpoint(Arc::clone(&adapter)),
account::account_info_endpoint(Arc::clone(&adapter)),
update_user::update_user_endpoint(Arc::clone(&adapter)),
change_email::change_email_endpoint(Arc::clone(&adapter)),
email_verification::send_verification_email_endpoint(Arc::clone(&adapter)),
email_verification::verify_email_endpoint(Arc::clone(&adapter)),
delete_user::delete_user_endpoint(Arc::clone(&adapter)),
delete_user::delete_user_callback_endpoint(Arc::clone(&adapter)),
password::change_password_endpoint(Arc::clone(&adapter)),
password::set_password_endpoint(Arc::clone(&adapter)),
password::verify_password_endpoint(Arc::clone(&adapter)),
password::request_password_reset_endpoint(Arc::clone(&adapter)),
password::reset_password_callback_endpoint(Arc::clone(&adapter)),
password::reset_password_endpoint(Arc::clone(&adapter)),
sign_out::sign_out_endpoint(adapter),
]
}