API-Manager/apimanager/base/views.py

59 lines
1.8 KiB
Python

# -*- coding: utf-8 -*-
"""
Views for base app
"""
from django.contrib import messages
from django.conf import settings
from django.views.generic import TemplateView, View
from django.shortcuts import render
from obp.forms import DirectLoginForm, GatewayLoginForm
from obp.api import API, APIError
def get_banks(request):
api = API(request.session.get('obp'))
try:
urlpath = '/banks'
result = api.get(urlpath)
if 'banks' in result:
return [bank['id'] for bank in sorted(result['banks'], key=lambda d: d['id'])]
else:
return []
except APIError as err:
messages.error(request, err)
return []
def get_api_versions(request):
api = API(request.session.get('obp'))
try:
urlpath = '/api/versions'
result = api.get(urlpath)
if 'scanned_api_versions' in result:
return [apiversion['API_VERSION'] for apiversion in sorted(result['scanned_api_versions'], key=lambda d: d['API_VERSION'])]
else:
return []
except APIError as err:
messages.error(request, err)
return []
class HomeView(TemplateView):
"""View for home page"""
template_name = "home.html"
def get_context_data(self, **kwargs):
context = super(HomeView, self).get_context_data(**kwargs)
context.update({
'API_HOST': settings.API_HOST,
'logo_url': settings.LOGO_URL,
'override_css_url': settings.OVERRIDE_CSS_URL,
'directlogin_form': DirectLoginForm(),
'ALLOW_DIRECT_LOGIN':settings.ALLOW_DIRECT_LOGIN,
'gatewaylogin_form': GatewayLoginForm(),
'ALLOW_GATEWAY_LOGIN': settings.ALLOW_GATEWAY_LOGIN,
'SHOW_API_TESTER':settings.SHOW_API_TESTER,
'API_TESTER_URL':settings.API_TESTER_URL
})
return context