Files
notifications-admin/app/notify_client/billing_api_client.py
Chris Hill-Scott 1d3a4e5043 Inherit don’t duplicate API client constructor
This removes some code which is duplicative and obscure (ie it’s not
very clear why we do `"a" * 73` even though there is a Very Good Reason
for doing so).
2019-01-29 12:11:27 +00:00

43 lines
1.4 KiB
Python

from app.notify_client import NotifyAdminAPIClient
class BillingAPIClient(NotifyAdminAPIClient):
def get_billable_units_ft(self, service_id, year):
return self.get(
'/service/{0}/billing/ft-monthly-usage'.format(service_id),
params=dict(year=year)
)
def get_service_usage_ft(self, service_id, year=None):
return self.get(
'/service/{0}/billing/ft-yearly-usage-summary'.format(service_id),
params=dict(year=year)
)
def get_free_sms_fragment_limit_for_year(self, service_id, year=None):
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']
def get_free_sms_fragment_limit_for_all_years(self, service_id, year=None):
return self.get(
'/service/{0}/billing/free-sms-fragment-limit'.format(service_id))
def create_or_update_free_sms_fragment_limit(self, service_id, free_sms_fragment_limit, year=None):
# year = None will update current and future year in the API
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
)
billing_api_client = BillingAPIClient()