(self, request, format=None)
| 1121 | ), |
| 1122 | ) |
| 1123 | def post(self, request, format=None): |
| 1124 | logger.info("EPGImportAPIView: Received request to import EPG data.") |
| 1125 | epg_id = request.data.get("id", None) |
| 1126 | force = bool(request.data.get("force", False)) |
| 1127 | |
| 1128 | # Reject dummy sources with a narrow existence query, no full row load. |
| 1129 | if epg_id is not None: |
| 1130 | from .models import EPGSource |
| 1131 | |
| 1132 | if EPGSource.objects.filter( |
| 1133 | id=epg_id, source_type="dummy" |
| 1134 | ).exists(): |
| 1135 | logger.info( |
| 1136 | "EPGImportAPIView: Skipping refresh for dummy EPG source %s", |
| 1137 | epg_id, |
| 1138 | ) |
| 1139 | return Response( |
| 1140 | { |
| 1141 | "success": False, |
| 1142 | "message": "Dummy EPG sources do not require refreshing.", |
| 1143 | }, |
| 1144 | status=status.HTTP_400_BAD_REQUEST, |
| 1145 | ) |
| 1146 | |
| 1147 | refresh_epg_data.delay(epg_id, force=force) # Trigger Celery task |
| 1148 | logger.info("EPGImportAPIView: Task dispatched to refresh EPG data.") |
| 1149 | return Response( |
| 1150 | {"success": True, "message": "EPG data refresh initiated."}, |
| 1151 | status=status.HTTP_202_ACCEPTED, |
| 1152 | ) |
| 1153 | |
| 1154 | |
| 1155 | # ───────────────────────────── |
no test coverage detected