##// END OF EJS Templates
Continue merge
Continue merge

File last commit:

r837:fbeaaa16 decentral
r1158:05c160e3 decentral
Show More
sync.py
48 lines | 1.3 KiB | text/x-python | PythonLexer
neko259
Added GET request handler, command for key generation. Changed KeyPair format for ecdsa (use to_string instead of to_pem because it's shorter)
r836 import xml.etree.ElementTree as et
neko259
Added signatures to the GET response. Added a view to get a full post response for one post. Don't show post key as it is present in the XML post view. Changed key display format
r837 from django.http import HttpResponse, Http404
neko259
Added GET request handler, command for key generation. Changed KeyPair format for ecdsa (use to_string instead of to_pem because it's shorter)
r836 from boards.models import GlobalId, Post
neko259
Added a generator for the 'get' request for sync
r810 def respond_pull(request):
pass
def respond_get(request):
neko259
Added GET request handler, command for key generation. Changed KeyPair format for ecdsa (use to_string instead of to_pem because it's shorter)
r836 """
Processes a GET request with post ID list and returns the posts XML list.
Request should contain an 'xml' post attribute with the actual request XML.
"""
request_xml = request.POST['xml']
posts = []
root_tag = et.fromstring(request_xml)
model_tag = root_tag[0]
for id_tag in model_tag:
try:
global_id = GlobalId.from_xml_element(id_tag, existing=True)
posts += Post.objects.filter(global_id=global_id)
except GlobalId.DoesNotExist:
# This is normal. If we don't have such GlobalId in the system,
# just ignore this ID and proceed to the next one.
pass
response_xml = Post.objects.generate_response_get(posts)
neko259
Added signatures to the GET response. Added a view to get a full post response for one post. Don't show post key as it is present in the XML post view. Changed key display format
r837 return HttpResponse(content=response_xml)
def get_post_sync_data(request, post_id):
try:
post = Post.objects.get(id=post_id)
except Post.DoesNotExist:
raise Http404()
content = 'Global ID: %s\n\nXML: %s' \
% (post.global_id, Post.objects.generate_response_get([post]))
return HttpResponse(
content_type='text/plain',
content=content,
)