def rsvp(request, rsvp_id=None, event_id=None): def get_event_id(_rsvp_id, _meetup_session): # meetup doesn't support PUT or Delete, so we must improvise and use POST with event_id rsvp_info = execute_meetup_api_action('/2/rsvp/{0}'.format(_rsvp_id), 'GET', {}, _meetup_session, False) event_info = rsvp_info.get('event') return event_info.get('id') def get_method(_method): # meetup doesn't support PUT or Delete, so we must improvise if is_special_request(_method): return 'POST' return _method def is_special_request(_method): return _method == 'PUT' or _method == 'DELETE' method = get_method(request.method) meetup_session = get_meetup_session_from_request(request) meetup_api_uri = get_rsvp_uri(rsvp_id, method) data = {} if is_special_request(request.method): event_id = get_event_id(rsvp_id, meetup_session) if request.method == 'DELETE': data = get_meetup_params(request, {'rsvp_id': rsvp_id, 'event_id': event_id, 'rsvp': 'no'}) if data is not None: data = get_meetup_params(request, {'rsvp_id': rsvp_id, 'event_id': event_id}) return execute_meetup_api_action(meetup_api_uri, method, data, meetup_session)
def event(request, event_id=None): meetup_api_uri = '2/event' if event_id is None else '2/event/{0}'.format(event_id) method = request.method data = get_meetup_params(request, {'event_id': event_id, 'fields': 'self'}) meetup_session = get_meetup_session_from_request(request) return execute_meetup_api_action(meetup_api_uri, method, data, meetup_session)