import os
import django
import json
import urllib.request
from urllib.error import HTTPError

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings')
django.setup()

from apps.accounts.models import User
from rest_framework_simplejwt.tokens import RefreshToken

user = User.objects.first()
refresh = RefreshToken.for_user(user)
access_token = str(refresh.access_token)

headers = {
    'Authorization': f'Bearer {access_token}',
    'Content-Type': 'application/json'
}

data = {
    'first_name': user.first_name,
    'last_name': user.last_name,
    'email': user.email,
    'phone': ''
}
data_bytes = json.dumps(data).encode('utf-8')

req = urllib.request.Request(
    'http://127.0.0.1:8000/api/accounts/me/', 
    data=data_bytes, 
    headers=headers,
    method='PATCH'
)

try:
    response = urllib.request.urlopen(req)
    print(f"Status: {response.status}")
    print(f"Response: {response.read().decode('utf-8')}")
except HTTPError as e:
    print(f"Status: {e.code}")
    print(f"Response: {e.read().decode('utf-8')}")
