Use annual_billing tables at backend for getting and updating free_sms_fragment_limit

This commit is contained in:
venusbb
2017-10-31 11:22:57 +00:00
parent e665f35acc
commit 8ea38ba7b6
10 changed files with 161 additions and 17 deletions

View File

@@ -1,4 +1,6 @@
from app.notify_client import NotifyAdminAPIClient
from flask import current_app
from notifications_python_client.errors import HTTPError
class BillingAPIClient(NotifyAdminAPIClient):
@@ -23,3 +25,47 @@ class BillingAPIClient(NotifyAdminAPIClient):
'/service/{0}/billing/yearly-usage-summary'.format(service_id),
params=dict(year=year)
)
def get_free_sms_fragment_limit_for_year(self, service_id, year=None):
try:
if year is None:
result = self.get(
'/service/{0}/billing/free-sms-fragment-limit/current-year'.format(service_id)
)
else:
result = self.get(
'/service/{0}/billing/free-sms-fragment-limit'.format(service_id),
params=dict(financial_year_start=year)
)
return result['free_sms_fragment_limit']
except HTTPError:
current_app.logger.info(
'Requested free_sms_fragment_limit entry for service {0} and year {1} does not exist'
.format(service_id, year))
return -1
def get_free_sms_fragment_limit_for_all_years(self, service_id, year=None):
try:
return self.get(
'/service/{0}/billing/free-sms-fragment-limit'.format(service_id),
)
except HTTPError:
current_app.logger.info(
'No free_sms_fragment_limit entry exists for service {0} '
.format(service_id, year))
return []
def create_or_update_free_sms_fragment_limit_for_year(self, service_id, free_sms_fragment_limit, year=None):
if year is None:
data = {
"free_sms_fragment_limit": free_sms_fragment_limit,
}
else:
data = {
"financial_year_start": year,
"free_sms_fragment_limit": free_sms_fragment_limit,
}
return self.post(
url='/service/{0}/billing/free-sms-fragment-limit'.format(service_id),
data=data
)