Skip to content

Instantly share code, notes, and snippets.

@jumpingGrendel
Created March 29, 2012 18:40
Show Gist options
  • Save jumpingGrendel/2241791 to your computer and use it in GitHub Desktop.
Save jumpingGrendel/2241791 to your computer and use it in GitHub Desktop.
stub of a class for managing stashboard via api
import oauth2 as oauth
import json
import urllib
class StashBoard:
def __init__(self, creds):
consumer = oauth.Consumer(key=creds["STASHBOARD_CONSUMERKEY"], secret=creds["STASHBOARD_SECRET"])
token = oauth.Token(creds["STASHBOARD_OAUTH_KEY"], creds["STASHBOARD_OAUTH_SECRET"])
self.client = client = oauth.Client(consumer, token=token)
self.base_url = "https://%s.appspot.com/api/v1" % creds["STASHBOARD_APPID"]
self.admin_url = "https://%s.appspot.com/admin/api/v1" % creds["STASHBOARD_APPID"]
self.payload = None
self.method = "GET"
def __makeCall(self):
if self.payload:
resp, content = self.client.request(self.url, self.method, self.payload)
else:
resp, content = self.client.request(self.url, self.method)
self.data = json.loads(content)
def getServices(self):
self.url = self.admin_url + "/services"
self.__makeCall()
return self.data
def createService(self, name, desc, image):
self.url = self.admin_url + "/statuses"
self.method = "POST"
data = urllib.urlencode({
"name": name,
"description": desc,
"image": image,
})
self.payload = data
self.__makeCall()
return self.data
def setEvent(self, service, status, message):
self.url = self.admin_url + ("/services/%s/events" % service)
data = urllib.urlencode({
"message": message,
"status": status,
})
self.method = "POST"
self.payload = data
self.__makeCall()
return self.data
def getImages(self):
self.url = self.base_url + "/status-images"
self.__makeCall()
return self.data
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment