Developers API

Models

Module author: Roy Russo <royrusso.gmail.com>

class elastichq.model.ClusterModel.ClusterDTO(*args, **kwargs)[source]

Generic data transfer object for a cluster.

class elastichq.model.ClusterModel.ClusterModel(cluster_name, cluster_ip, cluster_port='9200', cluster_scheme='http', username=None, password=None)[source]

Keeping it simple... cluster_name must be unique.

cluster_host

Concats scheme, ip, port

Returns:SCHEME://IP:PORT

Response

elastichq.common.api_response.APIResponse(data, status_code=200, headers=None, message=None)[source]

Uniform response envelope

Parameters:
  • data – Typically an array of dicts to be returned in the JSON output
  • status_code – An HTTP code
  • headers
  • message – If an error or success message is added.
Returns:

A Flask-RESTFul response

Exceptions

All ElasticHQ API endpoints are wrapped by a decorator that handles raised exceptions.

elastichq.common.exceptions.request_wrapper(functor, message='Oops! Something bad happened.')[source]

Standardizes error handling across the app

Parameters:functor
Returns:
class elastichq.common.exceptions.ApiException(message, status_code=500)[source]

Generic API parser/formatter for exception messages.

Parameters:
  • message
  • status_code – Defaults to 500
to_response()[source]

Converts an exception message to a proper status code and response JSON

Returns:
class elastichq.common.exceptions.NotFoundException(message, status_code=404)[source]

Responsible for returning HTTP 404

Parameters:
  • message
  • status_code – Defaults to 404
class elastichq.common.exceptions.BadRequest(message, status_code=400)[source]

Responsible for returning HTTP 400

Parameters:
  • message
  • status_code – Defaults to 400
class elastichq.common.exceptions.InternalServerError(message='Internal Server Error', status_code=501)[source]

Responsible for returning HTTP 500

Parameters:
  • message
  • status_code – Defaults to 500