| | |
| | | import { http } from "./httpClient"; |
| | | import { AxiosResponse } from 'axios'; |
| | | import _ from "lodash"; |
| | | import AES from 'crypto-js/aes'; |
| | | |
| | | import { ConsultantLoginInfo } from "../models/ConsultantLoginInfo"; |
| | | import { LoginRequest } from "../models/loginRequest.model"; |
| | |
| | | |
| | | class LoginService { |
| | | /** 顧客登入-發送OTP **/ |
| | | async sendOtp(loginInfo: LoginRequest, verifyCode: string):Promise<OtpInfo> { |
| | | return http.post(`/otp/sendOtp/${verifyCode}`, loginInfo).then( res => res.data ); |
| | | async sendOtp(loginInfo: LoginRequest, verifyCode: string): Promise<OtpInfo> { |
| | | try { |
| | | const response = await http.post(`/otp/sendOtp/${verifyCode}`, loginInfo); |
| | | if (response !== null) { |
| | | return response.data; |
| | | } else { |
| | | throw new Error('http.post returned null-like value.'); |
| | | } |
| | | } catch (error) { |
| | | console.error('An error occurred while sending OTP:', error); |
| | | // 可以在此處處理錯誤或回傳預設值 |
| | | throw error; |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 顧客登入-驗證OTP |
| | | * @param loginVerify 包含驗證相關資訊的物件 |
| | | * @returns 回傳驗證成功後的Token |
| | | */ |
| | | async loginVerify(loginVerify: LoginVerify): Promise<LoginSuccessToken> { |
| | | try { |
| | | const response = await http.post('/otp/verify', loginVerify); |
| | | if (response !== null) { |
| | | return response.data; |
| | | } else { |
| | | throw new Error('http.post returned null-like value.'); |
| | | } |
| | | } catch (error) { |
| | | // 可以在此處處理錯誤或回傳預設值 |
| | | console.error('An error occurred while verifying OTP:', error); |
| | | throw error; |
| | | } |
| | | } |
| | | |
| | | /** 顧客登入-驗證OTP **/ |
| | | async loginVerify(loginVerify: LoginVerify):Promise<LoginSuccessToken>{ |
| | | return http.post('/otp/verify', loginVerify).then(res => res.data); |
| | | } |
| | | /** 顧客註冊 **/ |
| | | async register(registerInfo: RegisterInfo):Promise<LoginSuccessToken>{ |
| | | return http.post('/otp/register', registerInfo).then(res => res.data); |
| | | async register(registerInfo: RegisterInfo): Promise<LoginSuccessToken> { |
| | | try { |
| | | const response = await http.post('/otp/register', registerInfo); |
| | | if (response !== null) { |
| | | return response.data; |
| | | } else { |
| | | throw new Error('http.post returned null-like value.'); |
| | | } |
| | | } catch (error) { |
| | | console.error('An error occurred while registering:', error); |
| | | // 可以在此處處理錯誤或回傳預設值 |
| | | throw error; |
| | | } |
| | | } |
| | | |
| | | |
| | | /** 取得驗證碼圖片 **/ |
| | | async getImgOfVerification():Promise<string>{ |
| | |
| | | |
| | | /** 顧問登入 **/ |
| | | logInToConsultant(consultantDto:ConsultantLoginInfo, verificationCode: string):Promise<AxiosResponse<LoginSuccessToken>>{ |
| | | return http.post(`/eService/authenticate/${verificationCode}`,consultantDto); |
| | | const encryptPassword = AES.encrypt(consultantDto.password, 'PAM KEY').toString(); |
| | | return http.post(`/eService/authenticate/${verificationCode}`, { ...consultantDto, password: encryptPassword }); |
| | | } |
| | | } |
| | | |