release-scripts/mailling/prod/prod_project_report.py

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}")