Skip to content

Commit

Permalink
Merge pull request #96 from input-output-hk/rh_update
Browse files Browse the repository at this point in the history
vote encryption key - added
  • Loading branch information
rinor committed Oct 20, 2020
2 parents 31d2821 + 40dfe1e commit ecf1aca
Show file tree
Hide file tree
Showing 22 changed files with 77 additions and 33 deletions.
3 changes: 2 additions & 1 deletion migrations/2020-05-22-112032_initial/up.sql
Expand Up @@ -47,6 +47,7 @@ create table voteplans
chain_vote_end_time BIGINT NOT NULL,
chain_committee_end_time BIGINT NOT NULL,
chain_voteplan_payload VARCHAR NOT NULL,
chain_vote_encryption_key VARCHAR NOT NULL,
fund_id INTEGER NOT NULL
);

Expand All @@ -66,8 +67,8 @@ SELECT
voteplans.chain_vote_start_time,
voteplans.chain_vote_end_time,
voteplans.chain_committee_end_time,
voteplans.chain_vote_encryption_key,
voteplans.fund_id
FROM
proposals
INNER JOIN voteplans ON proposals.chain_voteplan_id = voteplans.chain_voteplan_id

4 changes: 2 additions & 2 deletions resources/tests/csvs/funds.csv
@@ -1,2 +1,2 @@
id,fund_name,fund_goal,voting_power_info,rewards_info,fund_start_time,fund_end_time,next_fund_start_time
-1,Fund1,Fund the future of Cardano,2020-08-10T14:00:00Z,2020-08-18T14:00:00Z,2020-08-10T14:18:12Z,2020-08-16T00:00:00Z,2020-08-19T00:00:00Z
id,fund_name,fund_goal,voting_power_threshold,voting_power_info,rewards_info,fund_start_time,fund_end_time,next_fund_start_time
-1,Fund1,Fund the future of Cardano,8000000000,2020-08-10T14:00:00Z,2020-08-18T14:00:00Z,2020-08-10T14:18:12Z,2020-08-16T00:00:00Z,2020-08-19T00:00:00Z
42 changes: 21 additions & 21 deletions resources/tests/csvs/proposals.csv

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions resources/tests/csvs/voteplans.csv
@@ -1,3 +1,3 @@
id,chain_voteplan_id,chain_vote_start_time,chain_vote_end_time,chain_committee_end,chain_voteplan_payload,fund_id
-1,c983969a99106853cd32f972c471a01a73a22ea20a030bb4491aecfc676e9a8c,2020-08-10T14:18:12Z,2020-08-16T00:00:00Z,2020-08-19T00:00:00Z,public,-1
-1,ebcb5af4bc2823fa2a66f4a364c41d44e6cf118f8f3d32fa0920ed32df4632ae,2020-08-10T14:18:12Z,2020-08-16T00:00:00Z,2020-08-19T00:00:00Z,public,-1
id,chain_voteplan_id,chain_vote_start_time,chain_vote_end_time,chain_committee_end_time,chain_voteplan_payload,chain_vote_encryption_key,fund_id
-1,c983969a99106853cd32f972c471a01a73a22ea20a030bb4491aecfc676e9a8c,2020-08-10T14:18:12Z,2020-08-16T00:00:00Z,2020-08-19T00:00:00Z,public,,-1
-1,ebcb5af4bc2823fa2a66f4a364c41d44e6cf118f8f3d32fa0920ed32df4632ae,2020-08-10T14:18:12Z,2020-08-16T00:00:00Z,2020-08-19T00:00:00Z,public,,-1
3 changes: 3 additions & 0 deletions vit-servicing-station-cli/src/csv/models.rs
Expand Up @@ -79,6 +79,8 @@ pub struct Proposal {
pub chain_committee_end_time: i64,
#[serde(alias = "chainVoteplanPayload", default = "Default::default")]
pub chain_voteplan_payload: String,
#[serde(alias = "chainVoteEncryptionKey", default = "Default::default")]
pub chain_vote_encryption_key: String,
#[serde(alias = "fundId", default = "default_fund_id")]
pub fund_id: i32,
}
Expand Down Expand Up @@ -122,6 +124,7 @@ impl From<Proposal> for proposals::Proposal {
chain_vote_end_time: proposal.chain_vote_end_time,
chain_committee_end_time: proposal.chain_committee_end_time,
chain_voteplan_payload: proposal.chain_voteplan_payload,
chain_vote_encryption_key: proposal.chain_vote_encryption_key,
fund_id: proposal.fund_id,
}
}
Expand Down
11 changes: 9 additions & 2 deletions vit-servicing-station-lib/src/db/models/proposals.rs
Expand Up @@ -77,6 +77,8 @@ pub struct Proposal {
pub chain_committee_end_time: i64,
#[serde(alias = "chainVoteplanPayload")]
pub chain_voteplan_payload: String,
#[serde(alias = "chainVoteEncryptionKey")]
pub chain_vote_encryption_key: String,
#[serde(alias = "fundId")]
pub fund_id: i32,
}
Expand Down Expand Up @@ -133,7 +135,9 @@ impl Queryable<full_proposals_info::SqlType, DB> for Proposal {
i64,
// 23 -> chain_voteplan_payload
String,
// 24 -> fund_id
// 24 -> chain_vote_encryption_key
String,
// 25 -> fund_id
i32,
);

Expand Down Expand Up @@ -169,7 +173,8 @@ impl Queryable<full_proposals_info::SqlType, DB> for Proposal {
chain_vote_end_time: row.21,
chain_committee_end_time: row.22,
chain_voteplan_payload: row.23,
fund_id: row.24,
chain_vote_encryption_key: row.24,
fund_id: row.25,
}
}
}
Expand Down Expand Up @@ -268,6 +273,7 @@ pub mod test {
chain_vote_end_time: Utc::now().timestamp(),
chain_committee_end_time: Utc::now().timestamp(),
chain_voteplan_payload: "none".to_string(),
chain_vote_encryption_key: "none".to_string(),
fund_id: 1,
}
}
Expand Down Expand Up @@ -310,6 +316,7 @@ pub mod test {
voteplans::chain_vote_end_time.eq(proposal.chain_vote_end_time),
voteplans::chain_committee_end_time.eq(proposal.chain_committee_end_time),
voteplans::chain_voteplan_payload.eq(proposal.chain_voteplan_payload.clone()),
voteplans::chain_vote_encryption_key.eq(proposal.chain_vote_encryption_key.clone()),
voteplans::fund_id.eq(proposal.fund_id),
);

Expand Down
6 changes: 6 additions & 0 deletions vit-servicing-station-lib/src/db/models/voteplans.rs
Expand Up @@ -21,6 +21,8 @@ pub struct Voteplan {
pub chain_committee_end_time: i64,
#[serde(alias = "chainVoteplanPayload")]
pub chain_voteplan_payload: String,
#[serde(alias = "chainVoteEncryptionKey")]
pub chain_vote_encryption_key: String,
#[serde(alias = "fundId")]
pub fund_id: i32,
}
Expand All @@ -35,6 +37,7 @@ impl Insertable<voteplans::table> for Voteplan {
diesel::dsl::Eq<voteplans::chain_vote_end_time, i64>,
diesel::dsl::Eq<voteplans::chain_committee_end_time, i64>,
diesel::dsl::Eq<voteplans::chain_voteplan_payload, String>,
diesel::dsl::Eq<voteplans::chain_vote_encryption_key, String>,
diesel::dsl::Eq<voteplans::fund_id, i32>,
);

Expand All @@ -45,6 +48,7 @@ impl Insertable<voteplans::table> for Voteplan {
voteplans::chain_vote_end_time.eq(self.chain_vote_end_time),
voteplans::chain_committee_end_time.eq(self.chain_committee_end_time),
voteplans::chain_voteplan_payload.eq(self.chain_voteplan_payload),
voteplans::chain_vote_encryption_key.eq(self.chain_vote_encryption_key),
voteplans::fund_id.eq(self.fund_id),
)
}
Expand All @@ -65,6 +69,7 @@ pub mod test {
chain_vote_end_time: Utc::now().timestamp(),
chain_committee_end_time: Utc::now().timestamp(),
chain_voteplan_payload: "foopayload".to_string(),
chain_vote_encryption_key: "enckey".to_string(),
fund_id,
}
}
Expand All @@ -77,6 +82,7 @@ pub mod test {
voteplans::chain_vote_end_time.eq(voteplan.chain_vote_end_time),
voteplans::chain_committee_end_time.eq(voteplan.chain_committee_end_time),
voteplans::chain_voteplan_payload.eq(voteplan.chain_voteplan_payload.clone()),
voteplans::chain_vote_encryption_key.eq(voteplan.chain_vote_encryption_key.clone()),
voteplans::fund_id.eq(voteplan.fund_id),
);
diesel::insert_into(voteplans::table)
Expand Down
1 change: 1 addition & 0 deletions vit-servicing-station-lib/src/db/schema.rs
Expand Up @@ -53,6 +53,7 @@ table! {
chain_vote_end_time -> BigInt,
chain_committee_end_time -> BigInt,
chain_voteplan_payload -> Text,
chain_vote_encryption_key -> Text,
fund_id -> Integer,
}
}
Expand Down
1 change: 1 addition & 0 deletions vit-servicing-station-lib/src/db/views_schema.rs
Expand Up @@ -26,6 +26,7 @@ table! {
chain_vote_end_time -> BigInt,
chain_committee_end_time -> BigInt,
chain_voteplan_payload -> Text,
chain_vote_encryption_key -> Text,
fund_id -> Integer,
}
}
12 changes: 8 additions & 4 deletions vit-servicing-station-lib/src/v0/endpoints/graphql/routes.rs
Expand Up @@ -65,11 +65,12 @@ mod test {
// chainVoteEndTime,
// chainCommitteeEndTime,
// chainVoteplanPayload,
// chainVoteEncryptionKey,
// fundId
// },
// }
// }
const FUND_BY_ID_ALL_ATTRIBUTES_QUERY: &str = "{\"query\":\"{\\n fund(id: 1) {\\n id,\\n fundName,\\n fundGoal,\\n votingPowerInfo,\\n votingPowerThreshold,\\n rewardsInfo,\\n fundStartTime,\\n fundEndTime,\\n nextFundStartTime,\\n chainVotePlans {\\n id,\\n chainVoteplanId,\\n chainVoteStartTime,\\n chainVoteEndTime,\\n chainCommitteeEndTime,\\n chainVoteplanPayload,\\n fundId\\n },\\n }\\n}\",\"variables\":{}}";
const FUND_BY_ID_ALL_ATTRIBUTES_QUERY: &str = "{\"query\":\"{\\n fund(id: 1) {\\n id,\\n fundName,\\n fundGoal,\\n votingPowerInfo,\\n votingPowerThreshold,\\n rewardsInfo,\\n fundStartTime,\\n fundEndTime,\\n nextFundStartTime,\\n chainVotePlans {\\n id,\\n chainVoteplanId,\\n chainVoteStartTime,\\n chainVoteEndTime,\\n chainCommitteeEndTime,\\n chainVoteplanPayload,\\n chainVoteEncryptionKey,\\n fundId\\n },\\n }\\n}\",\"variables\":{}}";

// TODO: This query is not nice to read as documentation for the test. It was taken from the option
// in postman to check the curl command. The actual graphql body request is like this:
Expand All @@ -90,11 +91,12 @@ mod test {
// chainVoteEndTime,
// chainCommitteeEndTime,
// chainVoteplanPayload,
// chainVoteEncryptionKey,
// fundId
// },
// }
// }
const FUNDS_ALL_ATTRIBUTES_QUERY: &str = "{\"query\":\"{\\n funds {\\n id,\\n fundName,\\n fundGoal,\\n votingPowerInfo,\\n votingPowerThreshold,\\n rewardsInfo,\\n fundStartTime,\\n fundEndTime,\\n nextFundStartTime,\\n chainVotePlans {\\n id,\\n chainVoteplanId,\\n chainVoteStartTime,\\n chainVoteEndTime,\\n chainCommitteeEndTime,\\n chainVoteplanPayload,\\n fundId\\n },\\n }\\n}\",\"variables\":{}}";
const FUNDS_ALL_ATTRIBUTES_QUERY: &str = "{\"query\":\"{\\n funds {\\n id,\\n fundName,\\n fundGoal,\\n votingPowerInfo,\\n votingPowerThreshold,\\n rewardsInfo,\\n fundStartTime,\\n fundEndTime,\\n nextFundStartTime,\\n chainVotePlans {\\n id,\\n chainVoteplanId,\\n chainVoteStartTime,\\n chainVoteEndTime,\\n chainCommitteeEndTime,\\n chainVoteplanPayload,\\n chainVoteEncryptionKey,\\n fundId\\n },\\n }\\n}\",\"variables\":{}}";

// TODO: This query is not nice to read as documentation for the test. It was taken from the option
// in postman to check the curl command. The actual graphql body request is like this:
Expand Down Expand Up @@ -123,13 +125,14 @@ mod test {
// chainVoteOptions,
// chainVoteplanId,
// chainVoteplanPayload,
// chainVoteEncryptionKey,
// chainVoteStartTime,
// chainVoteEndTime,
// chainCommitteeEndTime,
// fundId
// }
// }
const PROPOSAL_BY_ID_ALL_ATTRIBUTES_QUERY: &str = "{\"query\":\"{\\n proposal(proposalId: \\\"1\\\") {\\n internalId,\\n proposalId,\\n category {\\n categoryId,\\n categoryName,\\n categoryDescription,\\n },\\n proposalTitle,\\n proposalSummary,\\n proposalSolution,\\n proposalProblem,\\n proposalPublicKey,\\n proposalFunds,\\n proposalUrl,\\n proposalFilesUrl,\\n proposalImpactScore,\\n proposer {\\n proposerName,\\n proposerEmail,\\n proposerUrl\\n, proposerRelevantExperience\\n },\\n chainProposalId,\\n chainProposalIndex,\\n chainVoteOptions,\\n chainVoteplanId,\\n chainVoteplanPayload,\\n chainVoteStartTime,\\n chainVoteEndTime,\\n chainCommitteeEndTime,\\n fundId\\n }\\n}\",\"variables\":{}}";
const PROPOSAL_BY_ID_ALL_ATTRIBUTES_QUERY: &str = "{\"query\":\"{\\n proposal(proposalId: \\\"1\\\") {\\n internalId,\\n proposalId,\\n category {\\n categoryId,\\n categoryName,\\n categoryDescription,\\n },\\n proposalTitle,\\n proposalSummary,\\n proposalSolution,\\n proposalProblem,\\n proposalPublicKey,\\n proposalFunds,\\n proposalUrl,\\n proposalFilesUrl,\\n proposalImpactScore,\\n proposer {\\n proposerName,\\n proposerEmail,\\n proposerUrl\\n, proposerRelevantExperience\\n },\\n chainProposalId,\\n chainProposalIndex,\\n chainVoteOptions,\\n chainVoteplanId,\\n chainVoteplanPayload,\\n chainVoteEncryptionKey,\\n chainVoteStartTime,\\n chainVoteEndTime,\\n chainCommitteeEndTime,\\n fundId\\n }\\n}\",\"variables\":{}}";

// TODO: This query is not nice to read as documentation for the test. It was taken from the option
// in postman to check the curl command. The actual graphql body request is like this:
Expand Down Expand Up @@ -158,13 +161,14 @@ mod test {
// chainVoteOptions,
// chainVoteplanId,
// chainVoteplanPayload,
// chainVoteEncryptionKey,
// chainVoteStartTime,
// chainVoteEndTime,
// chainCommitteeEndTime,
// fundId
// }
// }
const PROPOSALS_ALL_ATTRIBUTES_QUERY: &str = "{\"query\":\"{\\n proposals {\\n internalId,\\n proposalId,\\n category {\\n categoryId,\\n categoryName,\\n categoryDescription,\\n },\\n proposalTitle,\\n proposalSummary,\\n proposalSolution,\\n proposalProblem,\\n proposalPublicKey,\\n proposalFunds,\\n proposalUrl,\\n proposalFilesUrl,\\n proposalImpactScore,\\n proposer {\\n proposerName,\\n proposerEmail,\\n proposerUrl\\n, proposerRelevantExperience\\n },\\n chainProposalId,\\n chainProposalIndex,\\n chainVoteOptions,\\n chainVoteplanId,\\n chainVoteplanPayload,\\n chainVoteStartTime,\\n chainVoteEndTime,\\n chainCommitteeEndTime,\\n fundId\\n }\\n}\",\"variables\":{}}";
const PROPOSALS_ALL_ATTRIBUTES_QUERY: &str = "{\"query\":\"{\\n proposals {\\n internalId,\\n proposalId,\\n category {\\n categoryId,\\n categoryName,\\n categoryDescription,\\n },\\n proposalTitle,\\n proposalSummary,\\n proposalSolution,\\n proposalProblem,\\n proposalPublicKey,\\n proposalFunds,\\n proposalUrl,\\n proposalFilesUrl,\\n proposalImpactScore,\\n proposer {\\n proposerName,\\n proposerEmail,\\n proposerUrl\\n, proposerRelevantExperience\\n },\\n chainProposalId,\\n chainProposalIndex,\\n chainVoteOptions,\\n chainVoteplanId,\\n chainVoteplanPayload,\\n chainVoteEncryptionKey,\\n chainVoteStartTime,\\n chainVoteEndTime,\\n chainCommitteeEndTime,\\n fundId\\n }\\n}\",\"variables\":{}}";

async fn build_fund_test_filter() -> (
Fund,
Expand Down
Expand Up @@ -107,6 +107,10 @@ impl Proposal {
&self.chain_voteplan_payload
}

pub async fn chain_vote_encryption_key(&self) -> &str {
&self.chain_vote_encryption_key
}

pub async fn chain_vote_start_time(&self) -> String {
unix_timestamp_to_datetime(self.chain_vote_start_time).to_rfc3339()
}
Expand Down
Expand Up @@ -27,6 +27,10 @@ impl Voteplan {
&self.chain_voteplan_payload
}

pub async fn chain_vote_encryption_key(&self) -> &str {
&self.chain_vote_encryption_key
}

pub async fn fund_id(&self) -> i32 {
self.fund_id
}
Expand Down
Expand Up @@ -17,6 +17,7 @@
chainVoteEndTime
chainCommitteeEndTime
chainVoteplanPayload
chainVoteEncryptionKey
fundId
}
}
Expand Down
Expand Up @@ -16,6 +16,7 @@
chainVoteEndTime
chainCommitteeEndTime
chainVoteplanPayload
chainVoteEncryptionKey
fundId
}
}
Expand Down
Expand Up @@ -16,6 +16,7 @@
chainVoteEndTime,
chainCommitteeEndTime,
chainVoteplanPayload,
chainVoteEncryptionKey,
fundId,
}
}
Expand Down
Expand Up @@ -17,6 +17,7 @@
chainVoteEndTime,
chainCommitteeEndTime,
chainVoteplanPayload,
chainVoteEncryptionKey,
fundId,
}
}
Expand Down
Expand Up @@ -28,6 +28,7 @@
chainVoteOptions,
chainVoteplanId,
chainVoteplanPayload,
chainVoteEncryptionKey,
chainVoteStartTime,
chainVoteEndTime,
chainCommitteeEndTime,
Expand Down
Expand Up @@ -13,6 +13,7 @@
chainVoteOptions
chainVoteplanId
chainVoteplanPayload
chainVoteEncryptionKey
chainVoteStartTime
chainVoteEndTime
chainCommitteeEndTime
Expand Down
Expand Up @@ -25,6 +25,7 @@
chainVoteOptions,
chainVoteplanId,
chainVoteplanPayload,
chainVoteEncryptionKey,
chainVoteStartTime,
chainVoteEndTime,
chainCommitteeEndTime,
Expand Down
Expand Up @@ -26,6 +26,7 @@
chainVoteOptions,
chainVoteplanId,
chainVoteplanPayload,
chainVoteEncryptionKey,
chainVoteStartTime,
chainVoteEndTime,
chainCommitteeEndTime,
Expand Down
2 changes: 2 additions & 0 deletions vit-servicing-station-tests/src/common/data/generator.rs
Expand Up @@ -191,6 +191,7 @@ impl Generator {
chain_vote_end_time: voteplan.chain_vote_end_time,
chain_committee_end_time: voteplan.chain_committee_end_time,
chain_voteplan_payload: voteplan.chain_voteplan_payload.clone(),
chain_vote_encryption_key: voteplan.chain_vote_encryption_key.clone(),
fund_id: fund.id,
}
}
Expand Down Expand Up @@ -234,6 +235,7 @@ impl Generator {
chain_vote_end_time: end.timestamp(),
chain_committee_end_time: next.timestamp(),
chain_voteplan_payload: "bla".to_string(), //Sentence(3..5).fake::<String>(),
chain_vote_encryption_key: "enckey".to_string(),
fund_id,
}
}
Expand Down
3 changes: 3 additions & 0 deletions vit-servicing-station-tests/src/common/db/mod.rs
Expand Up @@ -74,6 +74,7 @@ impl<'a> DbInserter<'a> {
voteplans::chain_vote_end_time.eq(proposal.chain_vote_end_time),
voteplans::chain_committee_end_time.eq(proposal.chain_committee_end_time),
voteplans::chain_voteplan_payload.eq(proposal.chain_voteplan_payload.clone()),
voteplans::chain_vote_encryption_key.eq(proposal.chain_vote_encryption_key.clone()),
voteplans::fund_id.eq(proposal.fund_id),
);

Expand Down Expand Up @@ -112,6 +113,8 @@ impl<'a> DbInserter<'a> {
voteplans::chain_vote_end_time.eq(voteplan.chain_vote_end_time),
voteplans::chain_committee_end_time.eq(voteplan.chain_committee_end_time),
voteplans::chain_voteplan_payload.eq(voteplan.chain_voteplan_payload.clone()),
voteplans::chain_vote_encryption_key
.eq(voteplan.chain_vote_encryption_key.clone()),
voteplans::fund_id.eq(voteplan.fund_id),
);
diesel::insert_or_ignore_into(voteplans::table)
Expand Down

0 comments on commit ecf1aca

Please sign in to comment.