skillbox/server/oauth/managers.py

24 lines
727 B
Python

from django.db import models
class OAuth2TokenManager(models.Manager):
def update_or_create_token(self, token_data, user):
query = self.filter(user=user)
token_properties = {
'token_type': token_data['token_type'],
'access_token': token_data['access_token'],
'refresh_token': token_data['refresh_token'],
'expires_at': token_data['expires_at'],
}
if query.exists():
return query.update(**token_properties)
else:
return self._create_oauthtoken(user, token_properties)
def _create_oauthtoken(self, user, token_properties):
token = self.create(user=user, **token_properties)
return token