MCPcopy Index your code
hub / github.com/AstrBotDevs/AstrBot / update_persona_folder

Method update_persona_folder

astrbot/core/db/sqlite.py:1078–1106  ·  view source on GitHub ↗

Update a persona folder.

(
        self,
        folder_id: str,
        name: str | None = None,
        parent_id: T.Any = NOT_GIVEN,
        description: T.Any = NOT_GIVEN,
        sort_order: int | None = None,
    )

Source from the content-addressed store, hash-verified

1076 return list(result.scalars().all())
1077
1078 async def update_persona_folder(
1079 self,
1080 folder_id: str,
1081 name: str | None = None,
1082 parent_id: T.Any = NOT_GIVEN,
1083 description: T.Any = NOT_GIVEN,
1084 sort_order: int | None = None,
1085 ) -> PersonaFolder | None:
1086 """Update a persona folder."""
1087 async with self.get_db() as session:
1088 session: AsyncSession
1089 async with session.begin():
1090 query = update(PersonaFolder).where(
1091 col(PersonaFolder.folder_id) == folder_id
1092 )
1093 values: dict[str, T.Any] = {}
1094 if name is not None:
1095 values["name"] = name
1096 if parent_id is not NOT_GIVEN:
1097 values["parent_id"] = parent_id
1098 if description is not NOT_GIVEN:
1099 values["description"] = description
1100 if sort_order is not None:
1101 values["sort_order"] = sort_order
1102 if not values:
1103 return None
1104 query = query.values(**values)
1105 await session.execute(query)
1106 return await self.get_persona_folder_by_id(folder_id)
1107
1108 async def delete_persona_folder(self, folder_id: str) -> None:
1109 """Delete a persona folder by its folder_id.

Callers

nothing calls this directly

Calls 5

updateFunction · 0.50
get_dbMethod · 0.45
valuesMethod · 0.45
executeMethod · 0.45

Tested by

no test coverage detected