コード例 #1
0
ファイル: dataset.py プロジェクト: chakibBH/idgo
 def put(self, request, dataset_name):
     """Modifier le jeu de données."""
     request.PUT, request._files = parse_request(request)
     try:
         handle_pust_request(request, dataset_name=dataset_name)
     except Http404:
         raise Http404()
     except GenericException as e:
         return JsonResponse({'error': e.details}, status=400)
     return HttpResponse(status=204)
コード例 #2
0
ファイル: organisation.py プロジェクト: chakibBH/idgo
 def put(self, request, organisation_name):
     """Créer une nouvelle organisation."""
     request.PUT, request._files = parse_request(request)
     if not request.user.profile.is_admin:
         raise Http404()
     try:
         handle_pust_request(request, organisation_name=organisation_name)
     except Http404:
         raise Http404()
     except GenericException as e:
         return JsonResponse({'error': e.details}, status=400)
     return HttpResponse(status=204)
コード例 #3
0
 def put(self, request, username):
     """Mettre à jour un utilisateur."""
     request.PUT, request._files = parse_request(request)
     if not request.user.profile.is_admin:
         raise Http404()
     try:
         handle_pust_request(request, username=username)
     except Http404:
         raise Http404()
     except GenericException as e:
         return JsonResponse({'error': e.details}, status=400)
     return HttpResponse(status=204)
コード例 #4
0
 def put(self, request, dataset_name, resource_id):
     """Modifier la ressource."""
     request.PUT, request._files = parse_request(request)
     try:
         resource_id = UUID(resource_id)
     except ValueError:
         raise Http404()
     try:
         handle_pust_request(request, dataset_name, resource_id=resource_id)
     except Http404:
         raise Http404()
     except GenericException as e:
         return JsonResponse({'error': e.details}, status=400)
     return HttpResponse(status=204)
コード例 #5
0
ファイル: dataset.py プロジェクト: hcharp/DataSud-2017-2019
    def put(self, request, dataset_name):
        """Enregistrer la ficher de métadonnées du jeu de données."""
        request.PUT, _ = parse_request(request)
        request.PUT._mutable = True

        instance = None
        for dataset in handler_get_request(request):
            if dataset.slug == dataset_name:
                instance = dataset
                break
        if not instance:
            raise Http404()

        root = ET.fromstring(request.PUT.get('xml'))
        ns = {
            'gmd': 'http://www.isotc211.org/2005/gmd',
            'gco': 'http://www.isotc211.org/2005/gco'
        }
        geonet_id = root.find('gmd:fileIdentifier/gco:CharacterString',
                              ns).text
        if not geonet_id:
            return JsonResponse({'error': 'fileIdentifier not found'},
                                status=400)

        record = ET.tostring(root,
                             encoding='utf-8',
                             method='xml',
                             short_empty_elements=True)
        try:
            if not geonet.get_record(geonet_id):
                try:
                    geonet.create_record(geonet_id, record)
                except Exception as e:
                    return JsonResponse({'error': e.__str__()}, status=400)
                else:
                    geonet.publish(geonet_id)
                    dataset.geonet_id = geonet_id
            else:
                try:
                    geonet.update_record(geonet_id, record)
                except Exception as e:
                    return JsonResponse({'error': e.__str__()}, status=400)
            dataset.save(synchronize=True)

        except GenericException as e:
            return JsonResponse({'error': e.details}, status=400)

        return HttpResponse(status=204)