summaryrefslogtreecommitdiffstats
path: root/CHANGELOG.md
diff options
context:
space:
mode:
authorMurilo Ijanc <[email protected]>2026-07-27 20:25:04 -0300
committerMurilo Ijanc <[email protected]>2026-07-27 20:53:07 -0300
commit82d92ed4291663bae94014b4363064dbb26c6a51 (patch)
tree69d91a59c955f1e6ec6fc0007324b5d73b3f0d01 /CHANGELOG.md
parent8e719fc715eb7ae9aa1c842e633f15b5c6cd3688 (diff)
downloaddart-82d92ed4291663bae94014b4363064dbb26c6a51.tar.gz
Name the municipality behind a CEP that does not existHEADv0.2.0main
A CEP that fails a lookup is rarely a random number: it is usually someone who knows the city and guessed the digits, and the classic guess is the -000 that 957 municipalities never received. The API now attaches a faixa block to the 404 naming the municipality that band belongs to, so the caller can answer "no, but you were looking at Areal/RJ" instead of just "no". It stays an error. Faixa hangs off CepNotFoundException, never off Address, and cepIni/cepFim are the extremes that actually exist in the municipality rather than the range the Correios publish — echoing back the published start would return the very CEP that just failed. The interval is sparse, which is what ceps is for; it is not a list of alternatives. Parsing is deliberately forgiving: a missing, empty or malformed block is null. Losing a clean not-found to a parse error over the hint attached to it would be a bad trade.
Diffstat (limited to 'CHANGELOG.md')
-rw-r--r--CHANGELOG.md12
1 files changed, 12 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5f9e0cb..df0c793 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,17 @@
# Changelog
+## 0.2.0
+
+- `CepNotFoundException` now carries `faixa`: the municipality the CEP would
+ have belonged to, when the API names one. Still a 404 — it is context for the
+ error, not an address.
+- New `Faixa` model. Its `cepIni`/`cepFim` are the smallest and the largest CEP
+ that *exist* in the municipality, not the Correios' published bounds, and the
+ interval between them is sparse — read `ceps` for how sparse.
+- `CepNotFoundException.toString` mentions the municipality when there is one.
+- A missing, empty or malformed `faixa` yields `null` and never turns a
+ not-found into a parse failure.
+
## 0.1.0
- First release: `lookup`, `lookupMany`, `health` and `normalizeCep`, with