instant_epp/extensions/rgp/
poll.rs

1//! https://www.verisign.com/assets/epp-sdk/verisign_epp-extension_rgp-poll_v00.html
2
3use chrono::{DateTime, Utc};
4use instant_xml::FromXml;
5
6use super::RgpStatus;
7
8/// RGP request status
9#[derive(Debug, FromXml)]
10#[xml(rename = "pollData", ns(XMLNS), rename_all = "camelCase")]
11pub struct RgpPollData {
12    pub name: String,
13    pub rgp_status: RgpStatus,
14    pub req_date: DateTime<Utc>,
15    pub report_due_date: DateTime<Utc>,
16}
17
18pub(super) const XMLNS: &str = "http://www.verisign.com/epp/rgp-poll-1.0";
19
20#[cfg(test)]
21mod tests {
22    use super::*;
23    use crate::poll::{Poll, PollData};
24    use crate::tests::response_from_file;
25
26    #[test]
27    fn rgp_poll_data() {
28        let object = response_from_file::<Poll>("response/poll/poll_rgp_restore.xml");
29        let Some(PollData::RgpPoll(data)) = object.res_data() else {
30            panic!("expected RgpPollData");
31        };
32
33        assert_eq!(data.name, "EXAMPLE.COM");
34        assert_eq!(data.rgp_status, RgpStatus::PendingRestore);
35    }
36}