Added user set command #22 #143
No reviewers
Labels
No Label
MVP
web-interface
bug
bugfix
cli
discussion
documentation
duplicate
expense
high
expense
low
expense
medium
expense
very-high
help wanted
improvement
invalid
priority
blocker
priority
high
priority
low
priority
medium
question
refactoring
release
story
wontfix
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
No due date set.
Blocks
#144 Added user remove command #23
sh-edraft.de/sh_discord_bot
Reference: sh-edraft.de/sh_discord_bot#143
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "#22"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
#22
@ -170,0 +199,4 @@
self._db.save_changes()
await self._level.check_level(member)
except Exception as e:
self._logger.error(__name__, f'Value couldn\'t be converted to int', e)
Relativ ungenau. Entweder änderst du die beschreibung von dem error oder du machst zwei try except blöcke, einmal für den type cast und dann für die manipulation des users inkl. level check
Das Exceptionhandling für das "check_level" würde ich lieber dann in der Methode selber machen und das in einem separaten Issue, da ich dafür weitere Exceptionklassen erstellen möchte, um Exceptions in der Methode besser von den allgemeinen Databaseexceptions zu differenzieren.
@ -170,0 +215,4 @@
@set.autocomplete('atr')
async def set_autocomplete(self, interaction: discord.Interaction, current: str) -> List[app_commands.Choice[str]]:
atr_list = ['xp']
Es wäre ne idee, dass diese strings irgendwie aus translation oder config kommen. Also das man da halt ne liste von diesen Strings hat. Ist auch diesen drei Befehlen immer der Fall
@ -145,3 +160,3 @@
match atr:
case 'xp':
case self._atr_class.xp:
Mach das bitte mit nem elif und als dict in der Klasse und keine weitere Klasse dafür einführen
https://stackoverflow.com/questions/72638083/python-match-case-dictionary-keys
Match-Case-Statement gegen If-Else-Statement getauscht
@ -169,0 +211,4 @@
self._logger.error(__name__, f'String value couldn\'t be converted to int', te)
await self._message_service.send_interaction_msg(ctx.interaction, self._t.transform('modules.base.user.set.error.type_error'))
return
except DatabaseError as de:
Der ist bei weitem unnötig xD
Wenn wir mal in check_level reinschauen sehen wir, dass dort alle Fehler abefangen werden.
Des Weiteren ist DatabaseError um das update_user abzufangen ungenau bzw als solches auch nicht ötig.
Errorhandling entfernt. Nur TypeError wird behandelt.
@ -169,0 +216,4 @@
await self._message_service.send_interaction_msg(ctx.interaction, self._t.transform('modules.base.user.set.error.database_error'))
return
except Exception as e:
self._logger.error(__name__, f'An error occurred while setting xp', e)
DieseBlock ist wegen command error handling an und für auch nicht nötig. Hier könnte man wenn man wollte die Datenbankfehler abfangen