G-Scripts/getciclo.py
daniel.rodrigues bac5815940 att
2025-12-09 11:26:24 -03:00

92 lines
2.2 KiB
Python

import requests
from datetime import datetime
# ==============================
# 1) Buscar token dinâmico
# ==============================
def get_token():
url = "https://api.grupoginseng.com.br/api/tokens"
response = requests.get(url)
if response.status_code != 200:
raise Exception(f"Erro ao buscar token: {response.status_code} {response.text}")
data = response.json()
return data["data"][0]["token"]
# ==============================
# 2) Buscar cycles
# ==============================
def get_cycles(token):
url = "https://api-extranet.grupoboticario.digital/api/v2/cycles"
headers = {
"accept": "application/json, text/plain, */*",
"authorization": token,
"user-agent": "Mozilla/5.0"
}
response = requests.get(url, headers=headers)
return response.json()
# ==============================
# 3) Determinar ciclo atual formatado para cada marca
# ==============================
def ciclo_formatado_por_marca(cycles_json):
hoje = datetime.now()
ano = hoje.year
ignorar = ["Eudora", "VD Multimarca"] # Marcas excluídas
MAPA_NOMES = {
"O Boticário": "BOT",
"O.U.I": "OUI",
"Quem Disse Berenice": "QDB"
}
resultado = {}
for brand in cycles_json["data"]:
nome_marca = brand["brandName"]
# Pula marcas indesejadas
if nome_marca in ignorar:
continue
ciclo_formatado = None
for cycle in brand["cycles"]:
start = datetime.fromisoformat(cycle["startDate"])
end = datetime.fromisoformat(cycle["endDate"])
if cycle["isCurrent"] or (start <= hoje <= end):
ciclo_num = f"{cycle['number']:02d}"
ciclo_formatado = int(f"{ano}{ciclo_num}")
break
nome_final = MAPA_NOMES.get(nome_marca, nome_marca) # usa abreviação
resultado[nome_final] = ciclo_formatado
return resultado
# ==============================
# EXECUÇÃO
# ==============================
if __name__ == "__main__":
token = get_token()
cycles_json = get_cycles(token)
resultado = ciclo_formatado_por_marca(cycles_json)
print(resultado)