Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions discourseUpdateGroups.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,9 @@
def updateMakers(neonAccounts: dict):
# retrieve all members of makers group
makers = discourseUtil.getGroupMembers(discourseUtil.GROUP_MAKERS)
if makers is None:
# Failed to fetch group membership, so avoid updating
return

#Step 1: find all Neon accounts that are paid up, have a DiscourseID, and aren't in Makers
addMakers = set()
Expand Down
9 changes: 8 additions & 1 deletion discourseUtil.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@
def getGroupMembers(groupName: str):
if GROUP_IDS.get(groupName) is None:
logging.error(f""""{groupName}" is not a known Discourse group""")
return {}
return None

members = {}
limit = 50
Expand All @@ -62,6 +62,9 @@ def getGroupMembers(groupName: str):
print(f"""fetching from {url}""")
response = requests.get(url, headers=D_headers)
offset += limit
if response.status_code != 200:
logging.error(f"Failed to fetch group {groupName}: HTTP {response.status_code}")
return None
logging.debug(pformat(response.json().get("meta")))
total = int(response.json().get("meta")["total"])
for member in response.json().get("members"):
Expand Down Expand Up @@ -124,6 +127,10 @@ def setGroupMembers(newMembersList: list, groupName: str):
logging.error(f""""{groupName}" is not a known Discourse group""")

currentMembersDict = getGroupMembers(groupName)
if currentMembersDict is None:
# Failed to fetch group membership, so avoid updating
return

currentMembersList = currentMembersDict.keys()

addMembersList = newMembersList - currentMembersList
Expand Down
Loading