Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 65 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,71 @@ All notable changes to `bulutklinik-sdk` are documented here. The format is base
on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres
to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [1.0.1]

Documentation and contract corrections found by auditing the SDKs against the
API source before release. No wire change.

### Fixed

- `doctors.search` no longer lets `searchParams` default to an empty map. The
server rule is `required|array` and PHP's `required` rejects an empty array, so
`{}` was a guaranteed `422` rather than an unfiltered search.
- Corrected the `measures.health_information` note. The defect it described — the API
nulling `identity` before the patient lookup — was fixed API-side on
2026-07-21. What actually remains is looser and worth knowing: the lookup is
`identity OR phoneNumber` against the global user table and takes the first
row, so a phone number alone can resolve a person whose TCKN differs from the
one you sent.

## [1.0.0]

The SDK becomes **partner-only**. Everything that required a patient login is
gone; the company-scoped `/outher` surface that shipped under `client.partner.*`
in 0.6.0 is now the client root. See `DESIGN.md` §12 for the full migration.

### Changed — BREAKING

- **`client.partner.<group>` → `client.<group>`.** The six partner groups
(`doctors`, `slots`, `appointments`, `measures`, `laboratory`, `diets`) moved to
the root on both the sync and async clients. Their paths, bodies and behaviour
are unchanged — this is a rename. Resource classes lost the `Partner` prefix
(`PartnerDoctorsResource` → `DoctorsResource`, `AsyncPartnerDoctorsResource` →
`AsyncDoctorsResource`); `PartnerNamespace` / `AsyncPartnerNamespace` are gone.
- **`TokenStore` now holds one partner token**: `get_token` / `set_token` /
`clear` replace `get_access_token` / `get_refresh_token` / `set_tokens`.
`InMemoryTokenStore` takes the token as its single argument.
- **`partner_token` is now the client's credential** and is required for every
call. Passing both `partner_token` and `token_store` raises `ValueError` at
construction rather than silently picking one.
- **No silent refresh.** A `401` / `resultType 4` raises `AuthenticationError`
with no retry — a partner token is issued out of band and cannot be renewed
from here. Install a newly issued token in the token store instead.
- **A missing token fails before dispatch** with `AuthenticationError`, rather
than sending an anonymous request that returns an opaque `401`.
- **Escape hatch `auth` defaults to `"partner"`**; the `"bearer"` mode no longer
exists. `"public"` remains, for unauthenticated endpoints outside the surface.
- `_BASE_URLS` → `API_ROOTS` (now version-less); `resolve_base_url` takes an
`api_version` argument.
- `measures.partner_health_information` → `measures.health_information`.
- `doctors.search` no longer accepts `other_params` / `per_page_limit`, and
`order_params` no longer accepts `point` — the `/outher` search has neither.

### Added

- **`api_version="v3" | "v4"`** client option (plus an `ApiVersion` enum). Every
path is version-agnostic, so targeting v4 is configuration, not a code change.
Default stays `v3`.

### Removed

- `client.auth` (all 11 methods), `client.payments` (5), `client.skin`,
`client.meals`, `client.addresses` (4) — no company-scoped equivalent exists.
- The patient-persona `doctors` / `slots` / `appointments` / `measures` /
`laboratory` / `diets` that lived at the root in 0.6.0.
- `client_id` / `client_secret` client options.
- The `LoginResult` model and the `bulutklinik.models` module.

## [0.6.0]

### Added
Expand Down
948 changes: 439 additions & 509 deletions DESIGN.md

Large diffs are not rendered by default.

Loading
Loading