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
def migrate(): from bluepaste.models import User, Blueprint, Revision User.create_table() Blueprint.create_table() Revision.create_table()
def prune(): """ Cleanup expired blueprints. """ from bluepaste.models import Blueprint Blueprint.delete().where(Blueprint.expires < datetime.datetime.now()).execute()