Download app_core/appwrite_views.py from ktongue/ENISE: direct link, hf CLI and curl.
- Browser
- Download file 5.26 kB
-
https://huggingface.co/spaces/ktongue/ENISE/resolve/main/app_core/appwrite_views.py
- Command line
-
hf download hf://spaces/ktongue/ENISE/app_core/appwrite_views.py
-
curl -L -o appwrite_views.py https://huggingface.co/spaces/ktongue/ENISE/resolve/main/app_core/appwrite_views.py
5.26 kB
| from django.http import JsonResponse | |
| from django.views.decorators.csrf import csrf_exempt | |
| from django.views.decorators.http import require_http_methods | |
| from enise_site.appwrite_service import appwrite_db | |
| from appwrite.query import Query | |
| from appwrite.id import ID | |
| import json | |
| def appwrite_create_document(request): | |
| """Créer un document dans une collection Appwrite""" | |
| try: | |
| data = json.loads(request.body) | |
| collection_id = data.pop('collection_id', None) | |
| if not collection_id: | |
| return JsonResponse({'success': False, 'error': 'collection_id requis'}, status=400) | |
| database = appwrite_db.get_database() | |
| document_id = data.get('document_id', ID.unique()) | |
| result = database.create_document( | |
| database_id=appwrite_db.DATABASE_ID, | |
| collection_id=collection_id, | |
| document_id=document_id, | |
| data=data | |
| ) | |
| return JsonResponse({'success': True, 'document': result}) | |
| except Exception as e: | |
| return JsonResponse({'success': False, 'error': str(e)}, status=500) | |
| def appwrite_list_documents(request): | |
| """Lister les documents d'une collection""" | |
| try: | |
| collection_id = request.GET.get('collection_id') | |
| queries = request.GET.getlist('queries', []) | |
| if not collection_id: | |
| return JsonResponse({'success': False, 'error': 'collection_id requis'}, status=400) | |
| database = appwrite_db.get_database() | |
| result = database.list_documents( | |
| database_id=appwrite_db.DATABASE_ID, | |
| collection_id=collection_id, | |
| queries=queries | |
| ) | |
| return JsonResponse({'success': True, 'documents': result.get('documents', [])}) | |
| except Exception as e: | |
| return JsonResponse({'success': False, 'error': str(e)}, status=500) | |
| def appwrite_get_document(request, document_id): | |
| """Récupérer un document par son ID""" | |
| try: | |
| collection_id = request.GET.get('collection_id') | |
| if not collection_id: | |
| return JsonResponse({'success': False, 'error': 'collection_id requis'}, status=400) | |
| database = appwrite_db.get_database() | |
| result = database.get_document( | |
| database_id=appwrite_db.DATABASE_ID, | |
| collection_id=collection_id, | |
| document_id=document_id | |
| ) | |
| return JsonResponse({'success': True, 'document': result}) | |
| except Exception as e: | |
| return JsonResponse({'success': False, 'error': str(e)}, status=500) | |
| def appwrite_update_document(request, document_id): | |
| """Mettre à jour un document""" | |
| try: | |
| data = json.loads(request.body) | |
| collection_id = data.pop('collection_id', None) | |
| if not collection_id: | |
| return JsonResponse({'success': False, 'error': 'collection_id requis'}, status=400) | |
| database = appwrite_db.get_database() | |
| result = database.update_document( | |
| database_id=appwrite_db.DATABASE_ID, | |
| collection_id=collection_id, | |
| document_id=document_id, | |
| data=data | |
| ) | |
| return JsonResponse({'success': True, 'document': result}) | |
| except Exception as e: | |
| return JsonResponse({'success': False, 'error': str(e)}, status=500) | |
| def appwrite_delete_document(request, document_id): | |
| """Supprimer un document""" | |
| try: | |
| collection_id = request.GET.get('collection_id') | |
| if not collection_id: | |
| return JsonResponse({'success': False, 'error': 'collection_id requis'}, status=400) | |
| database = appwrite_db.get_database() | |
| database.delete_document( | |
| database_id=appwrite_db.DATABASE_ID, | |
| collection_id=collection_id, | |
| document_id=document_id | |
| ) | |
| return JsonResponse({'success': True, 'message': 'Document supprimé'}) | |
| except Exception as e: | |
| return JsonResponse({'success': False, 'error': str(e)}, status=500) | |
| def appwrite_test_connection(request): | |
| """Tester la connexion Appwrite""" | |
| try: | |
| from django.conf import settings | |
| if not settings.APPWRITE_PROJECT_ID: | |
| return JsonResponse({ | |
| 'success': False, | |
| 'error': 'APPWRITE_PROJECT_ID non configuré' | |
| }, status=500) | |
| database = appwrite_db.get_database() | |
| result = database.list_documents( | |
| database_id=appwrite_db.DATABASE_ID, | |
| collection_id='specialites', | |
| queries=[Query.limit(1)] | |
| ) | |
| return JsonResponse({ | |
| 'success': True, | |
| 'message': 'Connexion Appwrite établie', | |
| 'endpoint': settings.APPWRITE_ENDPOINT, | |
| 'project_id': settings.APPWRITE_PROJECT_ID | |
| }) | |
| except Exception as e: | |
| return JsonResponse({'success': False, 'error': str(e)}, status=500) |