2017-08-16 16:31:47 +01:00
|
|
|
from app.notify_client import NotifyAdminAPIClient
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class BillingAPIClient(NotifyAdminAPIClient):
|
|
|
|
|
|
2022-04-29 16:25:58 +01:00
|
|
|
def get_monthly_usage_for_service(self, service_id, year):
|
2018-05-16 12:26:11 +01:00
|
|
|
return self.get(
|
2019-07-22 14:34:15 +01:00
|
|
|
'/service/{0}/billing/monthly-usage'.format(service_id),
|
2018-05-16 12:26:11 +01:00
|
|
|
params=dict(year=year)
|
|
|
|
|
)
|
|
|
|
|
|
2022-04-29 16:25:58 +01:00
|
|
|
def get_annual_usage_for_service(self, service_id, year=None):
|
2018-05-16 12:26:11 +01:00
|
|
|
return self.get(
|
2019-07-22 14:34:15 +01:00
|
|
|
'/service/{0}/billing/yearly-usage-summary'.format(service_id),
|
2018-05-16 12:26:11 +01:00
|
|
|
params=dict(year=year)
|
|
|
|
|
)
|
|
|
|
|
|
2017-10-31 11:22:57 +00:00
|
|
|
def get_free_sms_fragment_limit_for_year(self, service_id, year=None):
|
2017-11-09 13:18:09 +00:00
|
|
|
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']
|
2017-10-31 11:22:57 +00:00
|
|
|
|
2017-11-09 13:18:09 +00:00
|
|
|
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
|
|
|
|
|
}
|
2017-10-31 11:22:57 +00:00
|
|
|
|
|
|
|
|
return self.post(
|
|
|
|
|
url='/service/{0}/billing/free-sms-fragment-limit'.format(service_id),
|
|
|
|
|
data=data
|
|
|
|
|
)
|
2018-10-26 15:39:32 +01:00
|
|
|
|
2021-03-15 18:04:01 +00:00
|
|
|
def get_data_for_billing_report(self, start_date, end_date):
|
|
|
|
|
return self.get(url='/platform-stats/data-for-billing-report',
|
2019-08-23 17:14:04 +01:00
|
|
|
params={
|
|
|
|
|
'start_date': str(start_date),
|
|
|
|
|
'end_date': str(end_date),
|
|
|
|
|
})
|
|
|
|
|
|
2022-03-07 14:30:11 +00:00
|
|
|
def get_data_for_volumes_by_service_report(self, start_date, end_date):
|
|
|
|
|
return self.get(url='/platform-stats/volumes-by-service',
|
|
|
|
|
params={
|
|
|
|
|
'start_date': str(start_date),
|
|
|
|
|
'end_date': str(end_date),
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
def get_data_for_daily_volumes_report(self, start_date, end_date):
|
|
|
|
|
return self.get(url='/platform-stats/daily-volumes-report',
|
|
|
|
|
params={
|
|
|
|
|
'start_date': str(start_date),
|
|
|
|
|
'end_date': str(end_date),
|
|
|
|
|
})
|
|
|
|
|
|
2022-04-08 16:05:43 +01:00
|
|
|
def get_data_for_daily_sms_provider_volumes_report(self, start_date, end_date):
|
|
|
|
|
return self.get(
|
|
|
|
|
url='/platform-stats/daily-sms-provider-volumes-report',
|
|
|
|
|
params={
|
|
|
|
|
'start_date': str(start_date),
|
|
|
|
|
'end_date': str(end_date),
|
|
|
|
|
}
|
|
|
|
|
)
|
|
|
|
|
|
2018-10-26 15:39:32 +01:00
|
|
|
|
|
|
|
|
billing_api_client = BillingAPIClient()
|