This is a Singer tap that implements the [RockGymPro] API(https://api.rockgympro.com/)
This tap:
- Implements the following endpoints:
Caveats:
- Bookings endpoint
- There is no way to filter by only newly updated bookings. You can filter by when a booking was created but you can't filter by when a booking was cancelled so this tap will fetch all bookings looking for updated bookings based on the state.
- Customers endpoint
- There is no way to loop through all of the customers so customers are fetched as a byproduct of other endpoints that reference customers. For example, bookings reference customers so we batch booking records to fetch several customers first.
- Checkin endpoint
- This endpoint can only filter by the 6D5B check in date+time. So we would miss all of the checkouts. To prevent having to loop through all checkins we start from 24 hours before the last time check.
- Timezones
- I'm still not sure about timezones. The Facilities endpoint doesn't return any timezones so this tap assumes all times are in UTC (which is probably incorrect)
-
Install
pip install git+https://github.com/cinchio/tap-rockgympro
-
Create the config file
Create a JSON file called
config.json
. Its contents should look like:{ "api_user": "myuser", "api_key": "myapikey" }
To generate an API key refer to the documentation
-
Run the Tap in Discovery Mode
tap-rockgympro -c config.json -d
See the Singer docs on discovery mode here.
-
Run the Tap in Sync Mode
tap-rockgympro -c config.json
- Implement Staff and Timeclock streams. They were not needed for Cinch's use case at the time so we haven't implemented them yet.
- Figure out if there is a usecase for Settings/Versions/Widget EventS streams?