RESTful API

controllers.rest.CORS_ALLOWED_CLIENT_HEADERS = ['Content-Type']

CORS - HTTP headers the client may use

controllers.rest.CORS_ALLOWED_METHODS_DEFAULT = ['GET', 'PUT', 'POST', 'DELETE', 'OPTIONS']

CORS - HTTP methods the client may use

controllers.rest.CORS_DEFAULT = {'Access-Control-Allow-Credentials': 'true', 'Access-Control-Allow-Headers': 'Content-Type', 'Access-Control-Allow-Methods': 'GET,PUT,POST,DELETE,OPTIONS', 'Access-Control-Allow-Origin': '*', 'Access-Control-Max-Age': '86400'}

CORS - HTTP headers the server will send as part of OPTIONS response

controllers.rest.CORS_DEFAULT_ALLOW_ORIGIN = '*'

CORS - default origin header value

class controllers.rest.RESTControllerSkeleton(*args, **kwargs)[source]

Skeleton implementation of a RESTful contoller class.

error_response(request, response_code=None, **kwargs)[source]

Create and return an HTTP error response with data as JSON.

Parameters:
  • request (twisted.web.server.Request) – HTTP request object
  • response_code – HTTP Status Code (default is 500)
  • **kwargs – additional key/value pairs
Returns:

JSON encoded data with appropriate HTTP headers

render_GET(request)[source]

HTTP GET implementation.

Parameters:request (twisted.web.server.Request) – HTTP request object
Returns:HTTP response with headers
render_OPTIONS(request)[source]

Render response for an HTTP OPTIONS request.

Parameters:request (twisted.web.server.Request) – HTTP request object
Returns:HTTP response with headers
render_POST(request)[source]

HTTP POST implementation.

Parameters:request (twisted.web.server.Request) – HTTP request object
Returns:HTTP response with headers
class controllers.rest.SimpleRootController[source]

Simple (Web) Root Controller.

controllers.rest.json_response(request, data, indent=1)[source]

Create a JSON representation for data and set HTTP headers indicating that JSON encoded data is returned.

Parameters:
Returns:

JSON representation of data with appropriate HTTP headers

RESTful API access using HTTP

This controller exposes the application programming interface (API) as implemented by the controllers.web and controllers.ajax controllers.

The generated responses are returned as JSON data with appropriate HTTP headers. Output will be compressed using gzip if requested by client.

A swagger v2 (https://swagger.io/) compatible API specification will be returned when accessing the /api/ endpoint. The API specification is consumable e.g. by a Swagger UI (https://swagger.io/swagger-ui/) instance.

controllers.rest_api_controller.OWIF_PREFIX = 'P_'

prefix for OpenWebif controller methods

controllers.rest_api_controller.SWAGGER_TEMPLATE = '/home/travis/build/doubleO8/e2openplugin-OpenWebif/pert_belly_hack-backend/plugin/controllers/swagger.json'

OpenAPI specification source (swagger.json)

Recordings

Listing of recordings on current device. Removing of recordings files including meta data.

class controllers.rest_recordings_controller.RESTRecordingsController(*args, **kwargs)[source]

RESTful Controller for /recordings endpoint.

remove(request, target_path)[source]

Remove movie file including meta data files.

Parameters:
Returns:

HTTP response with headers

render_DELETE(request)[source]

HTTP DELETE request handler deleting a movie item

Parameters:request (twisted.web.server.Request) – HTTP request object
Returns:HTTP response with headers
DELETE /recordings/{basestring:path}
Status Codes:
render_GET(request)[source]

HTTP GET request handler returning list of movies

Parameters:request (twisted.web.server.Request) – HTTP request object
Returns:HTTP response with headers
GET /recordings/{basestring:path}
Status Codes:
GET /recording/{basestring:path}
Status Codes:
render_path_listing(request, root_path)[source]

Generate a list of movie items available on current device.

Parameters:
Returns:

HTTP response with headers

Timer Items

Listing of timer items on current device. (Removing of timer items, Altering of timer items)

class controllers.rest_timer_controller.RESTTimerController(*args, **kwargs)[source]

RESTful Controller for /timers endpoint.

GET /timers/
Status Codes:
GET /timers/{basestring:service_reference}/
Status Codes:
GET /timers/{basestring:service_reference}/{int:timer_id}/
Status Codes:
render_DELETE(request)[source]

HTTP DELETE implementation for removing a timer.

Parameters:request (twisted.web.server.Request) – HTTP request object
Returns:HTTP response with headers
DELETE /timers/{basestring:service_reference}/{int:timer_id}/
Status Codes:
render_list_all(request)[source]

List all timers

Parameters:request (twisted.web.server.Request) – HTTP request object
Returns:HTTP response with headers
render_list_item(request, service_reference, item_id)[source]

List timer data for specific timer of service.

Parameters:
  • request (twisted.web.server.Request) – HTTP request object
  • service_reference (basestring) – Service reference string
  • item_id (int) – Timer ID
Returns:

HTTP response with headers

render_list_subset(request, service_reference)[source]

List timers for specific service.

Parameters:
Returns:

HTTP response with headers

Current Event Data

Retrieve current event data.

class controllers.rest_current_event_controller.RESTCurrentEventController(*args, **kwargs)[source]

RESTful Controller for /current_event endpoint.

GET /current_event
Status Codes:
GET /current_event/{basestring:service_reference}/
Status Codes:
render_list_all(request)[source]

Return event data for currently playing service.

Parameters:request (twisted.web.server.Request) – HTTP request object
Returns:HTTP response with headers
render_list_item(request, service_reference, item_id)[source]

Currently not supported.

Parameters:request (twisted.web.server.Request) – HTTP request object
Returns:HTTP response with headers
render_list_subset(request, service_reference)[source]

Return event data for specific service (if available).

Parameters:
Returns:

HTTP response with headers

controllers.rest_current_event_controller.get_servicereference_name(some_ref)[source]

Try to dertermine service’s name for service reference some_ref

Parameters:some_ref – eServiceReference instance or basestring
Returns:service name or service reference string

RESTful Controller for /api/saveconfig endpoint. POST requests are proxied through controllers.web.WebController.P_saveconfig().

MISSING:

  • sane implementation of POST request handling
  • extend OpenAPI specification in swagger.json
class controllers.rest_saveconfig_api.SaveConfigApiController(*args, **kwargs)[source]

RESTful Controller for /api/saveconfig endpoint.

render_GET(request)[source]

HTTP GET implementation.

Parameters:request (twisted.web.server.Request) – HTTP request object
Returns:HTTP response with headers
GET /api/saveconfig
render_POST(request)[source]

HTTP POST implementation.

Parameters:request (twisted.web.server.Request) – HTTP request object
Returns:HTTP response with headers
POST /api/saveconfig
Query Parameters:
 
  • key (string) – configuration key
  • value (string) – configuration value
web_instance = None

web controller instance

class controllers.rest_eventlookup_api.EventLookupApiController(*args, **kwargs)[source]

RESTful Controller for /api/eventlookup endpoint

render_GET(request)[source]

HTTP GET implementation.

See also

Parameters:request (twisted.web.server.Request) – HTTP request object
Returns:HTTP response with headers
GET /api/eventlookup
Query Parameters:
 
  • service_reference (basestring) – service_reference
  • begin (int) – (optional) timestamp
  • minutes (int) – (optional) time range in minutes or event ID
  • querytype (int) – (optional) query type
  • flags (basestring) – (optional) fields to be returned
  • max_rows (int) – (optional) maximum number of result rows
Status Codes:
class controllers.rest_eventsearch_api.EventSearchApiController(*args, **kwargs)[source]

RESTful Controller for /api/eventsearch endpoint

render_GET(request)[source]

HTTP GET implementation.

Parameters:request (twisted.web.server.Request) – HTTP request object
Returns:HTTP response with headers
GET /api/eventsearch
Query Parameters:
 
  • what (basestring) – search term
  • querytype (int) – (optional) query type
  • flags (basestring) – (optional) fields to be returned
  • max_rows (int) – (optional) maximum number of result rows
Status Codes:
class controllers.rest_services_controller.RESTServicesController(*args, **kwargs)[source]

RESTful Controller for /services/ endpoint

render_GET(request)[source]

HTTP GET implementation.

Parameters:request (twisted.web.server.Request) – HTTP request object
Returns:HTTP response with headers
GET /services/
Status Codes:
GET /services/tv
Status Codes:
GET /services/radio
Status Codes:
GET /services/(int: service_type)
Status Codes: