X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/a5dd9b05d1136543817c697ecd0d878a1aa4d260..8c26f548ef22db734120de4a0828aa8d6b9fdaa0:/apps/api/handlers/library_handlers.py?ds=sidebyside diff --git a/apps/api/handlers/library_handlers.py b/apps/api/handlers/library_handlers.py index 06358618..9751fefb 100644 --- a/apps/api/handlers/library_handlers.py +++ b/apps/api/handlers/library_handlers.py @@ -9,6 +9,7 @@ __date__ = "$2009-09-25 15:49:50$" __doc__ = "Module documentation." from piston.handler import BaseHandler, AnonymousBaseHandler +from django.http import HttpResponse import re from datetime import date @@ -19,6 +20,7 @@ from django.db import IntegrityError import librarian import librarian.html +import difflib from librarian import dcparser, parser from wlrepo import * @@ -200,6 +202,26 @@ class BasicDocumentHandler(AnonymousBaseHandler): return result + +class DiffHandler(BaseHandler): + allowed_methods = ('GET',) + + @hglibrary + def read(self, request, source_revision, target_revision, lib): + '''Return diff between source_revision and target_revision)''' + source_document = lib.document_for_rev(source_revision) + target_document = lib.document_for_rev(target_revision) + print source_document, + print target_document + diff = difflib.unified_diff( + source_document.data('xml').splitlines(True), + target_document.data('xml').splitlines(True), + 'source', + 'target') + + return ''.join(list(diff)) + + # # Document Meta Data #