mirror of
https://github.com/StanGirard/quivr.git
synced 2024-12-01 21:57:51 +03:00
feat: Improve user credit calculation in get_user_credits (#3367)
Refactor the get_user_credits method in the Users class to improve the calculation of monthly chat credits for a user. This change ensures that the user's monthly chat credit is correctly deducted based on their usage. If no user settings or monthly chat credit is found, a default value of 25 is returned. # Description Please include a summary of the changes and the related issue. Please also include relevant motivation and context. ## Checklist before requesting a review Please delete options that are not relevant. - [ ] My code follows the style guidelines of this project - [ ] I have performed a self-review of my code - [ ] I have commented hard-to-understand areas - [ ] I have ideally added tests that prove my fix is effective or that my feature works - [ ] New and existing unit tests pass locally with my changes - [ ] Any dependent changes have been merged ## Screenshots (if appropriate):
This commit is contained in:
parent
367242a3d5
commit
5fc349cd78
@ -110,17 +110,27 @@ class Users(UsersInterface):
|
|||||||
self.db.table("users").delete().filter("id", "eq", str(user_id)).execute()
|
self.db.table("users").delete().filter("id", "eq", str(user_id)).execute()
|
||||||
|
|
||||||
def get_user_credits(self, user_id):
|
def get_user_credits(self, user_id):
|
||||||
|
try:
|
||||||
user_usage_instance = user_usage.UserUsage(id=user_id)
|
user_usage_instance = user_usage.UserUsage(id=user_id)
|
||||||
|
|
||||||
user_monthly_usage = user_usage_instance.get_user_monthly_usage(
|
user_monthly_usage = user_usage_instance.get_user_monthly_usage(
|
||||||
time.strftime("%Y%m%d")
|
time.strftime("%Y%m%d")
|
||||||
)
|
)
|
||||||
monthly_chat_credit = (
|
|
||||||
self.db.from_("user_settings")
|
response = self.db.from_("user_settings").select("monthly_chat_credit").filter(
|
||||||
.select("monthly_chat_credit")
|
"user_id", "eq", str(user_id)
|
||||||
.filter("user_id", "eq", str(user_id))
|
).execute()
|
||||||
.execute()
|
|
||||||
.data[0]["monthly_chat_credit"]
|
if not response.data:
|
||||||
)
|
raise ValueError("No data found for user settings")
|
||||||
|
|
||||||
|
monthly_chat_credit = response.data[0].get("monthly_chat_credit")
|
||||||
|
if monthly_chat_credit is None:
|
||||||
|
raise ValueError("Monthly chat credit not found")
|
||||||
|
|
||||||
return monthly_chat_credit - user_monthly_usage
|
return monthly_chat_credit - user_monthly_usage
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
# Log the exception or handle it as needed
|
||||||
|
print(f"An error occurred while getting user credits: {e}")
|
||||||
|
return 25 # or a default value, depending on your needs
|
||||||
|
@ -56,11 +56,7 @@ class UserUsage(UserIdentity):
|
|||||||
"""
|
"""
|
||||||
Fetch the user monthly usage from the database
|
Fetch the user monthly usage from the database
|
||||||
"""
|
"""
|
||||||
posthog = PostHogSettings()
|
|
||||||
request = self.supabase_db.get_user_requests_count_for_month(self.id, date)
|
request = self.supabase_db.get_user_requests_count_for_month(self.id, date)
|
||||||
posthog.set_user_properties(
|
|
||||||
self.id, "MONTHLY_USAGE", {"monthly_chat_usage": request}
|
|
||||||
)
|
|
||||||
|
|
||||||
return request
|
return request
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user