def read(self, request, vendor, name, version): format = request.GET.get('format', 'default') # Get the resource's id for those vendor, name and version resource = get_object_or_404(CatalogueResource, short_name=name, vendor=vendor, version=version).id return get_tag_response(resource, request.user, format)
def create(self, request, vendor, name, version): format = request.POST.get('format', 'default') # Get the xml containing the tags from the request tags_xml = request.POST.get('tags_xml') tags_xml = tags_xml.encode("utf-8") # Parse the xml containing the tags parser = make_parser() handler = TagsXMLHandler() # Tell the parser to use our handler parser.setContentHandler(handler) # Parse the input inpsrc = InputSource() inpsrc.setByteStream(StringIO(tags_xml)) parser.parse(inpsrc) # Get the resource's id for those vendor, name and version resource = get_object_or_404(CatalogueResource, short_name=name, vendor=vendor, version=version) # Insert the tags for these resource and user in the database for e in handler._tags: tag_resource(request.user, e, resource) return get_tag_response(resource, request.user, format)
def delete(self, request, vendor, name, version, tag): format = request.GET.get('format', 'default') resource = get_object_or_404(CatalogueResource, short_name=name, vendor=vendor, version=version).id userTag = get_object_or_404(UserTag, id=tag) #if there is no more resources tagged by an user with this tag, delete the Tag if UserTag.objects.filter(tag=userTag.tag).count() == 1: userTag.tag.delete() userTag.delete() return get_tag_response(resource, request.user, format)