from app.notify_client import NotifyAdminAPIClient class BillingAPIClient(NotifyAdminAPIClient): def get_monthly_usage_for_service(self, service_id, year): return self.get( "/service/{0}/billing/monthly-usage".format(service_id), params=dict(year=year), ) def get_annual_usage_for_service(self, service_id, year=None): return self.get( "/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): 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 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, ) def get_data_for_billing_report(self, start_date, end_date): return self.get( url="/platform-stats/data-for-billing-report", params={ "start_date": str(start_date), "end_date": str(end_date), }, ) 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), }, ) 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), }, ) billing_api_client = BillingAPIClient()