antistatique/pricehubble-php-sdk

Super-simple, minimum abstraction Pricehubble API v1.x wrapper, in PHP

1.0.2 2022-09-06 06:34 UTC

This package is auto-updated.

Last update: 2024-04-12 13:50:44 UTC


README

Super-simple, minimum abstraction Pricehubble API v1.x wrapper, in PHP.

I hate complex wrappers. This lets you get from the Pricehubble API docs to the code as directly as possible.

Requires PHP 7.4+. Abstraction is for chimps.

Build Coverage Status Packagist License

Getting started

You can install pricehubble-php-sdk using Composer:

composer require antistatique/pricehubble-php-sdk

Examples

See the examples/ directory for examples of the key client features. You can view them in your browser by running the php built-in web server.

php -S localhost:8000 -t examples/

And then browsing to the host and port you specified (in the above example, http://localhost:8000).

Basic Example

Start by use-ing the class and creating an instance with your API key

use \Antistatique\Pricehubble\Pricehubble;

Every request should contain a valid access token. use the Pricehubble::authenticate method prior any requests. All operational requests require an authentication to be present and unexpired.

Valuation

Performs valuations for the specified real estate properties on the specified valuation dates. The endpoint can be used to do a valuation of a single property, to create time series or to perform bulk valuations.

The number of valuations per call may not exceed 50, i.e. you can perform valuations for 1 property on 50 dates or for 50 properties on 1 date, but not for 50 properties on 50 dates.

👉 https://docs.pricehubble.com/international/valuation/

$pricehubble = new Pricehubble();
$pricehubble->authenticate($username, $password)
$response = $pricehubble->valuation()->full([
    'dealType' => 'sale',
    'valuationInputs' => [
        [
            'property' => [
                'location' => [
                    'address' => [
                        'postCode' => '8037',
                        'city' => 'Zürich',
                        'street' => 'Nordstrasse',
                        'houseNumber' => '391'
                    ],
                ],
                'buildingYear' => 1850,
                'livingArea' => 800,
                'propertyType' => [
                    'code' => 'apartment'
                ],
            ],
        ],
    ],
    'countryCode' => 'CH',
]);
print_r($response);

Valuation Light

Performs a simple valuation of the specified property.

If you would like to perform valuations for multiple properties (in a single call), create time series, or achieve better valuations by taking more parameters into account, consider using the full-fledged Valuation endpoint.

👉 https://docs.pricehubble.com/international/valuation_light/

$pricehubble = new Pricehubble();
$pricehubble->authenticate($username, $password)
$response = $pricehubble->valuation()->light([
    'dealType' => 'sale',
    'property' => [
        'location' => [
            'address' => [
                'postCode' => '8037',
                'city' => 'Zürich',
                'street' => 'Nordstrasse',
                'houseNumber' => '391'
            ],
        ],
        'buildingYear' => 1850,
        'livingArea' => 800,
        'propertyType' => [
            'code' => 'apartment'
        ],
    ],
    'countryCode' => 'CH',
]);
print_r($response);

Points of Interest

Returns point of interests such as schools, shops, etc. that match the specified search criteria.

👉 https://docs.pricehubble.com/international/pois/

$pricehubble = new Pricehubble();
$pricehubble->authenticate($username, $password)
$response = $pricehubble->pointsOfInterest()->gather([
    'coordinates' => [
        'latitude' => 47.3968601,
        'longitude' => 8.5153549,
    ],
    'radius' => 1000,
    'category' => [
        'education',
        'leisure',
    ],
    'subcategory' => [
        'kindergarten',
        'playground',
    ],
    'offset' => 0,
    'limit' => 10,
    'countryCode' => 'CH',
]);
print_r($response);

Troubleshooting

To get the last error returned by either the HTTP client or by the API, use getLastError():

echo $pricehubble->getLastError();

For further debugging, you can inspect the headers and body of the response:

print_r($pricehubble->getLastResponse());

If you suspect you're sending data in the wrong format, you can look at what was sent to Pricehubble by the wrapper:

print_r($pricehubble->getLastRequest());

If your server's CA root certificates are not up to date you may find that SSL verification fails and you don't get a response. The correction solution for this is not to disable SSL verification. The solution is to update your certificates. If you can't do that, there's an option at the top of the class file. Please don't just switch it off without at least attempting to update your certs -- that's lazy and dangerous. You're not a lazy, dangerous developer are you?