http_private: more work on announce route and channels

This commit is contained in:
Joakim Frostegård 2022-04-02 16:06:16 +02:00
parent 7d3ff2e9e6
commit b0f89edd30
3 changed files with 52 additions and 23 deletions

View file

@ -1,6 +1,8 @@
use std::net::{IpAddr, SocketAddr};
use aquatic_http_protocol::{common::AnnounceEvent, request::AnnounceRequest, response::FailureResponse};
use aquatic_http_protocol::{
common::AnnounceEvent, request::AnnounceRequest, response::FailureResponse,
};
use sqlx::{Executor, MySql, Pool};
#[derive(Debug)]
@ -62,19 +64,19 @@ pub async fn validate_announce_request(
user_token: String,
request: AnnounceRequest,
) -> Result<ValidatedAnnounceRequest, FailureResponse> {
let parameters = AnnounceProcedureParameters::new(
source_addr,
user_agent,
user_token,
&request,
);
let parameters =
AnnounceProcedureParameters::new(source_addr, user_agent, user_token, &request);
match call_announce_procedure(pool, parameters).await {
Ok(results) => {
if results.announce_allowed {
Ok(ValidatedAnnounceRequest(request))
} else {
Err(FailureResponse::new(results.failure_reason.unwrap_or_else(|| "Not allowed".into())))
Err(FailureResponse::new(
results
.failure_reason
.unwrap_or_else(|| "Not allowed".into()),
))
}
}
Err(err) => {