|
1 | 1 | importos
|
2 | 2 | importhttplib2
|
3 | 3 | fromurllibimporturlencode
|
| 4 | +fromdatetimeimportdatetime |
4 | 5 |
|
5 | 6 | LIB_VERSION='0.5.2'
|
6 | 7 |
|
@@ -208,6 +209,9 @@ def __init__(self, api_key=None, api_version=None, as_xml=False, timeout=None, t
|
208 | 209 | self.job=Job(*args,**kwargs)
|
209 | 210 | self.account=Account(*args,**kwargs)
|
210 | 211 | self.output=Output(*args,**kwargs)
|
| 212 | +self.report=None |
| 213 | +ifapi_version=='v2': |
| 214 | +self.report=Report(*args,**kwargs) |
211 | 215 |
|
212 | 216 | classResponse(object):
|
213 | 217 | """
|
@@ -360,3 +364,34 @@ def delete(self, job_id):
|
360 | 364 | """
|
361 | 365 | returnself.cancel(job_id)
|
362 | 366 |
|
| 367 | +classReport(HTTPBackend): |
| 368 | +def__init__(self,*args,**kwargs): |
| 369 | +""" |
| 370 | + Contains all API methods relating to Reports. |
| 371 | + """ |
| 372 | +kwargs['resource_name']='reports' |
| 373 | +super(Report,self).__init__(*args,**kwargs) |
| 374 | + |
| 375 | +defminutes(self,start_date=None,end_date=None,grouping=None): |
| 376 | +""" |
| 377 | + Gets a detailed Report of encoded minutes and billable minutes |
| 378 | + for a date range |
| 379 | + @param start_date: Start date of report (If not submitted, |
| 380 | + API defaults to 30 days ago) |
| 381 | + @param end_date: End date of report (If not submitted, API defaults to |
| 382 | + yesterday) |
| 383 | + @param grouping: Minute usage for only one report grouping |
| 384 | + """ |
| 385 | +data= {'api_key':self.api_key} |
| 386 | +date_format='%Y-%m-%d' |
| 387 | +ifstart_date: |
| 388 | +data['from']=datetime.strftime(start_date,date_format) |
| 389 | + |
| 390 | +ifend_date: |
| 391 | +data['to']=datetime.strftime(end_date,date_format) |
| 392 | + |
| 393 | +ifgrouping: |
| 394 | +data['grouping']=grouping |
| 395 | + |
| 396 | +url=self.base_url+'/minutes' |
| 397 | +returnself.get(url,data=data) |