Skip to content

Refrash

Update Model instance from database.

RefrashMixin

Update Model instance from database.

Source code in src/ramifice/paladins/refrash.py
class RefrashMixin:
    """Update Model instance from database."""

    async def refrash_from_db(self) -> None:
        """Update Model instance from database."""
        metadata = self.__class__.META
        # Get collection.
        collection: AsyncCollection = Config.MONGO_DATABASE[metadata["collection_name"]]
        mongo_doc: dict[str, Any] | None = await collection.find_one(filter={"_id": self.id})

        if mongo_doc is None:
            err_msg = (
                f"Model: `{self.full_model_name()}` > "
                + "Method: `refrash_from_db` => "
                + f"A document with an identifier `{self.id}` is not exists in the database!"
            )
            logger.critical(err_msg)
            raise PanicError(err_msg)

        self.inject(
            self._LANG_CODE,
            metadata["all_descriptor_fields"],
            metadata["data_dynamic_fields"],
        )
        refresh_from_mongo_doc(self, mongo_doc)

refrash_from_db() async

Update Model instance from database.

Source code in src/ramifice/paladins/refrash.py
async def refrash_from_db(self) -> None:
    """Update Model instance from database."""
    metadata = self.__class__.META
    # Get collection.
    collection: AsyncCollection = Config.MONGO_DATABASE[metadata["collection_name"]]
    mongo_doc: dict[str, Any] | None = await collection.find_one(filter={"_id": self.id})

    if mongo_doc is None:
        err_msg = (
            f"Model: `{self.full_model_name()}` > "
            + "Method: `refrash_from_db` => "
            + f"A document with an identifier `{self.id}` is not exists in the database!"
        )
        logger.critical(err_msg)
        raise PanicError(err_msg)

    self.inject(
        self._LANG_CODE,
        metadata["all_descriptor_fields"],
        metadata["data_dynamic_fields"],
    )
    refresh_from_mongo_doc(self, mongo_doc)