Move AuthToken into requests

This commit is contained in:
aniampio
2019-12-17 12:28:38 +01:00
parent 63f30bf9d0
commit 4a241bb59a
2 changed files with 16 additions and 10 deletions
+15 -3
View File
@@ -48,15 +48,22 @@ where
fn from_bytes(bytes: &[u8]) -> Result<Self, ProviderRequestError>;
}
#[derive(Debug)]
pub struct AuthToken {
pub value : Vec<u8>
}
#[derive(Debug)]
pub struct PullRequest {
// TODO: public keys, signatures, tokens, etc. basically some kind of authentication bs
pub auth_token: AuthToken,
pub destination_address: sphinx::route::DestinationAddressBytes,
}
impl PullRequest {
pub fn new(destination_address: sphinx::route::DestinationAddressBytes) -> Self {
pub fn new(destination_address: sphinx::route::DestinationAddressBytes, auth_token: AuthToken) -> Self {
PullRequest {
auth_token,
destination_address,
}
}
@@ -89,7 +96,10 @@ impl ProviderRequest for PullRequest {
let mut destination_address = [0u8; 32];
destination_address.copy_from_slice(&bytes[2..]);
let auth_token = bytes[32..].to_vec();
Ok(PullRequest {
auth_token: AuthToken{value: auth_token},
destination_address,
})
}
@@ -128,7 +138,8 @@ mod creating_pull_request {
1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
0, 1, 2,
];
let pull_request = PullRequest::new(address);
let auth_token = AuthToken {value: vec![1u8; 10]};
let pull_request = PullRequest::new(address, auth_token);
let bytes = pull_request.to_bytes();
let recovered = PullRequest::from_bytes(&bytes).unwrap();
@@ -141,7 +152,8 @@ mod creating_pull_request {
1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
0, 1, 2,
];
let pull_request = PullRequest::new(address);
let auth_token = AuthToken {value: vec![1u8; 10]};
let pull_request = PullRequest::new(address, auth_token);
let bytes = pull_request.to_bytes();
let recovered = ProviderRequests::from_bytes(&bytes).unwrap();
+1 -7
View File
@@ -1,5 +1,5 @@
use crate::provider::storage::{ClientStorage, StoreError};
use sfw_provider_requests::requests::{ProviderRequestError, ProviderRequests, PullRequest, RegisterRequest, ProviderRequest};
use sfw_provider_requests::requests::{ProviderRequestError, ProviderRequests, PullRequest, RegisterRequest, ProviderRequest, AuthToken};
use sfw_provider_requests::responses::{ProviderResponse, PullResponse, RegisterResponse};
use std::path::{Path, PathBuf};
use std::sync::{Arc, RwLock};
@@ -18,10 +18,6 @@ pub enum ClientProcessingError {
InvalidRequest,
}
struct AuthToken {
value : Vec<u8>
}
impl From<ProviderRequestError> for ClientProcessingError {
fn from(_: ProviderRequestError) -> Self {
use ClientProcessingError::*;
@@ -92,10 +88,8 @@ impl ClientRequestProcessor {
println!("Processing register new client request!");
let auth_token = ClientRequestProcessor::generate_new_auth_token(req.destination_address.to_vec());
registered_client_ledger.insert(auth_token.value.clone(), req.destination_address.to_vec());
ClientRequestProcessor::create_storage_dir(req.destination_address, store_dir);
Ok(RegisterResponse::new(auth_token.value))
}
fn create_storage_dir(client_address : sphinx::route::DestinationAddressBytes, store_dir: &Path) -> io::Result<()>{