diff options
| -rw-r--r-- | src/main.rs | 54 | 
1 files changed, 18 insertions, 36 deletions
| diff --git a/src/main.rs b/src/main.rs index 8200b3f..9f4ad6a 100644 --- a/src/main.rs +++ b/src/main.rs @@ -13,7 +13,6 @@ use std::fmt;  use std::fs;  use std::process;  use std::str; -use std::string;  #[derive(Debug)] @@ -34,19 +33,6 @@ impl fmt::Display for EventResponseStatus {  } -#[derive(Debug)] -struct Eid { -    event_id: String, -    email: Option<String>, -} - -impl Eid { -    fn new(event_id: String, email: Option<String>) -> Self { -        Eid { event_id, email } -    } -} - -  #[tokio::main]  async fn main() -> Result<(), Box<dyn std::error::Error>> {      let args: Vec<String> = env::args().collect(); @@ -97,7 +83,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {      Ok(())  } -async fn rsvp(eid: &Eid, response: &EventResponseStatus) { +async fn rsvp(event_id: &str, response: &EventResponseStatus) {      let secret = secret_from_file();      let auth = oauth2::InstalledFlowAuthenticator::builder( @@ -117,26 +103,22 @@ async fn rsvp(eid: &Eid, response: &EventResponseStatus) {          auth,      ); +    let result = hub.events() +        .get("primary", event_id) +        .doit() +        .await +        .unwrap(); +      let mut event = Event::default();      let mut attendee = EventAttendee::default(); -    if let Some(email) = &eid.email { -        attendee.email = Some(email.to_owned()); -    } else { -        let result = hub.events() -            .get("primary", &eid.event_id) -            .doit() -            .await -            .unwrap(); - -        if let Some(attendees) = result.1.attendees { -            for a in &attendees { -                if let Some(is_me) = a.self_ { -                    if is_me { -                        attendee.email = a.email.clone(); - -                        break; -                    } +    if let Some(attendees) = result.1.attendees { +        for a in &attendees { +            if let Some(is_me) = a.self_ { +                if is_me { +                    attendee.email = a.email.clone(); + +                    break;                  }              }          } @@ -147,7 +129,7 @@ async fn rsvp(eid: &Eid, response: &EventResponseStatus) {      event.attendees = Some(vec![attendee]);      let res = hub.events() -        .patch(event, "primary", &eid.event_id) +        .patch(event, "primary", event_id)          .doit()          .await          .unwrap(); @@ -170,7 +152,7 @@ fn secret_from_file() -> oauth2::ApplicationSecret {      }  } -fn event_id_from_base64(event_id: &str) -> Eid { +fn event_id_from_base64(event_id: &str) -> String {      // Base64-matching regex from Xuanyuanzhiyuan      // (https://stackoverflow.com/users/1076906/xuanyuanzhiyuan) on Stack      // Overflow: @@ -180,7 +162,7 @@ fn event_id_from_base64(event_id: &str) -> Eid {      ).unwrap();      if !re.is_match(event_id) { -        return Eid::new(event_id.to_owned(), None); +        return event_id.to_owned();      }      let decoded = &base64::decode(event_id).unwrap(); @@ -188,7 +170,7 @@ fn event_id_from_base64(event_id: &str) -> Eid {      let values = id_email_pair.split(" ").collect::<Vec<_>>();      let id = values.first().unwrap().to_string(); -    Eid::new(id, values.last().map(string::ToString::to_string)) +    id  } | 
