summaryrefslogtreecommitdiffstats
path: root/users/models/identity.py
diff options
context:
space:
mode:
authorAndrew Godwin2022-11-09 23:48:31 -0700
committerAndrew Godwin2022-11-09 23:48:31 -0700
commit2c3a1299709f2612e96c37e4e121c83ad4df7a56 (patch)
tree89c2aed22a7a10730e02c809f83b744a21e295e1 /users/models/identity.py
parent7746abbbb7700fa918450101bbc6d29ed9b4b608 (diff)
downloadtakahe-2c3a1299709f2612e96c37e4e121c83ad4df7a56.tar.gz
takahe-2c3a1299709f2612e96c37e4e121c83ad4df7a56.tar.bz2
takahe-2c3a1299709f2612e96c37e4e121c83ad4df7a56.zip
Profile fetching now working on state machine
Diffstat (limited to 'users/models/identity.py')
-rw-r--r--users/models/identity.py13
1 files changed, 9 insertions, 4 deletions
diff --git a/users/models/identity.py b/users/models/identity.py
index 5e2cd06..7dff492 100644
--- a/users/models/identity.py
+++ b/users/models/identity.py
@@ -22,11 +22,16 @@ class IdentityStates(StateGraph):
outdated = State(try_interval=3600)
updated = State()
- @outdated.add_transition(updated)
- async def fetch_identity(identity: "Identity"): # type:ignore
+ outdated.transitions_to(updated)
+
+ @classmethod
+ async def handle_outdated(cls, identity: "Identity"):
+ # Local identities never need fetching
if identity.local:
- return True
- return await identity.fetch_actor()
+ return "updated"
+ # Run the actor fetch and progress to updated if it succeeds
+ if await identity.fetch_actor():
+ return "updated"
def upload_namer(prefix, instance, filename):