diff options
| author | Teddy Wing | 2021-05-22 02:30:43 +0200 |
|---|---|---|
| committer | Teddy Wing | 2021-05-22 02:30:43 +0200 |
| commit | 6b8ed5422670af9d3e34a487a283e048da079922 (patch) | |
| tree | 78caed79c833e6e1055736a2c6f416bd4149a0a2 /src | |
| parent | c2525d8e9b9bb671ce855c20f644c43e71e1e7ef (diff) | |
| download | google-calendar-rsvp-6b8ed5422670af9d3e34a487a283e048da079922.tar.bz2 | |
Revert Eid additions
This reverts commits:
c2525d8e9b9bb671ce855c20f644c43e71e1e7ef
65aa6027a76a65d021a5833322b5d33143933202
It turns out we can't use the email address encoded into the base64 eid
string because it's the organiser's email address, not the invitee's
address.
Diffstat (limited to 'src')
| -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 } |
