31 lines
928 B
Python
31 lines
928 B
Python
from django.conf import settings
|
|
from django.db import models
|
|
from datetime import timedelta
|
|
from django.utils import timezone
|
|
|
|
from core.hep_client import HepClient
|
|
|
|
DEFAULT_PK = 1
|
|
|
|
|
|
class AdminDataManager(models.Manager):
|
|
hep_client = HepClient()
|
|
|
|
def update_admin_token(self):
|
|
admin_token = self.hep_client.fetch_admin_token(settings.HEP_ADMIN_USER, settings.HEP_ADMIN_PASSWORD)
|
|
|
|
admin_data, created = self.get_or_create(pk=DEFAULT_PK)
|
|
admin_data.hep_admin_token = admin_token
|
|
admin_data.save()
|
|
return admin_data.hep_admin_token
|
|
|
|
def get_admin_token(self):
|
|
try:
|
|
admin_token = self.get(pk=DEFAULT_PK)
|
|
if admin_token.updated_at < timezone.now() + timedelta(hours=1):
|
|
admin_token = self.update_admin_token()
|
|
except self.model.DoesNotExist:
|
|
admin_token = self.update_admin_token()
|
|
|
|
return admin_token
|