import datetime

from nibbits.core.date import format_expire

from models import Game

class GameMiddleware(object):
    def process_request(self, request):
        request.game = None
        
    def process_view(self, request, view_func, view_args, view_kwargs):
        short_name = view_kwargs.get('short_name')
        if short_name:
            try:
                request.game = Game.objects.get_for_short_name(short_name)
            except Game.DoesNotExist:
                pass

    def process_response(self, request, response):
        if getattr(request, 'game', None):
            response.set_cookie('game', request.game.short_name, max_age=86400*30, expires=format_expire(datetime.datetime.now()+datetime.timedelta(days=30)))
        return response