Esempio n. 1
0
    def post(self, request):
        if request.content_length == 0:
            return Response(status=400)

        content_type = request.headers.get('CONTENT_TYPE', None)
        message = 'Initial blueprint'

        if content_type == 'text/vnd.apiblueprint+markdown':
            content = request.body.read(request.content_length)
            expires = EXPIRE_DEFAULT
        else:
            content = request.POST.get('blueprint', '')
            if len(content) == 0:
                return Response(status=400)
            expires = request.POST.get('expires', EXPIRE_DEFAULT)
            message = request.POST.get('message', message)

        expires = datetime.datetime.now() + \
            datetime.timedelta(seconds=int(expires))

        slug = sha1(datetime.datetime.now().isoformat() + content).hexdigest()
        blueprint = Blueprint.create(slug=slug, expires=expires,
                author=request.user)
        revision = blueprint.create_revision(message, content)
        resource = BlueprintResource(obj=blueprint)
        resource.request = request
        response = resource.get(request)

        if response.status_code == 200:
            response.status_code = 201

        return response
Esempio n. 2
0
def migrate():
    from bluepaste.models import User, Blueprint, Revision
    User.create_table()
    Blueprint.create_table()
    Revision.create_table()
Esempio n. 3
0
def prune():
    """
    Cleanup expired blueprints.
    """
    from bluepaste.models import Blueprint
    Blueprint.delete().where(Blueprint.expires < datetime.datetime.now()).execute()