import axios from 'axios';
import { getStoreValue } from './store.js';
import logger from './utils/logger'

let difyRetryRequesTimer = null;

export async function difyRetryRequestTimer() {
  // 如果定时器已经存在，则不再重复启动
  if (difyRetryRequesTimer !== null) {
    logger.info("定时器已存在，不再重复启动。");
    return;
  }

  // 启动定时器
  difyRetryRequesTimer = setInterval(async () => {
    try {
      // 从 store 中获取必要的数据
      const difySite = getStoreValue("difySite");
      const accessToken = getStoreValue("dify_access_token");

      // 检查必要的参数是否存在
      if (!difySite || !accessToken) {
        console.error("缺少必要的参数：difySite 或 dify_access_token");
        return;
      }

      // 构造请求 URL 和 Headers
      const url = `${difySite}/console/api/workspaces/current`;
      const response = await axios.get(url, {
        headers: {
          'Authorization': `Bearer ${accessToken}`,
          'Content-Type': 'application/json'
        }
      });

      // 打印成功响应
      logger.info("======================== 请求成功 ========================");
      logger.info("difySite:", difySite);
      logger.info("dify_access_token:", accessToken);
      logger.info("响应数据:", response.data);

    } catch (error) {
      // 捕获并处理错误
      console.error("======================== 请求失败 ========================");
      console.error("错误信息:", error.message || error);
    }
  }, 5000); // 每 5 秒执行一次
}

export function stopDifyRetryRequestTimer() {
  if (difyRetryRequesTimer !== null) {
    clearInterval(difyRetryRequesTimer);
    difyRetryRequesTimer = null;
    logger.info("定时器已停止。");
  }
}
