skillbox/server/core/managers.py

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