Skip to content

Commit

Permalink
rebased on service-ctx-sep-dbs
Browse files Browse the repository at this point in the history
  • Loading branch information
tworec committed May 26, 2020
1 parent fd6c148 commit 30edee1
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 23 deletions.
42 changes: 20 additions & 22 deletions core/market/decentralized/src/db/models/subscription.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,13 @@ use diesel::serialize::{Output, Result as SerializeResult, ToSql};
use diesel::sql_types::Text;
use digest::Digest;
use sha3::Sha3_256;
use std::str::FromStr;
use std::io::Write;
use std::str::FromStr;
use thiserror::Error;
use uuid::Uuid;

use ya_client::model::ErrorMessage;
use digest::generic_array::GenericArray;

use ya_client::model::ErrorMessage;

#[derive(Error, Debug)]
pub enum SubscriptionParseError {
Expand All @@ -24,7 +23,6 @@ pub enum SubscriptionParseError {
InvalidLength(String),
}


#[derive(Display, Debug, Clone, AsExpression, FromSqlRow, Hash, PartialEq, Eq)]
#[display(fmt = "{}-{}", random_id, hash)]
#[sql_type = "Text"]
Expand Down Expand Up @@ -57,25 +55,21 @@ fn hash(properties: &str, constraints: &str, node_id: &str) -> String {
format!("{:x}", hasher.result())
}


impl FromStr for SubscriptionId {
type Err = SubscriptionParseError;

fn from_str(s: &str) -> Result<Self, Self::Err> {
let elements: Vec<&str> = s
.split('-')
.collect();
let elements: Vec<&str> = s.split('-').collect();

if elements.len() != 2 {
Err(SubscriptionParseError::InvalidFormat(s.to_string()))?;
}

if !elements
.iter()
.map(|slice| slice
.chars()
.all(|character| character.is_ascii_hexdigit()))
.all(|result| result == true) {
.map(|slice| slice.chars().all(|character| character.is_ascii_hexdigit()))
.all(|result| result == true)
{
Err(SubscriptionParseError::NotHexadecimal(s.to_string()))?;
}

Expand All @@ -95,19 +89,19 @@ impl FromStr for SubscriptionId {
}

impl<DB> ToSql<Text, DB> for SubscriptionId
where
DB: Backend,
String: ToSql<Text, DB>,
where
DB: Backend,
String: ToSql<Text, DB>,
{
fn to_sql<W: Write>(&self, out: &mut Output<W, DB>) -> SerializeResult {
self.to_string().to_sql(out)
}
}

impl<DB> FromSql<Text, DB> for SubscriptionId
where
DB: Backend,
String: FromSql<Text, DB>,
where
DB: Backend,
String: FromSql<Text, DB>,
{
fn from_sql(bytes: Option<&DB::RawValue>) -> DeserializeResult<Self> {
let string = String::from_sql(bytes)?;
Expand All @@ -124,7 +118,6 @@ impl From<SubscriptionParseError> for ErrorMessage {
}
}


#[cfg(test)]
mod tests {
use super::*;
Expand All @@ -134,12 +127,17 @@ mod tests {
let subscription_id = "c76161077d0343ab85ac986eb5f6ea38-edb0016d9f8bafb54540da34f05a8d510de8114488f23916276bdead05509a53";

let sub_id = SubscriptionId::from_str(subscription_id).unwrap();
assert_eq!(sub_id.hash.as_str(), "edb0016d9f8bafb54540da34f05a8d510de8114488f23916276bdead05509a53");
assert_eq!(sub_id.random_id.as_str(), "c76161077d0343ab85ac986eb5f6ea38");
assert_eq!(
sub_id.hash.as_str(),
"edb0016d9f8bafb54540da34f05a8d510de8114488f23916276bdead05509a53"
);
assert_eq!(
sub_id.random_id.as_str(),
"c76161077d0343ab85ac986eb5f6ea38"
);

assert_eq!(SubscriptionId::from_str("34324-241").is_ok(), false);
assert_eq!(SubscriptionId::from_str("c76161077d0343ab85ac986eb5f6ea38edb0016d9f8bafb54540da34f05a8d510de8114488f23916276bdead05509a53").is_ok(), false);
assert_eq!(SubscriptionId::from_str("gfht-ertry").is_ok(), false);
}

}
4 changes: 3 additions & 1 deletion core/market/decentralized/src/matcher/matcher.rs
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,9 @@ impl Matcher {
self.discovery
.broadcast_offer(model_offer.into_client_offer()?)
.await
.map_err(|error| OfferError::BroadcastOfferFailure(error, model_offer.id.to_string()))?;
.map_err(|error| {
OfferError::BroadcastOfferFailure(error, model_offer.id.to_string())
})?;
Ok(())
}

Expand Down
2 changes: 2 additions & 0 deletions core/market/decentralized/tests/utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ pub struct MarketsNetwork {

/// Store all object associated with single market
/// for example: Database
#[allow(unused)]
pub struct MarketNode {
market: Arc<MarketService>,
name: String,
Expand Down Expand Up @@ -64,6 +65,7 @@ impl MarketsNetwork {
.unwrap()
}

#[allow(unused)]
pub fn get_default_id(&self, name: &str) -> Identity {
self.markets
.iter()
Expand Down

0 comments on commit 30edee1

Please sign in to comment.