1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
use super::LogDrain;
use crate::framework::endpoint::{HerokuEndpoint, Method};
pub struct LogDrainList<'a> {
pub app_id: &'a str,
}
impl<'a> LogDrainList<'a> {
pub fn new(app_id: &'a str) -> LogDrainList {
LogDrainList { app_id }
}
}
impl<'a> HerokuEndpoint<Vec<LogDrain>> for LogDrainList<'a> {
fn method(&self) -> Method {
Method::Get
}
fn path(&self) -> String {
format!("apps/{}/log-drains", self.app_id)
}
}
pub struct LogDrainDetails<'a> {
pub app_id: &'a str,
pub drain_id: &'a str,
}
impl<'a> LogDrainDetails<'a> {
pub fn new(app_id: &'a str, drain_id: &'a str) -> LogDrainDetails<'a> {
LogDrainDetails { app_id, drain_id }
}
}
impl<'a> HerokuEndpoint<LogDrain> for LogDrainDetails<'a> {
fn method(&self) -> Method {
Method::Get
}
fn path(&self) -> String {
format!("apps/{}/log-drains/{}", self.app_id, self.drain_id)
}
}
pub struct LogDrainListByAddon<'a> {
pub addon_id: &'a str,
}
impl<'a> LogDrainListByAddon<'a> {
pub fn new(addon_id: &'a str) -> LogDrainListByAddon<'a> {
LogDrainListByAddon { addon_id }
}
}
impl<'a> HerokuEndpoint<LogDrain> for LogDrainListByAddon<'a> {
fn method(&self) -> Method {
Method::Get
}
fn path(&self) -> String {
format!("addons/{}/log-drains", self.addon_id)
}
}