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)
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)
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)
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)
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)