Skip to content

Commit 63c7603

Browse files
author
Alex Schworer
committed
Merge branch 'mcos-master'
Closes pull request #15
2 parents 89592e9 + 07d9466 commit 63c7603

File tree

1 file changed

+45
-1
lines changed

1 file changed

+45
-1
lines changed

zencoder/core.py

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import os
22
import httplib2
33
from urllib import urlencode
4+
from datetime import datetime
45

56
LIB_VERSION = '0.5.2'
67

@@ -64,7 +65,7 @@ def headers(self):
6465

6566
headers = {
6667
'Content-Type': 'application/{0}'.format(content_type),
67-
'Accepts': 'application/{0}'.format(content_type),
68+
'Accept': 'application/{0}'.format(content_type),
6869
'Zencoder-Api-Key': self.api_key,
6970
'User-Agent': 'zencoder-py v{0}'.format(LIB_VERSION)
7071
}
@@ -208,6 +209,9 @@ def __init__(self, api_key=None, api_version=None, as_xml=False, timeout=None, t
208209
self.job = Job(*args, **kwargs)
209210
self.account = Account(*args, **kwargs)
210211
self.output = Output(*args, **kwargs)
212+
self.report = None
213+
if api_version == 'v2':
214+
self.report = Report(*args, **kwargs)
211215

212216
class Response(object):
213217
"""
@@ -360,3 +364,43 @@ def delete(self, job_id):
360364
"""
361365
return self.cancel(job_id)
362366

367+
class Report(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+
def minutes(self, start_date=None, end_date=None, grouping=None):
376+
"""
377+
Gets a detailed Report of encoded minutes and billable minutes for a
378+
date range.
379+
380+
**Warning**: `start_date` and `end_date` must be `datetime.date` objects.
381+
382+
Example:
383+
import datetime
384+
start = datetime.date(2012, 12, 31)
385+
end = datetime.today()
386+
data = z.report.minutes(start, end)
387+
388+
@param start_date: Start date of report (If not submitted,
389+
API defaults to 30 days ago)
390+
@param end_date: End date of report (If not submitted, API defaults to
391+
yesterday)
392+
@param grouping: Minute usage for only one report grouping
393+
"""
394+
data = {'api_key': self.api_key}
395+
date_format = '%Y-%m-%d'
396+
if start_date:
397+
data['from'] = datetime.strftime(start_date, date_format)
398+
399+
if end_date:
400+
data['to'] = datetime.strftime(end_date, date_format)
401+
402+
if grouping:
403+
data['grouping'] = grouping
404+
405+
url = self.base_url + '/minutes'
406+
return self.get(url, data=data)

0 commit comments

Comments
 (0)