from django.shortcuts import redirect from eventplanner_gcal.google_sync import syncFromGoogleToLocal, syncFromLocalToGoogle from django.http import HttpResponse from django.views.decorators.csrf import csrf_exempt from pprint import pformat from eventplanner_gcal.google_sync import checkIfGoogleCallbackIsValid import logging logger = logging.getLogger( __name__ ) def runSync( request ): syncFromLocalToGoogle() return redirect("/") @csrf_exempt def gcalApiCallback( request ): # TODO check channel info here token = "" if 'HTTP_X_GOOG_CHANNEL_TOKEN' in request.META: token = request.META['HTTP_X_GOOG_CHANNEL_TOKEN'] channelID = "" if 'HTTP_X_GOOG_CHANNEL_ID' in request.META: channelID = request.META['HTTP_X_GOOG_CHANNEL_ID'] resourceID = "" if 'HTTP_X_GOOG_RESOURCE_ID' in request.META: resourceID = request.META['HTTP_X_GOOG_RESOURCE_ID'] valid = checkIfGoogleCallbackIsValid( token, channelID, resourceID) if not valid: return HttpResponse('

Old Channel - no update triggered

') logger.info( "Received Google Callback with the following headers Token: %s ID %s ResID %s " % ( token, channelID, resourceID ) ) result = syncFromGoogleToLocal() logger.info("Finished processing callback from GCal - New Information present: %d " %(result, ) ) return HttpResponse('

Callback successful

')