From 1b57ac5bea14a750b5ddf961c3a8510da18f3637 Mon Sep 17 00:00:00 2001
From: 劉鈞霖 <benson@gmail.com>
Date: 星期二, 23 十一月 2021 12:07:02 +0800
Subject: [PATCH] [ Update ] 串接顧問登入 完成 50% (驗證碼以及忘記密碼 尚未 ) 、 新增 api 錯誤訊息 。

---
 PAMapp/assets/ts/api/consultant.ts |  144 ++++++++++++++++++++++++++++++++++++------------
 1 files changed, 108 insertions(+), 36 deletions(-)

diff --git a/PAMapp/assets/ts/api/consultant.ts b/PAMapp/assets/ts/api/consultant.ts
index cfdfdb7..d0299bb 100644
--- a/PAMapp/assets/ts/api/consultant.ts
+++ b/PAMapp/assets/ts/api/consultant.ts
@@ -1,27 +1,7 @@
-import axios from 'axios';
-import { AxiosRequestConfig, AxiosError, AxiosResponse } from 'axios';
-import { MessageBox } from 'element-ui';
-import { functionsIn } from 'lodash';
-import Router from 'vue-router';
-
-export const service = axios.create({
-    baseURL: 'http://localhost:8080/api',
-    headers: {
-        Authorization: 'Bearer ' + localStorage.getItem('id_token')
-    }
-})
-
-service.interceptors.request.use(function (config: AxiosRequestConfig) {
-    return config;
-}, function (error: AxiosError) {
-    return Promise.reject(error);
-});
-
-service.interceptors.response.use(function (response: AxiosResponse) {
-    return response;
-}, function (error: AxiosError) {
-    return Promise.reject(error);
-});
+import { service } from '~/assets/ts/api/share';
+import { AxiosResponse } from 'axios';
+import { AppointmentDetail } from '../models/AppointmentDetail';
+import { ConsultantLoginInfo } from '../models/ConsultantLoginInfo';
 
 // 憿批恥��(TODO: OTP隤����� ���蝙�)
 export function login(user: any) {
@@ -30,12 +10,17 @@
 
 // ��靽憿批��
 export function recommend() {
-    return service.get('/consultant/recommend')
+    return service.get<Consultants[]>('/consultant/recommend')
+            .then(res => res.data);
 }
 
 // ���“���
 export function getFavoriteConsultant() {
-    return service.get('/consultant/favorite');
+    const headers = {
+        Authorization: 'Bearer ' + localStorage.getItem('id_token')
+    }
+    return service.get<Consultants[]>('/consultant/favorite', {headers})
+            .then(res => res.data);
 }
 
 // 敹恍�祟�
@@ -43,14 +28,65 @@
     return service.post('/consultant/fastQuery', data)
 }
 
+// ������
+export function strictQuery(data:StrictQueryParams):Promise<AxiosResponse<AgentOfStrictQuery[]>>{
+    return service.post('/consultant/strictQuery', data)
+}
+
 // ��憿批��
 export function addFavoriteConsultant(agentNoList: string[]) {
-    return service.post('/consultant/favorite', {agentNoList})
+    const headers = {
+        Authorization: 'Bearer ' + localStorage.getItem('id_token')
+    }
+    return service.post('/consultant/favorite', {agentNoList}, {headers})
 }
 
 // ����岷���
 export function appointmentDemand(data: AppointmentParams) {
-    return service.post('/appointment/customer/create', data)
+    const headers = {
+        Authorization: 'Bearer ' + localStorage.getItem('id_token')
+    }
+    return service.post('/appointment/customer/create', data, {headers})
+}
+
+//憿批�底蝝啗���
+export function getConsultantDetail(agentNo:string){
+    return service.get('/consultant/detail', {params:{agentNo:agentNo}})
+}
+
+// 蝘駁憿批��
+export function deleteConsultant(agentId: string) {
+    const headers = {
+        Authorization: 'Bearer ' + localStorage.getItem('id_token')
+    }
+    return service.delete('/consultant/favorite/'+agentId, {headers})
+}
+
+// 敹��Ⅳ蝬脣�
+export function getForgotPasswordLink():Promise<string>{
+    return new Promise((resolve, reject)=>{
+        resolve('https://www.google.com/');
+    })
+}
+
+// �����Ⅳ����
+export function getVerificationCodeImg():Promise<string>{
+    return new Promise((resolve, reject)=>{
+        resolve('');
+    })
+}
+
+// 憿批��
+export function logInToConsultant(consultantDto:ConsultantLoginInfo):Promise<AxiosResponse<RequestOfLoginSuccess>>{
+    return service.post('/eService/authenticate',consultantDto);
+}
+
+// �����蝝啁�
+export function getAppointmentDetail(apointmentId: number):Promise<AxiosResponse<AppointmentDetail>> {
+    const headers = {
+        Authorization: 'Bearer ' + localStorage.getItem('id_token')
+    }
+    return service.get('/appointment/getDetail/'+apointmentId, {headers})
 }
 export interface Consultants {
     agentNo: string,
@@ -62,6 +98,10 @@
     updateTime: Date,
     seniority: string,
     contactStatus?: string;
+    latestAppointmentId: number;
+    role: string;
+    image?: string;
+    expertises?: string;
 }
 
 export interface FastQueryParams {
@@ -71,15 +111,47 @@
     status: string
 }
 
+export interface AppointmentRequests {
+  connectDevices: any[],
+  hopeContactTime: any,
+  email?: string,
+  job?: string,
+  otherJob?: string,
+  gender?: string,
+  myQuestion: any[],
+  age?: string,
+}
 export interface AppointmentParams {
-    phone: string,
-    email: string,
+    phone?: string,
+    email?: string,
     contactType: string,
-    gender: string,
-    age: string,
-    job: string,
+    gender?: string,
+    age?: string,
+    job?: string,
     requirement: string,
-    hopeContactTime: string,
-    otherRequirement: string,
+    hopeContactTime?: string,
     agentNo: string
-}
\ No newline at end of file
+}
+export interface StrictQueryParams{
+    gender:           string;
+    avgScore:         number;
+    status:           string; //phase 1 disable
+    area:             string;
+    requirements:     string[];
+    otherRequirement: string;
+    seniority:        string;
+    popularTags:      string[];
+    otherPopularTags: string;
+}
+export interface AgentOfStrictQuery {
+    agentNo:       string;
+    name:          string;
+    img:           string;
+    expertise:     string[];
+    avgScore:      number;
+    contactStatus: null;
+    updateTime:    null;
+    seniority:     string;
+    new:           boolean;
+}
+

--
Gitblit v1.8.0