From f83e62056b3a37e0abcc409f4c745986cd7edc41 Mon Sep 17 00:00:00 2001 From: librelois <elois@ifee.fr> Date: Tue, 26 Nov 2019 23:02:52 +0100 Subject: [PATCH] [feat] gva:block: add field issuers_count --- lib/modules/gva/resources/schema.gql | 1 + lib/modules/gva/src/schema/entities/block.rs | 6 ++++++ lib/modules/gva/src/schema/queries/block.rs | 4 +++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/modules/gva/resources/schema.gql b/lib/modules/gva/resources/schema.gql index e77a208f..a57118e0 100644 --- a/lib/modules/gva/resources/schema.gql +++ b/lib/modules/gva/resources/schema.gql @@ -81,6 +81,7 @@ type Block { currency: String! issuer: String! issuerName: String, + issuersCount: Int! number: Int! hash: String!, commonTime: DateTimeUtc! diff --git a/lib/modules/gva/src/schema/entities/block.rs b/lib/modules/gva/src/schema/entities/block.rs index 1d8b8d60..9162d34e 100644 --- a/lib/modules/gva/src/schema/entities/block.rs +++ b/lib/modules/gva/src/schema/entities/block.rs @@ -31,6 +31,7 @@ pub struct Block { currency: String, issuer: String, issuer_name: Option<String>, + issuers_count: i32, number: i32, hash: String, common_time: NaiveDateTime, @@ -57,6 +58,7 @@ impl Block { } else { None }, + issuers_count: block_db.block.issuers_count() as i32, number: block_db.block.number().0 as i32, hash: block_db .block @@ -108,4 +110,8 @@ impl super::super::BlockFields for Block { fn field_pow_min(&self, _executor: &Executor<'_, QueryContext>) -> FieldResult<&i32> { Ok(&self.pow_min) } + #[inline] + fn field_issuers_count(&self, _executor: &Executor<'_, QueryContext>) -> FieldResult<&i32> { + Ok(&self.issuers_count) + } } diff --git a/lib/modules/gva/src/schema/queries/block.rs b/lib/modules/gva/src/schema/queries/block.rs index 8f6ad8e4..cc6bcd98 100644 --- a/lib/modules/gva/src/schema/queries/block.rs +++ b/lib/modules/gva/src/schema/queries/block.rs @@ -69,6 +69,7 @@ mod tests { Hash::default(), ); block.issuers = vec![pubkey('B')]; + block.issuers_count = 3; block.pow_min = 70; Ok(Some(BlockDb { block: BlockDocument::V10(block), @@ -99,7 +100,7 @@ mod tests { tests::test_gql_query( schema, - "{ block(number: 42) { commonTime, currency, hash, issuer, issuerName, number, powMin, version } }", + "{ block(number: 42) { commonTime, currency, hash, issuer, issuerName, issuersCount, number, powMin, version } }", json!({ "data": { "block": { @@ -108,6 +109,7 @@ mod tests { "hash": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "issuer": "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB", "issuerName": "issuerName", + "issuersCount": 3, "number": 42, "powMin": 70, "version": 10 -- GitLab