citric._rest#

LimeSurvey REST API client.

Submodules#

client

REST API client implementation.

Classes#

RESTClient

LimeSurvey REST API client.

Package Contents#

class citric._rest.RESTClient(url, username, password, *, requests_session=None)[source]#

LimeSurvey REST API client.

Upon creation, retrieves a session ID that’s used for authentication.

Warning

The REST API is still in early development, so the client is subject to changes.

Parameters:
  • url (str) – LimeSurvey server URL. For example, http://www.yourdomain.com/rest/v1.

  • username (str) – LimeSurvey user name.

  • password (str) – LimeSurvey password.

  • requests_session (requests.Session | None) – A requests.Session object.

New in version NEXT_VERSION.

USER_AGENT[source]#
authenticate(username, password)[source]#

Authenticate with the REST API.

Parameters:
  • username (str) – LimeSurvey user name.

  • password (str) – LimeSurvey password.

close()[source]#

Delete the session.

_auth(request)[source]#

Authenticate with the REST API.

This is an auth callable for requests.Session.auth.

Parameters:

request (requests.PreparedRequest) – Prepared request.

Returns:

The prepared request with the Authorization header set.

Return type:

requests.PreparedRequest

make_request(method, path, *, params=None, json=None)[source]#

Make a request to the REST API.

Parameters:
  • method (str) – HTTP method.

  • path (str) – URL path.

  • params (Mapping[str, Any] | None) – Query parameters.

  • json (Any | None) – JSON data.

Returns:

Response.

Return type:

requests.Response

__enter__()[source]#

Context manager for REST session.

Returns:

LimeSurvey REST client.

Return type:

Self

__exit__(exc_type, exc_value, traceback)[source]#

Safely exit a REST session.

Parameters:
get_surveys()[source]#

Get all surveys.

Returns:

List of surveys.

Return type:

list[dict[str, Any]]

get_survey_details(survey_id)[source]#

Get survey details.

Parameters:

survey_id (int) – Survey ID.

Returns:

Survey details.

Return type:

dict[str, Any]

update_survey_details(survey_id, **data)[source]#

Update survey details.

Parameters:
  • survey_id (int) – Survey ID.

  • data (Any) – Survey details.

Returns:

Updated survey details.

Return type:

dict[str, Any] | bool