aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTeddy Wing2021-05-22 02:30:43 +0200
committerTeddy Wing2021-05-22 02:30:43 +0200
commit6b8ed5422670af9d3e34a487a283e048da079922 (patch)
tree78caed79c833e6e1055736a2c6f416bd4149a0a2 /src
parentc2525d8e9b9bb671ce855c20f644c43e71e1e7ef (diff)
downloadgoogle-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.rs54
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
}