mirror of
https://github.com/OpenBankProject/API-Manager.git
synced 2026-02-06 16:36:45 +00:00
Error handling for KPI Dashboard of API Manager if CanGetConsumers, CanGetAnyUser is not present #65
This commit is contained in:
parent
c515a822f5
commit
e349d641ec
@ -25,6 +25,9 @@ class IndexView(LoginRequiredMixin, TemplateView):
|
||||
except APIError as err:
|
||||
messages.error(self.request, err)
|
||||
config = {}
|
||||
except:
|
||||
messages.error(self.request, "Unknown Error")
|
||||
config = {}
|
||||
|
||||
context.update({
|
||||
'config_json': json.dumps(config, indent=4),
|
||||
|
||||
@ -82,6 +82,8 @@ class IndexView(LoginRequiredMixin, TemplateView):
|
||||
consumers = self.scrub(consumers)
|
||||
except APIError as err:
|
||||
messages.error(self.request, err)
|
||||
except:
|
||||
messages.error(self.request, "Unknown")
|
||||
|
||||
sorted_consumers = sorted(
|
||||
consumers, key=lambda consumer: consumer['created'], reverse=True)
|
||||
@ -128,6 +130,9 @@ class DetailView(LoginRequiredMixin, FormView):
|
||||
except APIError as err:
|
||||
messages.error(self.request, err)
|
||||
return super(DetailView, self).form_invalid(form)
|
||||
except:
|
||||
messages.error(self.request, "Unknown")
|
||||
return super(DetailView, self).form_invalid(form)
|
||||
|
||||
msg = 'calls limit of consumer {} has been updated successfully.'.format(
|
||||
data['consumer_id'])
|
||||
@ -154,6 +159,8 @@ class DetailView(LoginRequiredMixin, FormView):
|
||||
|
||||
except APIError as err:
|
||||
messages.error(self.request, err)
|
||||
except:
|
||||
messages.error(self.request, "Unknown")
|
||||
|
||||
context.update({
|
||||
'consumer': consumer
|
||||
@ -175,6 +182,8 @@ class EnableDisableView(LoginRequiredMixin, RedirectView):
|
||||
messages.success(self.request, self.success)
|
||||
except APIError as err:
|
||||
messages.error(self.request, err)
|
||||
except:
|
||||
messages.error(self.request, "Unknown")
|
||||
|
||||
urlpath = self.request.POST.get('next', reverse('consumers-index'))
|
||||
query = self.request.GET.urlencode()
|
||||
|
||||
@ -35,6 +35,8 @@ class CreateView(LoginRequiredMixin, FormView):
|
||||
fields['bank_id'].choices = self.api.get_bank_id_choices()
|
||||
except APIError as err:
|
||||
messages.error(self.request, err)
|
||||
except:
|
||||
messages.error(self.request, "Unknown Error")
|
||||
fields['last_ok_date'].initial =\
|
||||
datetime.datetime.now().strftime(settings.API_DATETIMEFORMAT)
|
||||
return form
|
||||
@ -76,6 +78,9 @@ class CreateView(LoginRequiredMixin, FormView):
|
||||
except APIError as err:
|
||||
messages.error(self.request, err)
|
||||
return super(CreateView, self).form_invalid(form)
|
||||
except:
|
||||
messages.error(self.request, "Unknown Error")
|
||||
return super(CreateView, self).form_invalid(form)
|
||||
msg = 'Customer number {} for user {} has been created successfully!'.format( # noqa
|
||||
result['customer_number'], data['username'])
|
||||
messages.success(self.request, msg)
|
||||
|
||||
@ -39,6 +39,8 @@ class IndexView(LoginRequiredMixin, TemplateView):
|
||||
entitlement_requests = self.scrub(entitlement_requests)
|
||||
except APIError as err:
|
||||
messages.error(self.request, err)
|
||||
except:
|
||||
messages.error(self.request, "Unknown Error")
|
||||
|
||||
context.update({
|
||||
'entitlementrequests': entitlement_requests,
|
||||
@ -60,6 +62,8 @@ class RejectEntitlementRequest(LoginRequiredMixin, View):
|
||||
messages.success(request, msg)
|
||||
except APIError as err:
|
||||
messages.error(request, err)
|
||||
except:
|
||||
messages.error(self.request, "Unknown Error")
|
||||
|
||||
redirect_url = request.POST.get('next', reverse('entitlementrequests-index'))
|
||||
return HttpResponseRedirect(redirect_url)
|
||||
@ -83,6 +87,8 @@ class AcceptEntitlementRequest(LoginRequiredMixin, View):
|
||||
messages.success(request, msg)
|
||||
except APIError as err:
|
||||
messages.error(request, err)
|
||||
except:
|
||||
messages.error(self.request, "Unknown Error")
|
||||
|
||||
try:
|
||||
urlpath = '/entitlement-requests/{}'.format(request.POST.get('entitlement_request_id', '<undefined>'))
|
||||
@ -92,6 +98,8 @@ class AcceptEntitlementRequest(LoginRequiredMixin, View):
|
||||
messages.success(request, msg)
|
||||
except APIError as err:
|
||||
messages.error(request, err)
|
||||
except:
|
||||
messages.error(self.request, "Unknown Error")
|
||||
|
||||
redirect_url = request.POST.get('next', reverse('entitlementrequests-index'))
|
||||
return HttpResponseRedirect(redirect_url)
|
||||
@ -264,6 +264,8 @@ class MetricsSummaryView(LoginRequiredMixin, TemplateView):
|
||||
average_response_time = metrics[0]["average_response_time"]
|
||||
except APIError as err:
|
||||
error_once_only(self.request, err)
|
||||
except:
|
||||
error_once_only(self.request, 'Unknown Error')
|
||||
|
||||
else:
|
||||
urlpath = '/management/aggregate-metrics?from_date={}&to_date={}&exclude_app_names={}&exclude_implemented_by_partial_functions={}&exclude_url_pattern={}'.format(
|
||||
@ -277,6 +279,8 @@ class MetricsSummaryView(LoginRequiredMixin, TemplateView):
|
||||
average_response_time = metrics[0]["average_response_time"]
|
||||
except APIError as err:
|
||||
error_once_only(self.request, err)
|
||||
except:
|
||||
error_once_only(self.request, 'Unknown Error')
|
||||
|
||||
|
||||
to_date = datetime.datetime.strptime(to_date, API_DATEFORMAT)
|
||||
@ -324,6 +328,8 @@ class MetricsSummaryView(LoginRequiredMixin, TemplateView):
|
||||
active_apps_list = list(apps)
|
||||
except APIError as err:
|
||||
error_once_only(self.request, err)
|
||||
except:
|
||||
error_once_only(self.request, 'Unknown Error')
|
||||
else:
|
||||
urlpath = '/management/metrics/top-consumers?from_date={}&to_date={}&exclude_app_names={}&exclude_implemented_by_partial_functions={}&exclude_url_pattern={}'.format(
|
||||
from_date, to_date, ",".join(EXCLUDE_APPS), ",".join(EXCLUDE_FUNCTIONS), ",".join(EXCLUDE_URL_PATTERN))
|
||||
@ -333,6 +339,8 @@ class MetricsSummaryView(LoginRequiredMixin, TemplateView):
|
||||
active_apps_list = list(apps)
|
||||
except APIError as err:
|
||||
error_once_only(self.request, err)
|
||||
except:
|
||||
error_once_only(self.request, 'Unknown Error')
|
||||
|
||||
return active_apps_list
|
||||
|
||||
@ -349,6 +357,8 @@ class MetricsSummaryView(LoginRequiredMixin, TemplateView):
|
||||
apps_list = apps["list"]
|
||||
except APIError as err:
|
||||
error_once_only(self.request, err)
|
||||
except:
|
||||
error_once_only(self.request, 'Unknown Error')
|
||||
|
||||
for app in apps_list:
|
||||
app_created_date = datetime.datetime.strptime(app["created"], '%Y-%m-%dT%H:%M:%SZ')
|
||||
@ -418,6 +428,8 @@ class MetricsSummaryView(LoginRequiredMixin, TemplateView):
|
||||
sum += result
|
||||
except APIError as err:
|
||||
error_once_only(self.request, err)
|
||||
except:
|
||||
error_once_only(self.request, 'Unknown Error')
|
||||
|
||||
date_from = date_to
|
||||
date_list.append(date_from)
|
||||
@ -435,6 +447,8 @@ class MetricsSummaryView(LoginRequiredMixin, TemplateView):
|
||||
sum += result
|
||||
except APIError as err:
|
||||
error_once_only(self.request, err)
|
||||
except:
|
||||
error_once_only(self.request, 'Unknown Error')
|
||||
|
||||
date_from = date_to
|
||||
date_list.append(date_from)
|
||||
@ -575,6 +589,8 @@ class MetricsSummaryView(LoginRequiredMixin, TemplateView):
|
||||
users = api.get(urlpath)
|
||||
except APIError as err:
|
||||
error_once_only(self.request, err)
|
||||
except:
|
||||
error_once_only(self.request, 'Unknown Error')
|
||||
|
||||
else:
|
||||
try:
|
||||
@ -586,6 +602,8 @@ class MetricsSummaryView(LoginRequiredMixin, TemplateView):
|
||||
# fail gracefully in case API provides new structure
|
||||
except KeyError as err:
|
||||
messages.error(self.request, 'KeyError: {}'.format(err))
|
||||
except:
|
||||
error_once_only(self.request, 'Unknown Error')
|
||||
|
||||
user_email_cansearchwarehouse = dict(zip(users_with_cansearchwarehouse, email_with_cansearchwarehouse))
|
||||
number_of_users_with_cansearchwarehouse = len(user_email_cansearchwarehouse)
|
||||
@ -601,6 +619,8 @@ class MetricsSummaryView(LoginRequiredMixin, TemplateView):
|
||||
top_apis = api.get(urlpath)['top_apis']
|
||||
except APIError as err:
|
||||
error_once_only(self.request, err)
|
||||
except:
|
||||
error_once_only(self.request, 'Unknown Error')
|
||||
else:
|
||||
urlpath = '/management/metrics/top-apis?from_date={}&to_date={}&exclude_app_names={}&exclude_implemented_by_partial_functions={}&exclude_url_pattern={}'.format(
|
||||
from_date, to_date, ",".join(EXCLUDE_APPS), ",".join(EXCLUDE_FUNCTIONS), ",".join(EXCLUDE_URL_PATTERN))
|
||||
@ -609,6 +629,8 @@ class MetricsSummaryView(LoginRequiredMixin, TemplateView):
|
||||
top_apis = api.get(urlpath)['top_apis']
|
||||
except APIError as err:
|
||||
error_once_only(self.request, err)
|
||||
except:
|
||||
error_once_only(self.request, 'Unknown Error')
|
||||
|
||||
for api in top_apis:
|
||||
if api['Implemented_by_partial_function'] == "":
|
||||
@ -630,6 +652,8 @@ class MetricsSummaryView(LoginRequiredMixin, TemplateView):
|
||||
top_warehouse_calls.append(api)
|
||||
except APIError as err:
|
||||
error_once_only(self.request, err)
|
||||
except:
|
||||
error_once_only(self.request, 'Unknown Error')
|
||||
return top_warehouse_calls
|
||||
|
||||
def get_top_apps_using_warehouse(self, from_date, to_date):
|
||||
@ -644,6 +668,8 @@ class MetricsSummaryView(LoginRequiredMixin, TemplateView):
|
||||
top_apps_using_warehouse = top_apps_using_warehouse["top_consumers"][:2]
|
||||
except APIError as err:
|
||||
error_once_only(self.request, err)
|
||||
except:
|
||||
error_once_only(self.request, 'Unknown Error')
|
||||
|
||||
return top_apps_using_warehouse
|
||||
|
||||
@ -660,6 +686,8 @@ class MetricsSummaryView(LoginRequiredMixin, TemplateView):
|
||||
apps_list = apps["list"]
|
||||
except APIError as err:
|
||||
error_once_only(self.request, err)
|
||||
except:
|
||||
error_once_only(self.request, 'Unknown Error')
|
||||
|
||||
for app in apps_list:
|
||||
created_date = datetime.datetime.strptime(app['created'], '%Y-%m-%dT%H:%M:%SZ')
|
||||
@ -684,6 +712,8 @@ class MetricsSummaryView(LoginRequiredMixin, TemplateView):
|
||||
|
||||
except APIError as err:
|
||||
error_once_only(self.request, err)
|
||||
except:
|
||||
error_once_only(self.request, 'Unknown Error')
|
||||
|
||||
if times_to_first_call:
|
||||
median = statistics.median(times_to_first_call)
|
||||
|
||||
@ -30,6 +30,8 @@ class LoginToDjangoMixin(object):
|
||||
data = api.get('/users/current')
|
||||
except APIError as err:
|
||||
messages.error(self.request, err)
|
||||
except:
|
||||
messages.error(self.request, 'Unknown Error')
|
||||
return False
|
||||
else:
|
||||
userid = data['user_id'] or data['email']
|
||||
@ -66,6 +68,9 @@ class OAuthInitiateView(RedirectView):
|
||||
except AuthenticatorError as err:
|
||||
messages.error(self.request, err)
|
||||
return reverse('home')
|
||||
except:
|
||||
messages.error(self.request, 'Unknown Error')
|
||||
return reverse('home')
|
||||
else:
|
||||
self.request.session['obp'] = {
|
||||
'authenticator': 'obp.oauth.OAuthAuthenticator',
|
||||
@ -89,6 +94,8 @@ class OAuthAuthorizeView(RedirectView, LoginToDjangoMixin):
|
||||
authenticator.set_access_token(authorization_url)
|
||||
except AuthenticatorError as err:
|
||||
messages.error(self.request, err)
|
||||
except:
|
||||
messages.error(self.request, 'Unknown Error')
|
||||
else:
|
||||
session_data['authenticator_kwargs'] = {
|
||||
'token': authenticator.token,
|
||||
|
||||
Loading…
Reference in New Issue
Block a user