
import { GoogleLoginErrorCode, GoogleLoginFail } from "./interface.uts"
export const UniErrorSubject = 'uni-google-login';


/**
 * 错误信息
 * @UniError
 */
export const GoogleLoginErrors : Map<GoogleLoginErrorCode, string> = new Map([
  /**
   * 错误码及对应的错误信息
   */
  [9010001, '系统环境错误，请检查application/activity状态'],
  [9010002, '用户参数配置错误，重点检查serverClientId是否正确'],
  [9010003, '暂不支持的登录凭据'],
  [9010004, '无法找到对应的凭据，可能是应用签名/包名不匹配或者与Google连接失败'],
  [9010005, '登录组件缺失，请检查系统是否正确安装GMS'],
  [9010099, '其他未知错误']
]);


/**
 * 错误对象实现
 */
export class GoogleLoginFailImpl extends UniError implements GoogleLoginFail {

  /**
   * 错误对象构造函数
   */
  constructor(errCode : GoogleLoginErrorCode) {
    super();
    this.errSubject = UniErrorSubject;
    this.errCode = errCode;
    this.errMsg = GoogleLoginErrors.get(errCode) ?? "";
  }
}
