import { Injectable, Logger } from '@nestjs/common';
import { DingtalkAuthService } from './dingtalk-auth.service';
import axios from 'axios';

@Injectable()
export class DingtalkUserService {
  private readonly logger = new Logger(DingtalkUserService.name);

  constructor(private authService: DingtalkAuthService) {}

  /**
   * 删除用户
   * 对应Python: DingtalkUtils.employee_deleteuser()
   */
  async deleteUser(userId: string): Promise<any> {
    const token = await this.authService.getAccessToken();

    try {
      const resp = await axios.post(
        'https://oapi.dingtalk.com/topapi/v2/user/delete',
        { userid: userId },
        { params: { access_token: token } },
      );

      this.logger.debug(`deleteUser: ${resp.data.errmsg}`);
      return resp.data;
    } catch (error: any) {
      if (error.response?.data?.errcode === 60121) {
        return { errcode: 60121 };
      }
      this.logger.error(`deleteUser Error: ${error.message}`);
      throw error;
    }
  }
}
