123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- from django.contrib.auth.models import User
- from django.utils import timezone
- from requests import post
- from django.conf import settings
- from .models import UserModel
- from requests import get
- def get_access_token(user_model):
- if user_model.expiry > timezone.now():
- return user_model.access_token
- else:
- access_token, expires_in = refresh_access_token(user_model.refresh_token)
- user_model.access_token = access_token
- user_model.expiry = timezone.now() + timezone.timedelta(seconds=expires_in)
- user_model.save()
- return access_token
- def get_auth_header():
- user = User.objects.get(username='admin@ercare')
- user_model = UserModel.objects.get(user=user)
- access_token = get_access_token(user_model)
- headers = {
- 'authorization': 'Bearer ' + access_token,
- 'content-type': 'application/json'
- }
- return headers
- # def has_expired(credentials):
- # expiry_time = credentials['expiry']
- # now = str(timezone.datetime.now())
- # return now > expiry_time
- # def get_access_token(request):
- # if 'credentials' in request.session and not has_expired(request.session['credentials']):
- # cred = request.session['credentials']
- # return cred['access_token']
- # access_token, expires_in = refresh_access_token()
- # expired_at = timezone.datetime.now() + timezone.timedelta(seconds=expires_in)
- # expiry = str(expired_at)
- # credentials = {
- # 'access_token': access_token,
- # 'expiry': expiry
- # }
- # request.session['credentials'] = credentials
- # return credentials['access_token']
- def refresh_access_token(refresh_token):
- client_id = settings.CLIENT_ID
- client_secret = settings.CLIENT_SECRET
- token_uri = settings.TOKEN_URI
- params = {
- "grant_type": "refresh_token",
- "client_id": client_id,
- "client_secret": client_secret,
- "refresh_token": refresh_token
- }
- response = post(token_uri, data=params).json()
- access_token = response.get('access_token')
- expires_in = response.get('expires_in')
- return access_token, expires_in
- def get_google_account_id(access_token):
- uri = 'https://mybusiness.googleapis.com/v4/accounts'
- headers = {
- 'authorization': 'Bearer '+access_token,
- 'content-type': 'application/json'
- }
- res = get(uri, headers=headers).json()
- accounts_name = res['accounts'][0]['name']
- id = accounts_name.split('/')[-1]
- return id
- def get_gmb_id():
- user = User.objects.get(username='admin@ercare')
- gmb_id = UserModel.objects.get(user=user).gmb_account_id
- return user, gmb_id
|