42 lines
1.1 KiB
Python
42 lines
1.1 KiB
Python
# -*- coding: utf-8 -*-
|
|
#
|
|
# ITerativ GmbH
|
|
# http://www.iterativ.ch/
|
|
#
|
|
# Copyright (c) 2020 ITerativ GmbH. All rights reserved.
|
|
#
|
|
# Created on 03.02.20
|
|
# @author: chrigu <christian.cueni@iterativ.ch>
|
|
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
|