Skip to content

Commit 81ce8f1

Browse files
BLYKIMmsk
authored andcommitted
Send query to server
Changes: - home.rs - Cargo.toml - README.md Close #4
1 parent f648433 commit 81ce8f1

File tree

4 files changed

+104
-8
lines changed

4 files changed

+104
-8
lines changed

Cargo.lock

Lines changed: 62 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,6 @@ edition = "2021"
66
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
77

88
[dependencies]
9+
gloo-net = "0.2"
910
wasm-bindgen ="^0.2"
1011
yew = "^0.19"

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@ Build and serve with Trunk. Should be running on <http://127.0.0.1:8080>.
66

77
```sh
88
trunk build
9-
trunk serve
9+
trunk serve --proxy-backend="http://127.0.0.1:8000/graphql"
1010
```

src/home.rs

Lines changed: 40 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,16 @@
1+
use gloo_net::http::Request;
12
use yew::prelude::*;
23

3-
pub enum Message {}
4+
const QUERY: &str = "{\"query\": \"{ issues }\"}";
45

5-
pub struct Model {}
6+
pub enum Message {
7+
QueryResult(String),
8+
Err,
9+
}
10+
11+
pub struct Model {
12+
res_query: String,
13+
}
614

715
#[derive(Properties, Clone, PartialEq)]
816
pub struct Props {}
@@ -12,17 +20,42 @@ impl Component for Model {
1220
type Properties = Props;
1321

1422
fn create(_ctx: &Context<Self>) -> Self {
15-
Self {}
23+
Self {
24+
res_query: String::new(),
25+
}
1626
}
1727

18-
fn update(&mut self, _ctx: &Context<Self>, _msg: Self::Message) -> bool {
19-
true
28+
fn update(&mut self, _ctx: &Context<Self>, msg: Self::Message) -> bool {
29+
match msg {
30+
Message::QueryResult(text) => {
31+
self.res_query = text;
32+
true
33+
}
34+
Message::Err => false,
35+
}
2036
}
2137

22-
fn view(&self, _ctx: &Context<Self>) -> Html {
38+
fn view(&self, ctx: &Context<Self>) -> Html {
39+
ctx.link().send_future(async move {
40+
if let Ok(res) = Request::post("/graphql")
41+
.header("Content-Type", "application/json")
42+
.body(QUERY)
43+
.send()
44+
.await
45+
{
46+
if let Ok(text) = res.text().await {
47+
Message::QueryResult(text)
48+
} else {
49+
Message::Err
50+
}
51+
} else {
52+
Message::Err
53+
}
54+
});
2355
html! {
2456
<div>
25-
<p>{ "AICE GitHub Dashboard" }</p>
57+
<p>{ "AICE GitHub Dashboard" }</p>
58+
<p>{self.res_query.clone()}</p>
2659
</div>
2760
}
2861
}

0 commit comments

Comments
 (0)