def _update_token(self): if not self._token_is_current(): body = {"username" : self._USERNAME, "password" : HELPER.hash(self._PASSWORD, hexdigest=True)} headers = STATE.get(self, self._HEADERS) result = self._invoke_service(Services.UPDATE_TOKEN, headers, body, partition=False) headers[self._TOKEN] = result["token"] STATE.update(self, self._HEADERS, headers, mode="replace")
def consume(self, service, data=dict(), **kwargs): if not isinstance(service.value, SchedulesDirectService): raise TypeError() else: if not self._token_is_current(): self._update_token() headers = STATE.get(self, self._HEADERS) return self._invoke_service(service, headers, data)
def method(self): # TODO: MID Make is so that different methods # can be registered and used. return STATE.get(self, self._METHODS)
def url(self): components = STATE.get(self, self._URLCOM) return "/".join(components)
def methodappend(self, value): STATE.add(self, self._METHODS, value, mode="replace")
def urlappend(self, value): STATE.add(self, self._URLCOM, value, mode="append")
def __init__(self): STATE.__init__(self) self._setbody(None) self._setheaders(None) STATE.add(self, self._URLCOM, list()) STATE.add(self, self._METHODS, list())
def _token_is_current(self): if not STATE.get(self, self._TOKEN) in [None, ""]: return True else: return False
def __init__(self): Client.__init__(self) STATE.__init__(self) STATE.add(self, self._HEADERS, { "user-agent" : "RokuStreak" , "verbose": True, "token" : "", "Accept-Encoding":"identity,deflate,gzip"} )