57 lines
1.4 KiB
Python
57 lines
1.4 KiB
Python
import sys
|
|
import requests
|
|
from datetime import date, timedelta
|
|
from dotenv import load_dotenv
|
|
import os
|
|
|
|
load_dotenv(dotenv_path="production.env")
|
|
|
|
project_ids_str = os.getenv("PROJECT_IDS")
|
|
project_ids = [pid.strip() for pid in project_ids_str.split(",")] if project_ids_str else []
|
|
|
|
|
|
if len(sys.argv) > 1:
|
|
date = sys.argv[1]
|
|
else:
|
|
date = date.today() - timedelta(days=1)
|
|
|
|
base_url = os.getenv("BASE_URL")
|
|
|
|
def login():
|
|
payload = {
|
|
"username": os.getenv("USERNAME"),
|
|
"password": os.getenv("PASSWORD")
|
|
}
|
|
|
|
headers = {
|
|
"Content-Type": "application/json"
|
|
}
|
|
|
|
response = requests.post(f"{base_url}/auth/login",json=payload,headers=headers)
|
|
|
|
data = response.json()['data']
|
|
jwt = data["token"]
|
|
return jwt
|
|
|
|
def project_proccess(jwt,project_id,date):
|
|
headers = {
|
|
"Authorization": f"Bearer {jwt}",
|
|
"Content-Type": "application/json"
|
|
}
|
|
response = requests.get(f"{base_url}/report/project-statistics/{project_id}?date={date}", headers=headers)
|
|
return response
|
|
|
|
try:
|
|
jwt = login()
|
|
for project_id in project_ids:
|
|
print(project_id)
|
|
response = project_proccess(jwt, project_id, date) # Call your function
|
|
|
|
if response.status_code == 200:
|
|
print("Email sent")
|
|
else:
|
|
print(f"Failed with response: {response}")
|
|
except Exception as e:
|
|
print(f"An error occurred: {e}")
|
|
|