Current section
Files
Jump to
Current section
Files
CHANGELOG.md
# 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/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [0.1.0] - 2024-12-24
### Added
- Initial release of the REA Pricing API client
- **Shared Token Manager Architecture**: OAuth2 tokens managed by dedicated GenServer processes and shared across all processes
- `Rea.Application` - OTP Application module with supervision tree for TokenManager processes
- `Rea.Client` - Main client struct for API interactions
- `Rea.Client.TokenManager` - GenServer for centralized OAuth2 token management
- `Rea.Client.Request` - HTTP request handling with automatic authentication
- `Rea.Client.Auth` - OAuth2 token URL builder
- `Rea.Client.Error` - Structured error handling compatible with RFC-7807
### API Resources
- `Rea.Client.RealestateProperties` - Get product prices for realestate.com.au listings
- Supports required parameters: agency_id, suburb, state, postcode
- Supports optional parameters: section, listing_type, reupgrade, date
- Returns product categories: all, elect, manual, flex, cappedProduct
- `Rea.Client.CommercialProperties` - Get product prices for realcommercial.com.au listings
- Supports required parameters: agency_id, suburb, state, postcode
- Returns subscription type, price options, and product options
- Supports listing tiers: elite_plus, elite, enhanced, basic
### Features
- Multi-environment support: Configure and use multiple environments simultaneously
- Automatic token refresh with race-condition-free coordination
- Application-level configuration via `config :rea, :environments`
- HAL+JSON response format support
- Comprehensive error handling with RFC-7807 compatibility
- Type-safe function signatures with @spec
- Built with the Req HTTP client library
[0.1.0]: https://github.com/col/rea/releases/tag/v0.1.0