Browse Source

use new ids for ArchiveResult API

Nick Sweeting 1 year ago
parent
commit
a271bcb4ce
3 changed files with 12 additions and 9 deletions
  1. 6 6
      archivebox/api/v1_core.py
  2. 4 1
      archivebox/core/admin.py
  3. 2 2
      archivebox/core/models.py

+ 6 - 6
archivebox/api/v1_core.py

@@ -22,8 +22,9 @@ router = Router(tags=['Core Models'])
 
 
 class ArchiveResultSchema(Schema):
 class ArchiveResultSchema(Schema):
     abid: str
     abid: str
-    uuid: UUID
-    pk: str
+    id: UUID
+    # old_id: int
+
     modified: datetime
     modified: datetime
     created: datetime
     created: datetime
     created_by_id: str
     created_by_id: str
@@ -73,8 +74,7 @@ class ArchiveResultSchema(Schema):
 
 
 
 
 class ArchiveResultFilterSchema(FilterSchema):
 class ArchiveResultFilterSchema(FilterSchema):
-    uuid: Optional[UUID] = Field(None, q='uuid')
-    # abid: Optional[str] = Field(None, q='abid')
+    id: Optional[UUID] = Field(None, q='id')
 
 
     search: Optional[str] = Field(None, q=['snapshot__url__icontains', 'snapshot__title__icontains', 'snapshot__tags__name__icontains', 'extractor', 'output__icontains'])
     search: Optional[str] = Field(None, q=['snapshot__url__icontains', 'snapshot__title__icontains', 'snapshot__tags__name__icontains', 'extractor', 'output__icontains'])
     snapshot_uuid: Optional[UUID] = Field(None, q='snapshot_uuid__icontains')
     snapshot_uuid: Optional[UUID] = Field(None, q='snapshot_uuid__icontains')
@@ -104,8 +104,8 @@ def get_archiveresults(request, filters: ArchiveResultFilterSchema = Query(...))
 
 
 @router.get("/archiveresult/{archiveresult_id}", response=ArchiveResultSchema, url_name="get_archiveresult")
 @router.get("/archiveresult/{archiveresult_id}", response=ArchiveResultSchema, url_name="get_archiveresult")
 def get_archiveresult(request, archiveresult_id: str):
 def get_archiveresult(request, archiveresult_id: str):
-    """Get a specific ArchiveResult by abid, uuid, or pk."""
-    return ArchiveResult.objects.get(Q(pk__icontains=archiveresult_id) | Q(abid__icontains=archiveresult_id) | Q(uuid__icontains=archiveresult_id))
+    """Get a specific ArchiveResult by pk, abid, or old_id."""
+    return ArchiveResult.objects.get(Q(pk__icontains=archiveresult_id) | Q(abid__icontains=archiveresult_id) | Q(old_id__icontains=archiveresult_id))
 
 
 
 
 # @router.post("/archiveresult", response=ArchiveResultSchema)
 # @router.post("/archiveresult", response=ArchiveResultSchema)

+ 4 - 1
archivebox/core/admin.py

@@ -511,7 +511,10 @@ class ArchiveResultAdmin(admin.ModelAdmin):
         )
         )
 
 
     def identifiers(self, obj):
     def identifiers(self, obj):
-        return get_abid_info(self, obj)
+        try:
+            return get_abid_info(self, obj)
+        except Exception as e:
+            return str(e)
 
 
     @admin.display(
     @admin.display(
         description='Snapshot Tags'
         description='Snapshot Tags'

+ 2 - 2
archivebox/core/models.py

@@ -347,8 +347,8 @@ class ArchiveResult(ABIDModel):
     abid_rand_src = 'self.id'
     abid_rand_src = 'self.id'
     EXTRACTOR_CHOICES = EXTRACTOR_CHOICES
     EXTRACTOR_CHOICES = EXTRACTOR_CHOICES
 
 
-    old_id = models.BigIntegerField(default=rand_int_id, serialize=False, verbose_name='ID')
-    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=True, unique=True)
+    old_id = models.BigIntegerField(default=rand_int_id, serialize=False, verbose_name='Old ID')
+    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=True, unique=True, verbose_name='ID')
     abid = ABIDField(prefix=abid_prefix)
     abid = ABIDField(prefix=abid_prefix)
 
 
     snapshot = models.ForeignKey(Snapshot, on_delete=models.CASCADE)
     snapshot = models.ForeignKey(Snapshot, on_delete=models.CASCADE)