Skip to content

Commit c32b344

Browse files
committed
add example
1 parent c825443 commit c32b344

File tree

4 files changed

+94
-0
lines changed

4 files changed

+94
-0
lines changed

Cargo.toml

+1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ description = "Ganymede.cloud rust client."
1515
tonic = { version = "0.7", features = ["tls", "prost"] }
1616
prost = "0.10"
1717
prost-types = "0.10"
18+
tokio = { version = "1.0", features = ["macros", "rt-multi-thread", "fs"] }
1819

1920
[build-dependencies]
2021
walkdir = "2"

README.md

+8
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
1+
# Package systemathics-apis on crates.io
2+
13
[![crates.io](https://img.shields.io/crates/v/systemathics-apis.svg)](https://crates.io/crates/systemathics-apis)
24

35
```
46
cargo build
7+
```
8+
9+
# Example
10+
11+
```
12+
cargo run --example static-data-client TOKEN_FROM_GANYMEDE_CLOUD
513
```

examples/ganymede-cloud.pem

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAw
3+
TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
4+
cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4
5+
WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJu
6+
ZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBY
7+
MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54rVygc
8+
h77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+
9+
0TM8ukj13Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6U
10+
A5/TR5d8mUgjU+g4rk8Kb4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sW
11+
T8KOEUt+zwvo/7V3LvSye0rgTBIlDHCNAymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyH
12+
B5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ4Q7e2RCOFvu396j3x+UC
13+
B5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf1b0SHzUv
14+
KBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWn
15+
OlFuhjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTn
16+
jh8BCNAw1FtxNrQHusEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbw
17+
qHyGO0aoSCqI3Haadr8faqU9GY/rOPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CI
18+
rU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
19+
HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY9umbbjANBgkq
20+
hkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL
21+
ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ
22+
3BebYhtF8GaV0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KK
23+
NFtY2PwByVS5uCbMiogziUwthDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5
24+
ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJwTdwJx4nLCgdNbOhdjsnvzqvHu7Ur
25+
TkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nxe5AW0wdeRlN8NwdC
26+
jNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZAJzVc
27+
oyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq
28+
4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA
29+
mRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d
30+
emyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc=
31+
-----END CERTIFICATE-----

examples/static-data-client.rs

+54
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
use std::env;
2+
use systemathics_apis::systemathics::apis::services::static_data::v1::static_data_service_client::StaticDataServiceClient;
3+
use systemathics_apis::systemathics::apis::services::static_data::v1::AssetType::Equity;
4+
use systemathics_apis::systemathics::apis::services::static_data::v1::StaticDataRequest;
5+
use tonic::transport::Certificate;
6+
use tonic::transport::ClientTlsConfig;
7+
8+
use tonic::{metadata::MetadataValue, transport::Channel, Request};
9+
10+
#[tokio::main]
11+
async fn main() -> Result<(), Box<dyn std::error::Error>> {
12+
let pem = tokio::fs::read("examples/ganymede-cloud.pem").await?;
13+
let ca = Certificate::from_pem(pem);
14+
15+
let tls = ClientTlsConfig::new()
16+
.ca_certificate(ca)
17+
.domain_name("grpc.ganymede.cloud");
18+
19+
let channel = Channel::from_static("https://grpc.ganymede.cloud")
20+
.tls_config(tls)?
21+
.connect()
22+
.await?;
23+
let args: Vec<String> = env::args().collect();
24+
let mut bearer = String::from("Bearer ");
25+
bearer.push_str(&args[1].to_owned());
26+
let token: MetadataValue<_> = bearer.parse()?;
27+
let mut client =
28+
StaticDataServiceClient::with_interceptor(channel, move |mut req: Request<()>| {
29+
req.metadata_mut().insert("authorization", token.clone());
30+
Ok(req)
31+
});
32+
33+
let request = tonic::Request::new(StaticDataRequest {
34+
name: String::from("Apple").into(),
35+
asset_type: Equity.into(),
36+
code: None,
37+
count: None,
38+
equity_sector: None,
39+
crypto_base_currency: None,
40+
crypto_quote_currency: None,
41+
exchange: None,
42+
future_category: None,
43+
future_contract: None,
44+
index: None,
45+
start: None,
46+
ticker: None,
47+
});
48+
49+
let response = client.static_data(request).await?;
50+
51+
println!("RESPONSE={:?}", response);
52+
53+
Ok(())
54+
}

0 commit comments

Comments
 (0)