Skip to content
Snippets Groups Projects
Commit 2ef1a21b authored by Romain Lebbadi-Breteau's avatar Romain Lebbadi-Breteau
Browse files

Initial commit

parents
No related branches found
No related tags found
No related merge requests found
#!/usr/bin/env python3
from datetime import date
import requests
API_URL = "https://api3.clicsante.ca/v3/"
today = date.today()
dateStart = today
dateStop = "2021-05-26"
postal_code = "H3S 2C8"
blacklist = [60070, 60124, 60121, 60142]
headers = {
"authorization": "Basic cHVibGljQHRyaW1vei5jb206MTIzNDU2Nzgh",
"x-trimoz-role": "public",
"product": "clicsante"
}
geoData = requests.get(API_URL + "geocode", params={"address": postal_code}, headers=headers)
coordinates = geoData.json()["results"][0]["geometry"]["location"]
centersParams = {
"dateStart": dateStart,
"dateStop": dateStop,
"latitude": coordinates["lat"],
"longitude": coordinates["lng"],
"maxDistance": 20,
"serviceUnified": 237,
"postalCode": postal_code,
"page": 0
}
centers = []
centersData = requests.get(API_URL + "availabilities", params=centersParams, headers=headers)
while centersData.status_code == 200:
centers += centersData.json()["places"]
centersParams["page"] += 1
centersData = requests.get(API_URL + "availabilities", params=centersParams, headers=headers)
for center in centers:
if center['establishment'] in blacklist:
continue
servicesData = requests.get(API_URL + f"establishments/{center['establishment']}/services", headers=headers)
serviceId = servicesData.json()[0]["id"]
scheduleParams = {
"dateStart": dateStart,
"dateStop": dateStop,
"service": serviceId,
"timezone": "America/Toronto"
}
scheduleData = requests.get(API_URL + f"establishments/{center['establishment']}/schedules/public", params=scheduleParams, headers=headers)
availableDates = scheduleData.json()["availabilities"]
if len(availableDates) > 0:
url = f"https://clients3.clicsante.ca/{center['establishment']}/take-appt?unifiedService=237&portalPlace={center['id']}&portalPostalCode={postal_code.replace(' ', '%20')}&lang=fr"
print(f"Centre : {center['name_fr']}\nLien : {url}\nLieu : {center['formatted_address']}\nDates :\n")
for date in availableDates:
print(f"- {date}")
print("")
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment