# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html),
and is generated by [Changie](https://github.com/miniscruff/changie).

## 1.0.1 - 2024-06-12

### Fixed

- [#1101](https://github.com/edgarrmondragon/citric/issues/1101) fix: Bump min `requests` to `2.25.1` (released 2020-12-16)

### Documentation

- [#1152](https://github.com/edgarrmondragon/citric/issues/1152) Fixed links to LimeSurvey API docs

## 1.0.0 - 2024-02-12

### Added

- [#1079](https://github.com/edgarrmondragon/citric/issues/1079) Added `get_db_version` method to RPC client
- [#1092](https://github.com/edgarrmondragon/citric/issues/1092) Added a `Session.call` method to allow calling RPC methods without any error handling to get the raw response

### Removed

- [#1093](https://github.com/edgarrmondragon/citric/issues/1093) Removed the `Session._headers` attribute

### Documentation

- [#1057](https://github.com/edgarrmondragon/citric/issues/1057) Documented `conda install` option
- [#1092](https://github.com/edgarrmondragon/citric/issues/1092) Linked unimplemented methods to `Session.call` examples

## 0.10.0 - 2023-11-29

### Added

- [#994](https://github.com/edgarrmondragon/citric/issues/994) Experimental support for the new REST API
- [#1016](https://github.com/edgarrmondragon/citric/issues/1016) Support `DestSurveyID` parameter in RPC method `copy_survey`
- [#1026](https://github.com/edgarrmondragon/citric/issues/1026) Support `userActivationSettings` parameter in RPC method `activate_survey`

### Fixed

- [#1026](https://github.com/edgarrmondragon/citric/issues/1026) Update `types.YesNo` to include inherited (`I`) values

### Documentation

- [#1035](https://github.com/edgarrmondragon/citric/issues/1035) Document how to disable TLS certificate verification

## 0.9.0 - 2023-10-11

### Added

- [#944](https://github.com/edgarrmondragon/citric/issues/944) Add `Client.get_server_version`
- [#1005](https://github.com/edgarrmondragon/citric/issues/1005) Official support for Python 3.12

### Documentation

- [#934](https://github.com/edgarrmondragon/citric/issues/934) Report status of integration tests against multiple LimeSurvey versions
- [#964](https://github.com/edgarrmondragon/citric/issues/964) Fix GitHub archive URLs in integration test docs
- [#996](https://github.com/edgarrmondragon/citric/issues/996) Document current version in docs site

## 0.8.0 - 2023-08-22

### Added

- [#793](https://github.com/edgarrmondragon/citric/issues/793) Implement `invite_participants` in client

### Changed

- [#617](https://github.com/edgarrmondragon/citric/issues/617) Drop support for Python 3.7

### Refactored

- [#918](https://github.com/edgarrmondragon/citric/issues/918) Use latest `typing` features where possible
- [#935](https://github.com/edgarrmondragon/citric/issues/935) Use `__all__` to expose public API

### Documentation

- [#930](https://github.com/edgarrmondragon/citric/issues/930) Update duckdb notebook example
- [#934](https://github.com/edgarrmondragon/citric/issues/934) Document integration test status in readme
- [#940](https://github.com/edgarrmondragon/citric/issues/940) Fix edit button

## 0.7.2 - 2023-06-21

### Refactored

- [#894](https://github.com/edgarrmondragon/citric/issues/894) Add a `USER_AGENT` attribute to the `Session` class

## 0.7.1 - 2023-06-03

### Documentation

- [#876](https://github.com/edgarrmondragon/citric/issues/876) Update contributing documentation

## 0.7.1-b3 - 2023-06-01

### Documentation

- [#866](https://github.com/edgarrmondragon/citric/issues/866) Add missing methods to RPC coverage page
- [#868](https://github.com/edgarrmondragon/citric/issues/868) Fix a couple of typos

## 0.7.1-b2 - 2023-05-12

### Fixed

- [#849](https://github.com/edgarrmondragon/citric/issues/849) Remove some upper bound version constraints

## 0.7.1-b1 - 2023-04-11

### Fixed

- [#803](https://github.com/edgarrmondragon/citric/issues/803) Remove warnings for LimeSurvey 6.0 features

## 0.7.0 - 2023-03-31

### Added

- [#492](https://github.com/edgarrmondragon/citric/issues/492) Implement `cpd_importParticipants` in client

### Fixed

- [#774](https://github.com/edgarrmondragon/citric/issues/774) Remove direct dependency on `typing-extensions`

## 0.6.0 - 2023-03-21

### Added

- [#295](https://github.com/edgarrmondragon/citric/issues/295) Implement `set_quota_properties` in client
- [#552](https://github.com/edgarrmondragon/citric/issues/552) Implement `get_available_site_settings` in client
- [#765](https://github.com/edgarrmondragon/citric/issues/765) Use `TypedDict` for more precise `**kwargs` typing

## 0.5.0 - 2023-03-13

### Added

- [#748](https://github.com/edgarrmondragon/citric/issues/748) Support custom JSON encoders
- [#745](https://github.com/edgarrmondragon/citric/issues/745) Annotate some responses with `TypedDict`

## 0.4.5 - 2023-03-03

### Fixed

- [#732](https://github.com/edgarrmondragon/citric/issues/732) Improve error message when RPC response is not valid JSON

## 0.4.4 - 2023-02-03

### Refactored

- [#683](https://github.com/edgarrmondragon/citric/issues/683) Use `pathlib.Path` where possible
- [#687](https://github.com/edgarrmondragon/citric/issues/687) Use a dedicated `RPCInterfaceNotEnabledError` exception when a disabled JSON Interface is detected

## 0.4.3 - 2023-01-18

### Fixed

- [#659](https://github.com/edgarrmondragon/citric/issues/659) Use a correct UTC datetime as the default end value in `export_timeline`

## 0.4.2 - 2022-12-20

### Changed

- [#642](https://github.com/edgarrmondragon/citric/issues/642) Remove upper bound constrain on `importlib-metadata`

### Fixed

- [#643](https://github.com/edgarrmondragon/citric/issues/643) Fixed a few type annotations

## 0.4.1 - 2022-12-10

### Fixed

- [#634](https://github.com/edgarrmondragon/citric/issues/634) Pass `attributes` to `activate_tokens` RPC call

## 0.4.0 - 2022-12-05

### Added

- [#582](https://github.com/edgarrmondragon/citric/issues/582) Stable support for Python 3.11
- [#586](https://github.com/edgarrmondragon/citric/issues/586) Experimental support for Python 3.12

### Changed

- [#607](https://github.com/edgarrmondragon/citric/issues/607) Use keyword-only arguments for `add_participants` and `list_participants`

### Refactor

- [#626](https://github.com/edgarrmondragon/citric/issues/626) Refactor returns of the type `if: ... else: return ...`

## 0.3.0 - 2022-07-24

### Added

- [#498](https://github.com/edgarrmondragon/citric/issues/498) Implement `get_fieldmap` in client

## 0.2.0 - 2022-06-20

### Added

- [#475](https://github.com/edgarrmondragon/citric/issues/475) Implement `update_response` in client

### Fixed

- [#477](https://github.com/edgarrmondragon/citric/issues/477) Reduce number of calls to `list_questions` from `add_responses`

## 0.1.0 - 2022-06-17

### Added

- [#213](https://github.com/edgarrmondragon/citric/issues/213) Implement `delete_question` in client

## 0.0.14 - 2022-05-18

### Added

- [#430](https://github.com/edgarrmondragon/citric/issues/430) Implement `upload_file` in client

## 0.0.13 - 2022-05-02

### Added

- [#435](https://github.com/edgarrmondragon/citric/pull/435) Add `get_uploaded_file_objects` to Client

## 0.0.12 - 2022-03-24

### Added

- [#208](https://github.com/edgarrmondragon/citric/pull/208) Implement `delete_language` in client

## 0.0.11 - 2022-03-14

### Added

- [#296](https://github.com/edgarrmondragon/citric/pull/296) Implement `set_group_properties`, `set_language_properties`, `set_participant_properties`, `set_question_properties`, `set_survey_properties` in client

## 0.0.10 - 2022-02-17

### Added

- [#192](https://github.com/edgarrmondragon/citric/pull/192) Implement `copy_survey` in client
- [#190](https://github.com/edgarrmondragon/citric/pull/190) Implement `import_group` in client
- [#196](https://github.com/edgarrmondragon/citric/pull/196) Implement `list_groups` in client
- [#194](https://github.com/edgarrmondragon/citric/pull/194) Implement `delete_group` in client
- [#207](https://github.com/edgarrmondragon/citric/pull/207) Implement `add_language` in client
- [#210](https://github.com/edgarrmondragon/citric/pull/210) Implement `add_survey` in client
- [#231](https://github.com/edgarrmondragon/citric/pull/231) Implement `get_`\*\_properties in client
- [#240](https://github.com/edgarrmondragon/citric/pull/237) Implement `export_statistics`, `save_statistics` and `save_responses` in client
- [#241](https://github.com/edgarrmondragon/citric/pull/241) Implement `get_summary` in client
- [#240](https://github.com/edgarrmondragon/citric/pull/240) Implement `export_timeline` in client

### Fixed

- [#215](https://github.com/edgarrmondragon/citric/pull/215) Address code smells and other issues

## 0.0.9 - 2022-02-05

### Added

- [#155](https://github.com/edgarrmondragon/citric/pull/155) Experimental support Python 3.11
- [#165](https://github.com/edgarrmondragon/citric/pull/165) Test in Windows and MacOS

### Removed

- [#151](https://github.com/edgarrmondragon/citric/pull/151) Drop support for Python 3.6

## 0.0.8 - 2022-02-03

### Added

- [#148](https://github.com/edgarrmondragon/citric/pull/148) Implement `add_group` in client
- [#148](https://github.com/edgarrmondragon/citric/pull/148) Implement `import_question` in client

## 0.0.7 - 2022-01-28

### Fixed

- [#143](https://github.com/edgarrmondragon/citric/pull/143) Remove explicit check for enabled RPC interface

## 0.0.6 - 2022-01-26

### Added

- [#140](https://github.com/edgarrmondragon/citric/pull/140) Support Auth Plugins

## 0.0.5 - 2021-12-20

### Changed

- [#117](https://github.com/edgarrmondragon/citric/pull/117) Removed `read_file` and `write_file` methods in favor of support for arbitrary binary file-like objects. Implemented `get_uploaded_files` in client.

## 0.0.4 - 2021-12-17

### Changed

- [#114](https://github.com/edgarrmondragon/citric/pull/114) Replaced `requests_session_factory` argument with `requests_session` in `citric.Session`

## 0.0.3 - 2021-11-11

### Added

- [#93](https://github.com/edgarrmondragon/citric/pull/93) Implement `list_users` in client

## 0.0.2 - 2021-11-11

### Added

- New client methods:

  - `delete_response`
  - `list_survey_groups`

### Changed

- Return bytes from export methods

## 0.0.1 - 2021-11-11

### Added

- New client methods:

  - `activate_survey`
  - `activate_tokens`
  - `add_participants`
  - `add_response`
  - `delete_participants`
  - `delete_survey`
  - `download_files`
  - `export_responses`
  - `export_responses_by_token`
  - `get_participant_properties`
  - `get_response_ids`
  - `get_site_settings`
  - `get_survey_properties`
  - `import_survey`
  - `list_participants`
  - `list_questions`
  - `list_surveys`
