File size: 2,093 Bytes
8070315 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
from request import PandaRequest
from models import Video, Cloud, Encoding, Profile, Notifications, PandaDict
from models import GroupRetriever, SingleRetriever
from models import PandaError
from upload_session import UploadSession
import logging
logging.getLogger(__name__).addHandler(logging.NullHandler())
class Panda(object):
def __init__(self, access_key, secret_key, cloud_id=None, api_host='api.pandastream.com', api_port=443):
self.cloud_id = cloud_id
self.access_key = access_key
self.secret_key = secret_key
self.api_host = api_host
self.api_port = api_port
self.api_version = 2
self.videos = GroupRetriever(self, Video)
self.clouds = GroupRetriever(self, Cloud)
self.encodings = GroupRetriever(self, Encoding)
self.profiles = GroupRetriever(self, Profile)
self.notifications = SingleRetriever(self, Notifications)
def credentials(self):
cred = [
'cloud_id',
'access_key',
'secret_key',
'api_host',
'api_port',
'api_version'
]
return {key: self.__dict__[key] for key in cred }
def get(self, request_path, params={}):
return PandaRequest('GET', request_path, self.credentials(), params).send()
def post(self, request_path, params={}):
return PandaRequest('POST', request_path, self.credentials(), params).send()
def put(self, request_path, params={}):
return PandaRequest('PUT', request_path, self.credentials(), params).send()
def delete(self, request_path, params={}):
return PandaRequest('DELETE', request_path, self.credentials(), params).send()
def signed_params(self, verb, path, timestamp=None, params={}):
return PandaRequest(verb, path, self.credentials(), params, timestamp).signed_params()
def upload_session(self, path, **kwargs):
return UploadSession(self, path, **kwargs)
def cloud_details(self):
return SingleRetriever(self, PandaDict, "/clouds/{0}".format(self.cloud_id)).get()
|