コード例 #1
0
ファイル: handlers.py プロジェクト: jamiecurle/redirectomatic
 def create(self, request):
     # set everything up
     key = request.POST.get('key') or request.GET.get('key')
     url = request.POST.get('url') or request.GET.get('url')
     # set up response
     response = HttpResponse(mimetype='json/application')
     # post needs to have a key and url, fail if not both
     if not bool(url and key):
         response.content = json.dumps({'code': 101, 'url' : 'http://%s%s' % (Site.objects.get_current(), reverse('faq:view', args=[101]) ) } )
         response.status_code = 400
         return response
     # make sure key is correct
     try:
         user = User.objects.get(userprofile__key=key)
     except User.DoesNotExist:
         response.content = json.dumps({'code': 102, 'url' : 'http://%s%s' % (Site.objects.get_current(), reverse('faq:view', args=[102]) ) } )
         response.status_code = 400
         return response
     # either 200 or 201
     #
     #
     try:
         r = Redirect.objects.get(url=url, user=user)
         response.status_code = 200
     except Redirect.DoesNotExist:
         r = Redirect()
         r.url = url
         r.user = user
         r.save()
         response.status_code = 200
     # return the response
     #response.content = serializers.serialize('json', [r])
     response.content = json.dumps({'shortUrl' : r.shorturl})
     response['Location'] = r.get_absolute_url()
     return response