A Python wrapper for the CheckMate REST API.
Project description
CheckMate
A Python wrapper for the CheckMate REST API
Installation
Install:
pip install checkmate-api
or
easy_install checkmate-api
Usage
import checkmate
client = checkmate.CheckMate(api_key='YOUR_KEY_HERE')
Note:: You can also pass in a different API url if needed using the api_base keyword argument.
client = checkmate.CheckMate(api_key='YOUR_KEY_HERE', api_base='API_URL_HERE')
Refer to the documentation for the final word on what’s required/optional for each call.
Search for a property
You can query the API for a property. All of the fields referenced in the query are required.
client.properties.search({
'name': 'Hotel Kabuki',
'phone': '14159223200',
'address': {
'street': '1625 Post St',
'city': 'San Francisco',
'region': 'CA',
'postal_code': '94115',
'country_code': 'US'
}
})
List reservations
You can query the API for all your reservations or the reservations for a specific property.
# paginated list of all reservations
client.reservations.list()
# fetching a different page of reservations
client.reservations.list({'page': 2})
# reservations with a specific confirmation number
client.reservations.list({'confirmation_num': '12349asdf'})
# reservations for property with id 13434543
client.reservations.list({'property_id': 13434543})
# exclude property data from the response
client.reservations.list({'exclude_properties': 'true'})
Show reservation
You can request a specific reservation from the Checkmate API.
# reservation with id 123452
client.reservations.show(123452)
Create reservation
You can create a reservation in Checkmate using either an existing property id, or by creating a new property within the request.
# reservation under property 93
client.reservations.create({
'external_id': 'someid123',
'confirmation_number': 'sdlfkjweo324',
'first_name': 'Jane',
'last_name': 'Smith',
'email': 'jane@smith.io',
'start_on': '2016-12-20',
'end_on': '2016-12-24',
'property_id': 93
})
# creating a new property
client.reservations.create({
'external_id': 'someid123',
'confirmation_number': 'sdlfkjweo324',
'first_name': 'Jane',
'last_name': 'Smith',
'email': 'jane@smith.io',
'start_on': '2016-12-20',
'end_on': '2016-12-24',
'property': {
'name': 'New Hotel',
'address': {
'street': '123 Leaf Lane',
'city': 'Brooklyn',
'region': 'NY',
'postal_code': '11201',
'country_code': 'US'
}
}
})
Update reservation
You can update an existing reservation in Checkmate using a reservation_id.
# reservation id 12345
client.reservations.update(12345, {'loyalty_number': 'abs2332'})
Delete reservation
You can delete an existing reservation in Checkmate using a reservation_id.
# reservation id 12345
client.reservations.destroy(12345)
Bulk create reservations
Each reservation follows the same format as a single reservation (an optional webhook can be added at the end).
client.reservations.bulk_create([{
'external_id': 'fdoo',
'confirmation_number': '',
'first_name': 'Frank',
'last_name': 'Smith',
'email': 'frank@example.com',
'start_on': '2015-12-20',
'end_on': '2015-12-24',
'property_id': 123
}, {
'external_id': 'hfg34',
'confirmation_number': 'gjhhffgh456',
'first_name': 'John',
'last_name': 'Doe',
'email': 'johndoe@example.com',
'start_on': '2015-11-20',
'end_on': '2015-11-24',
'property_id': 123
}], 'https://example.com/callback')
Testing
Install nose testing framework:
pip install nose
Install the mock mocking and testing library:
pip install mock
You can run tests by running the following command:
nosetests
Linting
Install flake8:
pip install flake8
You can run the linter by running
flake8 checkmate
in the root directory.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file checkmate-api-1.0.0.tar.gz
.
File metadata
- Download URL: checkmate-api-1.0.0.tar.gz
- Upload date:
- Size: 4.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 29f4a9b4de213ea56d156f014f20cc8c01e3a1d8f00db24740bbc41de22988b5 |
|
MD5 | ac35108f8275ce865f45b9a6856f07db |
|
BLAKE2b-256 | 1260ef59801cc3185e98fbe600b7bb5130ab03c6b5eaf486dcf5cc87dc9669b0 |