feat(04-02): extend prototype and matrix pending state
- add saved session and last token tracking in prototype state - add matrix load/reset pending store helpers
This commit is contained in:
parent
6923b801a3
commit
2720ee2d6e
3 changed files with 97 additions and 0 deletions
|
|
@ -7,6 +7,8 @@ USER_META_PREFIX = "matrix_user:"
|
|||
ROOM_STATE_PREFIX = "matrix_state:"
|
||||
SKILLS_MSG_PREFIX = "matrix_skills_msg:"
|
||||
PENDING_CONFIRM_PREFIX = "matrix_pending_confirm:"
|
||||
LOAD_PENDING_PREFIX = "matrix_load_pending:"
|
||||
RESET_PENDING_PREFIX = "matrix_reset_pending:"
|
||||
|
||||
|
||||
async def get_room_meta(store: StateStore, room_id: str) -> dict | None:
|
||||
|
|
@ -74,3 +76,40 @@ async def clear_pending_confirm(
|
|||
store: StateStore, user_id: str, room_id: str | None = None
|
||||
) -> None:
|
||||
await store.delete(_pending_confirm_key(user_id, room_id))
|
||||
|
||||
|
||||
def _load_pending_key(user_id: str, room_id: str) -> str:
|
||||
return f"{LOAD_PENDING_PREFIX}{user_id}:{room_id}"
|
||||
|
||||
|
||||
async def get_load_pending(store: StateStore, user_id: str, room_id: str) -> dict | None:
|
||||
return await store.get(_load_pending_key(user_id, room_id))
|
||||
|
||||
|
||||
async def set_load_pending(store: StateStore, user_id: str, room_id: str, data: dict) -> None:
|
||||
await store.set(_load_pending_key(user_id, room_id), data)
|
||||
|
||||
|
||||
async def clear_load_pending(store: StateStore, user_id: str, room_id: str) -> None:
|
||||
await store.delete(_load_pending_key(user_id, room_id))
|
||||
|
||||
|
||||
def _reset_pending_key(user_id: str, room_id: str) -> str:
|
||||
return f"{RESET_PENDING_PREFIX}{user_id}:{room_id}"
|
||||
|
||||
|
||||
async def get_reset_pending(store: StateStore, user_id: str, room_id: str) -> dict | None:
|
||||
return await store.get(_reset_pending_key(user_id, room_id))
|
||||
|
||||
|
||||
async def set_reset_pending(
|
||||
store: StateStore,
|
||||
user_id: str,
|
||||
room_id: str,
|
||||
data: dict,
|
||||
) -> None:
|
||||
await store.set(_reset_pending_key(user_id, room_id), data)
|
||||
|
||||
|
||||
async def clear_reset_pending(store: StateStore, user_id: str, room_id: str) -> None:
|
||||
await store.delete(_reset_pending_key(user_id, room_id))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue