Skip to content

Commit 845e4a8

Browse files
GET Rails (#36)
* Added Rails models * Added Rails request * Added Rails example to the ServerApp * Added Rails unit test
1 parent 1c25035 commit 845e4a8

File tree

13 files changed

+248
-1
lines changed

13 files changed

+248
-1
lines changed
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
@page "/rails"
2+
@using XUMM.NET.SDK.Models.Misc
3+
4+
@inject IXummMiscClient MiscClient
5+
6+
<PageTitle>Rails</PageTitle>
7+
8+
<ResponseAlertBox @ref="_responseAlertBox"></ResponseAlertBox>
9+
10+
<h1>Rails</h1>
11+
12+
@if (_rails != null)
13+
{
14+
<div class="row">
15+
<div class="mb-3">
16+
<table class="table">
17+
<thead>
18+
<tr>
19+
<th scope="col">Id</th>
20+
<th scope="col">Livenet</th>
21+
<th scope="col">Name</th>
22+
<th scope="col">Asset</th>
23+
</tr>
24+
</thead>
25+
<tbody>
26+
@foreach (var network in _rails.OrderBy(x => x.Network.ChainId))
27+
{
28+
<tr>
29+
<td>@network.Network.ChainId</td>
30+
<td><span class="oi @(network.Network.IsLivenet ? "oi-check":"oi-x")" aria-hidden="true"></span> </td>
31+
<td style="color:@network.Network.Color">@network.Network.Name</td>
32+
<td><img src="@network.Network.Icons.IconSquare" alt="@network.Network.Name" height="24" /> @network.Network.NativeAsset</td>
33+
</tr>
34+
}
35+
</tbody>
36+
</table>
37+
</div>
38+
</div>
39+
}
40+
else
41+
{
42+
<div class="row">
43+
<div class="mb-3">
44+
<div class="btn-group mb-3" role="group">
45+
<button class="btn btn-primary" @onclick="GetRailsAsync">Get Rails</button>
46+
</div>
47+
</div>
48+
</div>
49+
}
50+
51+
@code {
52+
private ResponseAlertBox? _responseAlertBox;
53+
private List<XummRailsResponse>? _rails;
54+
55+
private async Task GetRailsAsync()
56+
{
57+
_rails = await _responseAlertBox!.GetResponseAndSetAlertAsync(() => MiscClient.GetRailsAsync());
58+
_responseAlertBox.SetAlert("Rails", _rails != null);
59+
}
60+
}

examples/XUMM.Net.ServerApp/Shared/NavMenu.razor

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@
2929
<NavLink class="nav-link ps-4" href="/hookhash">
3030
<span class="oi oi-bolt" aria-hidden="true"></span> Hook Hash(es)
3131
</NavLink>
32+
<NavLink class="nav-link ps-4" href="/rails">
33+
<span class="oi oi-globe" aria-hidden="true"></span> Rails
34+
</NavLink>
3235
<NavLink class="nav-link ps-4" href="/transaction">
3336
<span class="oi oi-document" aria-hidden="true"></span> Transaction
3437
</NavLink>

src/XUMM.NET.SDK.Tests/Clients/XummMiscClientTests.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,20 @@ public async Task GetCuratedAssetsAsync_ShouldReturnCuratedAssetsAsync()
7070
AssertExtensions.AreEqual(MiscFixtures.XummCuratedAssets, result);
7171
}
7272

73+
[Test]
74+
public async Task GetRailsAsync_ShouldReturnRailsAsync()
75+
{
76+
// Arrange
77+
_httpMessageHandlerMock.SetFixtureMessage(HttpStatusCode.OK, "rails");
78+
79+
// Act
80+
var result = await _subject.GetRailsAsync();
81+
82+
// Assert
83+
AssertExtensions.AreEqual(MiscFixtures.XummRailsNetworkKey, result.First().NetworkKey);
84+
AssertExtensions.AreEqual(MiscFixtures.XummRailsNetwork, result.First().Network);
85+
}
86+
7387
[Test]
7488
[TestCase("2557f69c-6617-40dc-9d1e-a34487cb3f90")]
7589
public async Task GetKycStatusAsync_WithUserToken_ShouldReturnKycStatusAsync(string userToken)
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
{
2+
"MAINNET": {
3+
"chain_id": 0,
4+
"color": "#3C06F3",
5+
"name": "XRP Ledger Mainnet",
6+
"is_livenet": true,
7+
"native_asset": "XRP",
8+
"endpoints": [
9+
{
10+
"name": "XRPLCluster.com (XRPLF)",
11+
"url": "wss://xrplcluster.com"
12+
}
13+
],
14+
"explorers": [
15+
{
16+
"name": "XRPL.org Livenet Explorer",
17+
"url_tx": "https://livenet.xrpl.org/transactions/",
18+
"url_account": "https://livenet.xrpl.org/accounts/"
19+
}
20+
],
21+
"rpc": "https://xrplcluster.com",
22+
"definitions": "default",
23+
"icons": {
24+
"icon_square": "data:image/png;base64,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",
25+
"icon_asset": "data:image/png;base64,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"
26+
}
27+
}
28+
}

0 commit comments

Comments
 (0)