From 20b87b7eab9c600e2445548c4306ea1b8b37b275 Mon Sep 17 00:00:00 2001
From: HelenHuang <LinHuang@pollex.com.tw>
Date: 星期一, 06 十二月 2021 12:29:50 +0800
Subject: [PATCH] update#131467: [滿意度評分功能]-客戶進行滿意度評分API串接

---
 PAMapp/assets/ts/api/consultant.ts |  116 ++++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 69 insertions(+), 47 deletions(-)

diff --git a/PAMapp/assets/ts/api/consultant.ts b/PAMapp/assets/ts/api/consultant.ts
index 046cf4e..c45db96 100644
--- a/PAMapp/assets/ts/api/consultant.ts
+++ b/PAMapp/assets/ts/api/consultant.ts
@@ -2,6 +2,9 @@
 import { AxiosResponse } from 'axios';
 import { AppointmentDetail } from '../models/AppointmentDetail';
 import { ConsultantLoginInfo } from '../models/ConsultantLoginInfo';
+import _ from 'lodash';
+import { UserSetting } from '../models/account.model';
+import { Consultants } from '~/assets/ts/models/consultant.model';
 
 // 憿批恥��(TODO: OTP隤����� ���蝙�)
 export function login(user: any) {
@@ -77,18 +80,19 @@
     return service.delete('/consultant/favorite/'+agentId, {headers})
 }
 
-// 敹��Ⅳ蝬脣�
-export function getForgotPasswordLink():Promise<string>{
-    return new Promise((resolve, reject)=>{
-        resolve('https://www.google.com/');
-    })
+// �����Ⅳ����
+export function getImgOfVerification():Promise<string>{
+  return service.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}`;
+      return imgSrc;
+  });
 }
 
-// �����Ⅳ����
-export function getVerificationCodeImg():Promise<string>{
-    return new Promise((resolve, reject)=>{
-        resolve('');
-    })
+// 撽�Ⅳ 撽��
+export function getVerificationStatus(imgCode:string):Promise<AxiosResponse<boolean>>{
+  return service.get('/login/validate/verify_img_code/'+imgCode);
 }
 
 // 憿批��
@@ -103,51 +107,64 @@
     }
     return service.get('/appointment/getDetail/'+apointmentId, {headers})
 }
-export interface Consultants {
-    agentNo: string,
-    name: string,
-    img: string,
-    new: boolean,
-    avgScore: number,
-    expertise: string[],
-    updateTime: Date,
-    seniority: string,
-    contactStatus?: string;
-    latestAppointmentId: number;
-    role: string;
-    image?: string;
-    expertises?: string;
+
+//���蝙��董�����
+export function getUserAccountSetting() : Promise<UserSetting> {
+    const headers = {
+        Authorization: 'Bearer ' + localStorage.getItem('id_token')
+    }
+    return service.get<UserSetting>('/customer/info', {headers}).then(res => res.data);
+}
+
+//��雿輻�董�����
+export function updateAccountSetting(params: any) : any {
+    const headers = {
+        Authorization: 'Bearer ' + localStorage.getItem('id_token')
+    }
+    return service.put('/customer/info', params ,{headers}).then(res => res.data);
+}
+
+//摰X�脰�遛��漲閰��
+
+export function userReviewsConsultants(data: UserReviewsConsultantsParams) {
+    const headers = {
+        Authorization: 'Bearer ' + localStorage.getItem('id_token')
+    }
+    return service.post('/satisfaction/create', data ,{headers});
 }
 
 export interface FastQueryParams {
-    gender: string,
+    gender             : string,
     communicationStyles: string[],
-    avgScore: number,
-    status: string
+    avgScore           : number,
+    status             : string
 }
 
 export interface AppointmentRequests {
-    phone:string,
-    email:string,
-    contactType:string,
-    gender:string,
-    age:string,
-    job:string,
-    requirement:string,
-    hopeContactTime:string[],
-    otherRequirement:string,
-    agentNo:string,
+    phone          : string,
+    email          : string,
+    contactType    : string,
+    gender         : string,
+    age            : string,
+    job            : string,
+    requirement    : string[],
+    hopeContactTime: ContactTime[],
+    agentNo        : string,
+}
+export interface ContactTime {
+  selectWeekOptions : string[],
+  selectTimesOptions: string[]
 }
 export interface AppointmentParams {
-    phone?: string,
-    email?: string,
-    contactType: string,
-    gender?: string,
-    age?: string,
-    job?: string,
-    requirement: string,
-    hopeContactTime?: string,
-    agentNo: string
+    phone          : string,
+    email          : string,
+    contactType    : string,
+    gender         : string,
+    age            : string,
+    job            : string,
+    requirement    : string,
+    hopeContactTime: string,
+    agentNo        : string
 }
 export interface StrictQueryParams{
     gender:           string;
@@ -172,7 +189,7 @@
     new:           boolean;
 }
 export interface RequestOfLoginSuccess{
-    id_token:string;
+  id_token: string;
 }
 
 export interface LoginRequest {
@@ -208,4 +225,9 @@
     name: string,
     /** "SMS"嚗tp������"EMAIL":Otp�email */
     contactType: string
+}
+
+export interface UserReviewsConsultantsParams{
+    appointmentId:number,
+    score:number,
 }
\ No newline at end of file

--
Gitblit v1.9.3