from typing import * from royalnet.utils import * from royalnet.backpack.tables import * from royalnet.constellation.api import * from ..utils import find_user_api from ..tables import Fiorygi, FiorygiTransaction class ApiFiorygiGetStar(ApiStar): path = "/api/user/fiorygi/get/v1" summary = "Get the fiorygi of a Royalnet user." parameters = { "id": "The user to get the fiorygi of." } tags = ["user"] async def api(self, data: ApiData) -> JSON: user: User = await find_user_api(data["id"], self.alchemy, data.session) if user.fiorygi is None: return { "fiorygi": 0, "transactions": [], "warning": "No associated fiorygi table" } fiorygi: Fiorygi = user.fiorygi transactions: JSON = sorted(fiorygi.transactions, key=lambda t: -t.id) return { "fiorygi": fiorygi.fiorygi, "transactions": list(map(lambda t: { "id": t.id, "change": t.change, "reason": t.reason, "timestamp": t.timestamp.isoformat() if t.timestamp else None }, transactions)) }