保誠-保戶業務員媒合平台
PAMapp/assets/ts/api/consultant.ts
@@ -1,54 +1,45 @@
import { service } from '~/assets/ts/api/share';
import { AxiosResponse } from 'axios';
import { AppointmentDetail } from '../models/AppointmentDetail';
import { ConsultantLoginInfo } from '../models/ConsultantLoginInfo';
import _ from 'lodash';
import { UserSetting } from '../models/account.model';
import { Consultant } from '~/assets/ts/models/consultant.model';
import { http } from '../services/httpClient';
// 顧客登入(TODO: OTP認證開發前 暫時使用)
export function login(user: any) {
    return service.post('/authenticate', user)
    return http.post('/authenticate', user)
}
// 顧客登入-發送OTP
export function sendOtp(loginInfo: LoginRequest) {
    return service.post<OtpInfo>('/otp/sendOtp', loginInfo).then(res => res.data)
    return http.post<OtpInfo>('/otp/sendOtp', loginInfo).then(res => res.data)
}
// 顧客登入-驗證otp並登入
export function loginVerify(loginVerify: LoginVerify) {
    return service.post('/otp/verify', loginVerify)
    return http.post('/otp/verify', loginVerify)
}
// 顧客註冊
export function register(registerInfo: RegisterInfo) {
    return service.post('/otp/register', registerInfo)
    return http.post('/otp/register', registerInfo)
}
// 推薦保險顧問
export function recommend() {
    return service.get<Consultant[]>('/consultant/recommend')
            .then(res => res.data);
}
// 我的顧問清單
export function getFavoriteConsultant() {
    const headers = {
        Authorization: 'Bearer ' + localStorage.getItem('id_token')
    }
    return service.get<Consultant[]>('/consultant/favorite', {headers})
    return http.get<Consultant[]>('/consultant/recommend')
            .then(res => res.data);
}
// 快速篩選
export function fastQuery(data: FastQueryParams) {
    return service.post('/consultant/fastQuery', data)
    return http.post('/consultant/fastQuery', data)
}
// 嚴選配對
export function strictQuery(data:StrictQueryParams):Promise<AxiosResponse<AgentOfStrictQuery[]>>{
    return service.post('/consultant/strictQuery', data)
    return http.post('/consultant/strictQuery', data)
}
// 加入顧問
@@ -56,7 +47,7 @@
    const headers = {
        Authorization: 'Bearer ' + localStorage.getItem('id_token')
    }
    return service.post('/consultant/favorite', {agentNoList}, {headers})
    return http.post('/consultant/favorite', {agentNoList}, {headers})
}
// 預約前詢問
@@ -64,12 +55,12 @@
    const headers = {
        Authorization: 'Bearer ' + localStorage.getItem('id_token')
    }
    return service.post('/appointment/customer/create', data, {headers})
    return http.post('/appointment/customer/create', data, {headers})
}
//顧問詳細資訊
export function getConsultantDetail(agentNo:string){
    return service.get('/consultant/detail', {params:{agentNo:agentNo}})
    return http.get('/consultant/detail', {params:{agentNo:agentNo}})
}
// 移除顧問
@@ -77,12 +68,12 @@
    const headers = {
        Authorization: 'Bearer ' + localStorage.getItem('id_token')
    }
    return service.delete('/consultant/favorite/'+agentId, {headers})
    return http.delete('/consultant/favorite/'+agentId, {headers})
}
// 取得驗證碼圖片
export function getImgOfVerification():Promise<string>{
  return service.get('/login/validate/get_img_code',{ responseType : 'arraybuffer' })
  return http.get('/login/validate/get_img_code',{ responseType : 'arraybuffer' })
    .then(response=>{
      const toBase64 = window.btoa(_.reduce(new Uint8Array(response.data),(data,byte)=>data + String.fromCharCode(byte),''));
      const imgSrc = `data:image/jpeg;base64,${toBase64}`;
@@ -92,12 +83,12 @@
// 驗證碼 驗證
export function getVerificationStatus(imgCode:string):Promise<AxiosResponse<boolean>>{
  return service.get('/login/validate/verify_img_code/'+imgCode);
  return http.get('/login/validate/verify_img_code/'+imgCode);
}
// 顧問登入
export function logInToConsultant(consultantDto:ConsultantLoginInfo):Promise<AxiosResponse<RequestOfLoginSuccess>>{
    return service.post('/eService/authenticate',consultantDto);
    return http.post('/eService/authenticate',consultantDto);
}
// 取得預約單細節
@@ -105,7 +96,7 @@
    const headers = {
        Authorization: 'Bearer ' + localStorage.getItem('id_token')
    }
    return service.get('/appointment/getDetail/'+apointmentId, {headers})
    return http.get('/appointment/getDetail/'+apointmentId, {headers})
}
//取得使用者帳號資訊
@@ -113,7 +104,7 @@
    const headers = {
        Authorization: 'Bearer ' + localStorage.getItem('id_token')
    }
    return service.get<UserSetting>('/customer/info', {headers}).then(res => res.data);
    return http.get<UserSetting>('/customer/info', {headers}).then(res => res.data);
}
//更新使用者帳號資訊
@@ -121,7 +112,7 @@
    const headers = {
        Authorization: 'Bearer ' + localStorage.getItem('id_token')
    }
    return service.put('/customer/info', params ,{headers}).then(res => res.data);
    return http.put('/customer/info', params ,{headers}).then(res => res.data);
}
//客戶進行滿意度評分
@@ -130,7 +121,7 @@
    const headers = {
        Authorization: 'Bearer ' + localStorage.getItem('id_token')
    }
    return service.post('/satisfaction/create', data ,{headers});
    return http.post('/satisfaction/create', data ,{headers});
}
// 取消預約
@@ -138,7 +129,7 @@
    const headers = {
        Authorization: 'Bearer ' + localStorage.getItem('id_token')
    }
    return service.delete('/appointment/'+appointment ,{headers});
    return http.delete('/appointment/'+appointment ,{headers});
}
// 編輯預約
@@ -146,7 +137,7 @@
    const headers = {
        Authorization: 'Bearer ' + localStorage.getItem('id_token')
    }
    return service.put('/appointment', editAppointmentParams, {headers});
    return http.put('/appointment', editAppointmentParams, {headers});
}
export interface FastQueryParams {