From fe5b831afc6cb08c41da217410b07af2fbdfefe6 Mon Sep 17 00:00:00 2001 From: Georges-Antoine Assi Date: Fri, 13 Feb 2026 11:11:02 -0500 Subject: [PATCH] Add Rom.ra_hash and RomFile.ra_hash fields to API --- backend/endpoints/responses/rom.py | 2 ++ backend/endpoints/rom.py | 10 ++++++++-- backend/handler/database/roms_handler.py | 9 ++++++--- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/backend/endpoints/responses/rom.py b/backend/endpoints/responses/rom.py index c3e236a3c..216091c00 100644 --- a/backend/endpoints/responses/rom.py +++ b/backend/endpoints/responses/rom.py @@ -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 diff --git a/backend/endpoints/rom.py b/backend/endpoints/rom.py index acec833fc..750ec821c 100644 --- a/backend/endpoints/rom.py +++ b/backend/endpoints/rom.py @@ -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: diff --git a/backend/handler/database/roms_handler.py b/backend/handler/database/roms_handler.py index 452be2d56..c9f882642 100644 --- a/backend/handler/database/roms_handler.py +++ b/backend/handler/database/roms_handler.py @@ -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 ]