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
use api::{Id, Timestamp};

#[derive(Debug, PartialEq, Eq, Deserialize, Clone)]
pub struct LinkInfo {
    pub status: LinkStatus,
    pub link: String, // URL
}

#[derive(Debug, PartialEq, Eq, Deserialize, Clone)]
pub struct ScreenNameInfo {
    #[serde(rename="type")]
    pub kind: String,
    pub object_id: Id,
}


enum_str! { LinkStatus {
    NotBanned = "not_banned",
    Banned = "banned",
    Processing = "processing"
}}

request_ref! {
    #[derive(Copy, Eq)]
    struct CheckLink for ["utils.checkLink"](v => 5.44) -> LinkInfo {
        url: str = ("") => {=},
    }
}

request_ref! {
    #[derive(Copy, Eq)]
    struct ResolveScreenName for ["utils.resolveScreenName"](v => 5.44) -> Option<ScreenNameInfo> {
        screen_name: str = ("") => {=},
    }
}

request! {
    struct GetServerTime for ["utils.getServerTime"](v => 5.44) -> Timestamp;
}