add attend functionallity
This commit is contained in:
25
app.py
25
app.py
@@ -1,9 +1,10 @@
|
|||||||
import calendar_interface
|
import logging
|
||||||
import sqlite3
|
import json
|
||||||
|
|
||||||
from flask import Flask, render_template, g, request, url_for, flash, redirect
|
from flask import Flask, render_template, g, request, url_for, flash, redirect
|
||||||
from werkzeug.exceptions import abort
|
from werkzeug.exceptions import abort
|
||||||
|
|
||||||
|
import calendar_interface
|
||||||
import db
|
import db
|
||||||
import auth
|
import auth
|
||||||
|
|
||||||
@@ -29,3 +30,23 @@ def index():
|
|||||||
# def post(post_id):
|
# def post(post_id):
|
||||||
# post = get_post(post_id)
|
# post = get_post(post_id)
|
||||||
# return render_template('show_event.html', post=post)
|
# return render_template('show_event.html', post=post)
|
||||||
|
|
||||||
|
@app.route('/<id>/attend')
|
||||||
|
@auth.login_required
|
||||||
|
def attend(id):
|
||||||
|
event = calendar_interface.get_calendar_event(id)
|
||||||
|
|
||||||
|
user = g.user["username"]
|
||||||
|
email = g.user["email"]
|
||||||
|
|
||||||
|
# only update attendees, now the whole event
|
||||||
|
data = {}
|
||||||
|
data["attendees"] = event["attendees"]
|
||||||
|
|
||||||
|
logging.info("attempting to attend event with user: %s %s", email, user)
|
||||||
|
calendar_interface.add_attendee(data, user, email)
|
||||||
|
|
||||||
|
logging.info("Sending data for attendee update:\n%s", json.dumps(data, indent=2))
|
||||||
|
calendar_interface.update_calendar_event(id, data)
|
||||||
|
|
||||||
|
return redirect(url_for('index'))
|
||||||
@@ -70,7 +70,9 @@ def execute_patch_request(token, endpoint, data):
|
|||||||
#data=data,
|
#data=data,
|
||||||
headers={'Authorization': 'Bearer ' + token['access_token']},).json()
|
headers={'Authorization': 'Bearer ' + token['access_token']},).json()
|
||||||
|
|
||||||
def update_calendar_event(token, event_id, data, user_id=USER_ID):
|
def update_calendar_event(event_id, data, user_id=USER_ID):
|
||||||
|
token = get_access_token()
|
||||||
|
|
||||||
endpoint= "https://graph.microsoft.com/v1.0/users/" + user_id + f"/calendar/events/{event_id}"
|
endpoint= "https://graph.microsoft.com/v1.0/users/" + user_id + f"/calendar/events/{event_id}"
|
||||||
return execute_patch_request(token, endpoint, data)
|
return execute_patch_request(token, endpoint, data)
|
||||||
|
|
||||||
@@ -87,6 +89,12 @@ def get_all_calendar_events():
|
|||||||
|
|
||||||
return execute_user_request(token, f"calendars/{CALENDAR_ID}/events").get("value")
|
return execute_user_request(token, f"calendars/{CALENDAR_ID}/events").get("value")
|
||||||
|
|
||||||
|
def get_calendar_event(id, filter: str=""):
|
||||||
|
token = get_access_token()
|
||||||
|
|
||||||
|
return execute_user_request(token, f"calendars/{CALENDAR_ID}/events/{id}{filter}")
|
||||||
|
|
||||||
|
|
||||||
def get_future_calendar_events():
|
def get_future_calendar_events():
|
||||||
|
|
||||||
t1=datetime.now()
|
t1=datetime.now()
|
||||||
@@ -118,6 +126,27 @@ def convert_datetimes(events):
|
|||||||
|
|
||||||
return events
|
return events
|
||||||
|
|
||||||
|
def add_attendee(data, name, email):
|
||||||
|
d = {
|
||||||
|
"type": "required",
|
||||||
|
"status": {
|
||||||
|
"response": "none",
|
||||||
|
"time": "0001-01-01T00:00:00Z"
|
||||||
|
},
|
||||||
|
"emailAddress": {
|
||||||
|
"name": name,
|
||||||
|
"address": email
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
data["attendees"].append(d)
|
||||||
|
|
||||||
|
def delte_attendee(data, email):
|
||||||
|
for i, d in enumerate(data["attendees"]):
|
||||||
|
if d["emailAddress"]["address"] == email:
|
||||||
|
del data[i]
|
||||||
|
break
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|
||||||
@@ -176,8 +205,9 @@ if __name__ == "__main__":
|
|||||||
data["attendees"][0]["emailAddress"]["address"] = "struebin.patrick@gmail.com"
|
data["attendees"][0]["emailAddress"]["address"] = "struebin.patrick@gmail.com"
|
||||||
|
|
||||||
#Test2
|
#Test2
|
||||||
event_id = "AAMkADY0MDg1MTVjLTg5ZjItNGQxYS04MGQ3LWY2NjJmYjM0YmZhOQBGAAAAAADXD7SdVoWYQI4RYXbBumMEBwAf_ngZxs71RonY3GuLL8TVAADHFw_OAAAf_ngZxs71RonY3GuLL8TVAABLH9QmAAA="
|
event_id = "AAMkADY0MDg1MTVjLTg5ZjItNGQxYS04MGQ3LWY2NjJmYjM0YmZhOQBGAAAAAADXD7SdVoWYQI4RYXbBumMEBwAf_ngZxs71RonY3GuLL8TVAADHFw_OAAAf_ngZxs71RonY3GuLL8TVAADQqYjcAAA%3D"
|
||||||
ret = update_calendar_event(token, event_id, data)
|
ret = get_calendar_event(event_id)
|
||||||
|
#ret = update_calendar_event(token, event_id, data)
|
||||||
|
|
||||||
print(json.dumps(ret, indent=2))
|
print(json.dumps(ret, indent=2))
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user