From 1076fdc06d40646d1d6f125a3ce4d43cf4eac673 Mon Sep 17 00:00:00 2001 From: HelenHuang <LinHuang@pollex.com.tw> Date: 星期一, 06 十二月 2021 15:52:01 +0800 Subject: [PATCH] rename: change Consultants model to Consultant --- PAMapp/assets/ts/api/consultant.ts | 248 +++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 198 insertions(+), 50 deletions(-) diff --git a/PAMapp/assets/ts/api/consultant.ts b/PAMapp/assets/ts/api/consultant.ts index cfdfdb7..08935d3 100644 --- a/PAMapp/assets/ts/api/consultant.ts +++ b/PAMapp/assets/ts/api/consultant.ts @@ -1,41 +1,44 @@ -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'; +import _ from 'lodash'; +import { UserSetting } from '../models/account.model'; +import { Consultant } from '~/assets/ts/models/consultant.model'; // 憿批恥��(TODO: OTP隤����� ���蝙�) export function login(user: any) { return service.post('/authenticate', user) } +// 憿批恥��-��TP +export function sendOtp(loginInfo: LoginRequest) { + return service.post<OtpInfo>('/otp/sendOtp', loginInfo).then(res => res.data) +} + +// 憿批恥��-撽�tp銝衣� +export function loginVerify(loginVerify: LoginVerify) { + return service.post('/otp/verify', loginVerify) +} + +// 憿批恥閮餃�� +export function register(registerInfo: RegisterInfo) { + return service.post('/otp/register', registerInfo) +} + // ��靽憿批�� export function recommend() { - return service.get('/consultant/recommend') + return service.get<Consultant[]>('/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<Consultant[]>('/consultant/favorite', {headers}) + .then(res => res.data); } // 敹恍�祟� @@ -43,43 +46,188 @@ 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 interface Consultants { - agentNo: string, - name: string, - img: string, - new: boolean, - avgScore: number, - expertise: string[], - updateTime: Date, - seniority: string, - contactStatus?: string; + +//憿批�底蝝啗��� +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 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 getVerificationStatus(imgCode:string):Promise<AxiosResponse<boolean>>{ + return service.get('/login/validate/verify_img_code/'+imgCode); +} + +// 憿批�� +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 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: 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, + phone : string, + email : string, + contactType : string, + gender : string, + age : string, + job : string, + requirement : string, hopeContactTime: string, - otherRequirement: string, - agentNo: string + agentNo : string +} +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; +} +export interface RequestOfLoginSuccess{ + id_token: string; +} + +export interface LoginRequest { + /** "SMS"=�����"EMAIL"=email */ + loginType: string, + /** �loginType憛俟MS��府甈葆�����MAIL��葆��隞嗡縑蝞� */ + account: string, +} + +export interface OtpInfo { + /** ��撣嗅otp隤��� */ + indexKey: string, + /** Otp�������� */ + success: boolean, + failCode: string, + failReason: string, +} + +export interface LoginVerify { + /** �撣嗅����mail */ + account: string, + /** �otp��pi���ndex key */ + indexKey: string, + /** �����縑蝞望�����Ⅳ */ + otpCode: string +} + +export interface RegisterInfo { + phone?: string, + email?: string, + indexKey: string, + otpCode: string, + 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