Add Rom.ra_hash and RomFile.ra_hash fields to API

This commit is contained in:
Georges-Antoine Assi
2026-02-13 11:11:02 -05:00
parent 196be499cd
commit fe5b831afc
3 changed files with 16 additions and 5 deletions

View File

@@ -162,6 +162,7 @@ class RomFileSchema(BaseModel):
crc_hash: str | None
md5_hash: str | None
sha1_hash: str | None
ra_hash: str | None
category: RomFileCategory | None
class Config:
@@ -273,6 +274,7 @@ class RomSchema(BaseModel):
crc_hash: str | None
md5_hash: str | None
sha1_hash: str | None
ra_hash: str | None
has_simple_single_file: bool
has_nested_single_file: bool

View File

@@ -704,15 +704,21 @@ def get_rom_by_hash(
crc_hash: Annotated[str | None, Query(description="CRC hash value")] = None,
md5_hash: Annotated[str | None, Query(description="MD5 hash value")] = None,
sha1_hash: Annotated[str | None, Query(description="SHA1 hash value")] = None,
ra_hash: Annotated[
str | None, Query(description="RetroAchivements hash value")
] = None,
) -> DetailedRomSchema:
if not crc_hash and not md5_hash and not sha1_hash:
if not crc_hash and not md5_hash and not sha1_hash and not ra_hash:
raise HTTPException(
status_code=status.HTTP_400_BAD_REQUEST,
detail="At least one metadata hash value must be provided",
)
rom = db_rom_handler.get_rom_by_hash(
crc_hash=crc_hash, md5_hash=md5_hash, sha1_hash=sha1_hash
crc_hash=crc_hash,
md5_hash=md5_hash,
sha1_hash=sha1_hash,
ra_hash=ra_hash,
)
if not rom:

View File

@@ -1267,9 +1267,10 @@ class DBRomsHandler(DBBaseHandler):
@with_details
def get_rom_by_hash(
self,
crc_hash: str | None,
md5_hash: str | None,
sha1_hash: str | None,
crc_hash: str | None = None,
md5_hash: str | None = None,
sha1_hash: str | None = None,
ra_hash: str | None = None,
*,
query: Query = None, # type: ignore
session: Session = None, # type: ignore
@@ -1286,9 +1287,11 @@ class DBRomsHandler(DBBaseHandler):
(crc_hash, Rom.crc_hash),
(md5_hash, Rom.md5_hash),
(sha1_hash, Rom.sha1_hash),
(ra_hash, Rom.ra_hash),
(crc_hash, RomFile.crc_hash),
(md5_hash, RomFile.md5_hash),
(sha1_hash, RomFile.sha1_hash),
(ra_hash, RomFile.ra_hash),
]
if value is not None
]