Skip to content

Commit d0798c1

Browse files
committed
Fix Date calculations
1 parent 6713ffb commit d0798c1

File tree

2 files changed

+16
-7
lines changed

2 files changed

+16
-7
lines changed

app/core/security.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from datetime import datetime, timedelta, timezone
22
import hashlib
3+
import traceback
34
from typing import Optional
45
from uuid import UUID, uuid4
56
from jose import jwt
@@ -171,7 +172,8 @@ async def verify_token(request: Request, credentials: Optional[HTTPAuthorization
171172
"balance": balance
172173
}
173174
except Exception as e:
174-
print(e)
175+
print("Error: Something went wrong while verifying the token: ", e)
176+
traceback.print_exc()
175177
raise HTTPException(status_code=401, detail=f"Invalid authentication: {str(e)}")
176178

177179
def setup_guest(data: dict):

app/services/credits.py

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from datetime import datetime, timedelta
1+
from datetime import datetime, timedelta, timezone
22
from typing import List
33
from fastapi import Request
44
from app.core.security import db
@@ -65,17 +65,24 @@ async def refresh_user_credits(user_id: str, is_guest: bool, credits: dict) -> i
6565
credits = db.table('credits').select('*').eq('user_id', user_id).maybe_single().execute()
6666
if not credits.data:
6767
return 0
68+
69+
daily_amount = settings.GUEST_DAILY_CREDITS if is_guest else settings.USER_DAILY_CREDITS
70+
max_credits = settings.GUEST_MAX_CREDITS if is_guest else settings.USER_MAX_CREDITS
6871

69-
last_update = datetime.fromisoformat(credits.data['last_free_credit_update'])
70-
days_elapsed = (datetime.now() - last_update).days
72+
if not credits.data['last_free_credit_update']:
73+
# Update credits
74+
db.table('credits').update({
75+
'balance': max_credits,
76+
'last_free_credit_update': datetime.now().isoformat()
77+
}).eq('user_id', user_id).execute()
78+
return max_credits
7179

80+
last_update = datetime.fromisoformat(credits.data['last_free_credit_update'])
81+
days_elapsed = (datetime.now(timezone.utc) - last_update).days
7282
if days_elapsed < 1:
7383
return credits.data['balance']
7484

7585
# Calculate credits to add for elapsed days
76-
daily_amount = settings.GUEST_DAILY_CREDITS if is_guest else settings.USER_DAILY_CREDITS
77-
max_credits = settings.GUEST_MAX_CREDITS if is_guest else settings.USER_MAX_CREDITS
78-
7986
new_balance = min(
8087
credits.data['balance'] + (daily_amount * days_elapsed),
8188
max_credits

0 commit comments

Comments
 (0)