coinpaprika_api/changelog/
mod.rs1use crate::client::{Client, Response};
2use crate::error::Error;
3use reqwest_middleware::RequestBuilder;
4use serde::{Deserialize, Serialize};
5
6#[derive(Debug, Serialize, Deserialize)]
7pub struct Change {
9 pub currency_id: String,
10 pub old_id: String,
11 pub new_id: String,
12
13 pub changed_at: String,
15}
16
17pub struct GetChangelogRequest<'a> {
20 client: &'a Client,
21 page: i32,
22}
23
24impl<'a> GetChangelogRequest<'a> {
25 pub fn new(client: &'a Client, page: i32) -> Self {
26 Self { client, page }
27 }
28
29 pub async fn send(&self) -> Result<Vec<Change>, Error> {
30 let query: Vec<(String, String)> = vec![("page".to_string(), self.page.to_string())];
31
32 let request: RequestBuilder = self
33 .client
34 .client
35 .get(format!("{}/changelog/ids", self.client.api_url))
36 .query(&query);
37
38 let response: Response = self.client.request(request).await?;
39
40 let data: Vec<Change> = response.response.json().await?;
41
42 Ok(data)
43 }
44}