Source code for gaetk2.helpers

#!/usr/bin/env python
# encoding: utf-8
"""
helpers.py - smal view-helper-functions

Created by Maximillian Dornseif on 2016-12-15.
Copyright (c) 2016, 2018 Cyberlogi. MIT Licensed.
"""
import os
import urlparse

from google.appengine.api import app_identity

from gaetk2.config import get_productiondomain

from .exc import HTTP404_NotFound


[docs]def check404(obj, message='Object not found.'): """Raises 404 if ``bool(obj)`` is ``False``. The major usecase is to replace:: def post(self, kundennr): kunde = m_api.get_kunde(kundennr) if not kunde: raise HTTP404_NotFound do_some_work() with:: def post(self, kundennr): kunde = check404(m_api.get_kunde(kundennr)) do_some_work() This has the potential to make view-Functions much more readable. """ if not obj: raise HTTP404_NotFound(message) return obj
[docs]def abs_url(url): """Convert a relative URL to an absolute URL. You really should prefer :meth:`gaetk2.handler.base.BasicHandler.abs_url()` because it has better information about the request and host. """ # bischen hacky, weil wir am Stack vorbei arbeiten if 'HTTP_X_APPENGINE_QUEUENAME' in os.environ: # when called in a taskqueue, we don't want to provide the .appspot.com name if os.environ.get('HTTP_HOST') == app_identity.get_default_version_hostname(): return urlparse.urljoin('https://{}/'.format(get_productiondomain()), url) return urlparse.urljoin('https://' + os.environ['HTTP_HOST'], url)