mazda_workflow.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import json
  2. import os
  3. from datetime import datetime
  4. from pathlib import Path
  5. from requests_oauthlib import OAuth2Session
  6. import mazda_upload
  7. from mazda_archive import archive_files
  8. from mazda_export import convert_csv, export_orders
  9. def get_config():
  10. base_dir = str(Path.cwd())
  11. cfg = {
  12. "timestamp": "",
  13. "base_dir": base_dir,
  14. "data_dir": base_dir + "\\data",
  15. "export_dir": base_dir + "\\export\\Mazda",
  16. "temp_dir": base_dir + "\\export\\Mazda\\temp",
  17. }
  18. os.makedirs(cfg["temp_dir"], exist_ok=True)
  19. os.makedirs(cfg["data_dir"], exist_ok=True)
  20. os.makedirs(f"{cfg["export_dir"]}\\error", exist_ok=True)
  21. os.makedirs(f"{cfg["export_dir"]}\\success", exist_ok=True)
  22. os.makedirs(f"{cfg["base_dir"]}\\logs", exist_ok=True)
  23. os.makedirs(f"{cfg["base_dir"]}\\temp", exist_ok=True)
  24. return cfg
  25. def token_load(config) -> mazda_upload.Token:
  26. try:
  27. with open(config["base_dir"] + "\\temp\\token.json", "r") as frh:
  28. return json.load(frh)
  29. except FileNotFoundError:
  30. return None
  31. def submit_changes(config):
  32. oauth = OAuth2Session(mazda_upload.cfg_prod.client_id, token=token_load(config))
  33. if oauth.authorized:
  34. mazda_upload.upload_files(mazda_upload.cfg_prod, oauth, config["export_dir"])
  35. else:
  36. print("OAuth2 session not authorized. Please check your credentials.")
  37. return
  38. def main():
  39. config = get_config()
  40. dt = datetime.now()
  41. config["timestamp"] = dt.strftime("%Y%m%d_%H%M%S")
  42. print("Start: " + dt.strftime("%d.%m.%Y %H:%M:%S"))
  43. print("Export")
  44. data = convert_csv(
  45. config["data_dir"] + "\\Workshop_Order_Report.csv", config["temp_dir"] + "\\mazda_export.json", 2024, 1
  46. )
  47. export_orders(data, config["temp_dir"])
  48. print("Archivierung")
  49. archive_files(config["export_dir"])
  50. print("Upload")
  51. submit_changes(config)
  52. if __name__ == "__main__":
  53. main()