Skip to content

Commit

Permalink
base implementation of manager methods
Browse files Browse the repository at this point in the history
  • Loading branch information
michaelkuty committed Jun 20, 2015
1 parent fb20dc0 commit 633247e
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 14 deletions.
2 changes: 1 addition & 1 deletion horizon_contrib/api/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ def process_response(self, response, request):
if response.status_code == 401:
raise exceptions.HTTPError('Unautorized 401')
if response.status_code == 400:
raise exceptions.HTTPError('Unautorized 400')
raise exceptions.HTTPError('Bad Request 400')
if response.status_code == 500:
LOG.exception(request.body)
raise exceptions.HTTPError('Unexpected exception 500')
Expand Down
53 changes: 40 additions & 13 deletions horizon_contrib/api/managers.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,24 +10,51 @@ class Manager(ClientBase):
in many cases you want add extra method
like an object specific actions subscribe/like etc
its only interface not golden rule
"""

def all(self, *args, **kwargs):
return []
def get(self, *args, **kwargs):
return NotImplementedError
:attr:scope: string which specify api uri::
def create(self, *args, **kwargs):
raise NotImplementedError
scope = 'tickets'
def update(self, *args, **kwargs):
raise NotImplementedError
will produce -> api/tickets
"""

def delete(self, *args, **kwargs):
raise NotImplementedError
def all(self, *args, **kwargs):
return self.list(*args, **kwargs)

def get(self, id, request=None):
return self.request(
'/{0}/{1}'.format(self.scope, id),
'GET',
request)

def create(self, data, request=None):
return self.request(
'/{0}/'.format(self.scope),
'POST',
data,
request)

def update(self, id, data, request=None):
return self.request(
'/{0}/{1}/'.format(self.scope, id),
'PUT',
data,
request)

def delete(self, id, request=None, *args, **kwargs):
return self.request(
'/{0}/{1}/'.format(self.scope, id),
'DELETE',
request)

def list(self, request=None):
return self.request(
'/%s' % self.scope,
'GET',
request=request)

# other common stuff

# common stuff
def order_by(self, *args, **kwargs):
raise NotImplementedError

Expand Down

0 comments on commit 633247e

Please sign in to comment.