-
Notifications
You must be signed in to change notification settings - Fork 41
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge #119: Refactor: rename peer.updated field in torrent detail end…
…point e1b84f6 refactor: [#61] extract struct ApiClient for API testing (Jose Celano) bc3d246 feat(api): in torrent endpoint rename field to (Jose Celano) 7e03714 refactor: [#61] use StatsResource in API stats endpoint (Jose Celano) b974ce0 refactor: [#61] use TorrentListItemResource in torrent list API endpoint (Jose Celano) 284c91b test: [#61] add e2e test for torrent list API endpoint (Jose Celano) 7298701 refactor: [#61] extract converter from TorrentPeer to TorrentPeerResource (Jose Celano) 801dfe6 refactor: [#61] use TorrentResource in torrent info API endpoint (Jose Celano) ea92ceb test: [#61] add e2e test to API torrent info endpoint before refactoring (Jose Celano) Pull request description: TODO: - [x] Add an e2e test before refactoring. - [x] Refactor the API endpoint to use the resource `TorrentResource` like `AuthKeyResource`. - [x] Refactor endpoint ` /api/torrents?offset=:u32&limit=:u32` to use `TorrentResource`. - [x] Add a new field (`updated_milliseconds_ago`) to the JSON response keeping the old one for backwards compatibility. ACKs for top commit: josecelano: ACK e1b84f6 da2ce7: ACK e1b84f6 Tree-SHA512: be96ae16aa4214e600d6679f35a47ec3b95132ee8243352a11f7aca579a2a000843591556b8279abd073a9cb1079d32b961ee3c71892d4d925fcd202be2826a8
- Loading branch information
Showing
8 changed files
with
366 additions
and
82 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
use serde::{Deserialize, Serialize}; | ||
|
||
#[derive(Serialize, Deserialize, Debug, PartialEq)] | ||
pub struct StatsResource { | ||
pub torrents: u32, | ||
pub seeders: u32, | ||
pub completed: u32, | ||
pub leechers: u32, | ||
pub tcp4_connections_handled: u32, | ||
pub tcp4_announces_handled: u32, | ||
pub tcp4_scrapes_handled: u32, | ||
pub tcp6_connections_handled: u32, | ||
pub tcp6_announces_handled: u32, | ||
pub tcp6_scrapes_handled: u32, | ||
pub udp4_connections_handled: u32, | ||
pub udp4_announces_handled: u32, | ||
pub udp4_scrapes_handled: u32, | ||
pub udp6_connections_handled: u32, | ||
pub udp6_announces_handled: u32, | ||
pub udp6_scrapes_handled: u32, | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
use serde::{Deserialize, Serialize}; | ||
|
||
use crate::peer::TorrentPeer; | ||
use crate::PeerId; | ||
|
||
#[derive(Serialize, Deserialize, Debug, PartialEq)] | ||
pub struct TorrentResource { | ||
pub info_hash: String, | ||
pub seeders: u32, | ||
pub completed: u32, | ||
pub leechers: u32, | ||
#[serde(skip_serializing_if = "Option::is_none")] | ||
pub peers: Option<Vec<TorrentPeerResource>>, | ||
} | ||
|
||
#[derive(Serialize, Deserialize, Debug, PartialEq)] | ||
pub struct TorrentListItemResource { | ||
pub info_hash: String, | ||
pub seeders: u32, | ||
pub completed: u32, | ||
pub leechers: u32, | ||
// todo: this is always None. Remove field from endpoint? | ||
pub peers: Option<Vec<TorrentPeerResource>>, | ||
} | ||
|
||
#[derive(Serialize, Deserialize, Debug, PartialEq)] | ||
pub struct TorrentPeerResource { | ||
pub peer_id: PeerIdResource, | ||
pub peer_addr: String, | ||
#[deprecated(since = "2.0.0", note = "please use `updated_milliseconds_ago` instead")] | ||
pub updated: u128, | ||
pub updated_milliseconds_ago: u128, | ||
pub uploaded: i64, | ||
pub downloaded: i64, | ||
pub left: i64, | ||
pub event: String, | ||
} | ||
|
||
#[derive(Serialize, Deserialize, Debug, PartialEq)] | ||
pub struct PeerIdResource { | ||
pub id: Option<String>, | ||
pub client: Option<String>, | ||
} | ||
|
||
impl From<PeerId> for PeerIdResource { | ||
fn from(peer_id: PeerId) -> Self { | ||
PeerIdResource { | ||
id: peer_id.get_id(), | ||
client: peer_id.get_client_name().map(|client_name| client_name.to_string()), | ||
} | ||
} | ||
} | ||
|
||
impl From<TorrentPeer> for TorrentPeerResource { | ||
fn from(peer: TorrentPeer) -> Self { | ||
TorrentPeerResource { | ||
peer_id: PeerIdResource::from(peer.peer_id), | ||
peer_addr: peer.peer_addr.to_string(), | ||
updated: peer.updated.as_millis(), | ||
updated_milliseconds_ago: peer.updated.as_millis(), | ||
uploaded: peer.uploaded.0, | ||
downloaded: peer.downloaded.0, | ||
left: peer.left.0, | ||
event: format!("{:?}", peer.event), | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.