- Do not attempt to recover healthy data by re-querying ShopperTrak when the initial unhealthy data occurred during a full-day closure (extended or otherwise)
- Do not attempt to recover healthy data by re-querying ShopperTrak when the initial unhealthy data occurred during an extended closure
- For days that are missing entire sites, send any recovered data to Kinesis even if it's unhealthy
- For days that are missing entire sites, re-query the API even if the site is temporarily closed that day
- Re-query ShopperTrak API for sites missing from a previous API response. This is distinct from re-querying for sites that appear in the API response but have unhealthy data (which is already done).
- URL quote special characters in site IDs to escape them
- Catch non-fatal XML errors and continue requesting. Only throw an error and stop when the API limit has been exceeded, when the request itself has failed, or when the ShopperTrak server cannot be reached even after retrying.
- When site ID is not found (error code "E101"), skip it without throwing an error
- Retry when server is down (new ShopperTrak error code "E000")
- Fix location hours query to retrieve each location's current hours rather than its first hours
- Do not throw an error if the ShopperTrak API rate limit is hit
- Perform recovery queries on past thirty days of missing data
- Initial commit without any recovery queries