Files
zhiyin/zhiyin-app/src/config.ts
T

128 lines
3.4 KiB
TypeScript

const getApiBaseUrl = (): string => {
if (import.meta.env.VITE_API_BASE_URL) {
return import.meta.env.VITE_API_BASE_URL
}
return 'http://localhost:3006/api'
}
export const APP_NAME = import.meta.env.VITE_APP_NAME || 'AI磁场'
export const APP_CONFIG = {
APP_NAME,
API_BASE_URL: getApiBaseUrl(),
PAGES: {
INDEX: '/pages/index/index',
INTERVIEW: '/pages/interview/interview',
REPORT: '/pages/report/report',
RESUME: '/pages/resume/resume',
HISTORY: '/pages/history/history',
MEMBER: '/pages/member/member',
PROGRESS: '/pages/progress/progress',
CONTRIBUTE: '/pages/contribute/contribute',
INTERNSHIP: '/pages/internship/internship',
USER: '/pages/user/user',
LOGIN: '/pages/login/login',
ABOUT: '/pages/about/about',
},
STORAGE_KEYS: {
TOKEN: 'token',
USER_ID: 'userId',
RESUME: 'resume',
},
} as const
export const API_ENDPOINTS = {
USER: {
SEND_CODE: '/user/send-code',
LOGIN: '/user/login',
WX_LOGIN: '/user/wx-login',
INFO: '/user/info',
UPDATE: '/user/update',
USAGE: '/user/usage',
},
INTERVIEW: {
CREATE: '/interview/create',
ANSWER: (id: string) => `/interview/${id}/answer`,
COMPLETE: (id: string) => `/interview/${id}/complete`,
GET: (id: string) => `/interview/${id}`,
LIST: '/interview/list/all',
STATS: '/interview/stats/mine',
},
ANALYZE: {
DIAGNOSIS: '/analyze/diagnosis',
OPTIMIZE: '/analyze/optimize',
SKILLS_GAP: '/analyze/skills-gap',
},
RESUME: {
CREATE: '/resume/create',
LIST: '/resume/list',
GET: (id: string) => `/resume/${id}`,
DELETE: (id: string) => `/resume/${id}`,
},
PROGRESS: {
GET: '/progress',
STATS: '/progress/stats',
},
CONTRIBUTION: {
CREATE: '/contribution',
MY: '/contribution/my',
BANK: (company: string, position: string) => `/contribution/company/${company}/position/${position}`,
COMPANY: (company: string) => `/contribution/company/${company}`,
},
MEMBER: {
PLANS: '/member/plans',
STATUS: '/member/status',
PAY: '/member/pay',
SPRINT_DEDUCT: '/member/sprint/deduct',
},
DAILY_QUESTION: {
TODAY: '/daily-question',
BY_POSITION: (position: string) => `/daily-question/position/${position}`,
},
ADMIN: {
CHECK: '/admin/check',
OVERVIEW: '/admin/overview',
USERS: '/admin/users',
SET_VIP: '/admin/set-vip',
CONFIG: '/admin/config',
CONFIG_SAVE: '/admin/config/save',
PRICING: '/admin/pricing',
PRICING_SAVE: '/admin/pricing/save',
ORDERS: '/admin/orders',
ORDER_SYNC: '/admin/order/sync',
},
PAYMENT: {
CREATE: '/payment/create',
JSAPI: '/payment/jsapi',
QUERY: '/payment/query',
CHECK: (outTradeNo: string) => `/payment/check/${outTradeNo}`,
ACTIVATE: '/payment/activate',
},
TTS: {
SYNTHESIZE: '/tts/synthesize',
AUDIO: (hash: string) => `/tts/audio/${hash}`,
},
} as const
const PROD_API_HOST = import.meta.env.VITE_PROD_API_HOST || 'https://zhiyinwx.yzrcloud.cn'
const DEV_API_HOST = 'http://localhost:3006'
let API_HOST: string
// #ifdef H5
API_HOST = window.location.hostname !== 'localhost' && window.location.hostname !== '127.0.0.1'
? window.location.origin
: DEV_API_HOST
// #endif
// #ifdef MP-WEIXIN
API_HOST = PROD_API_HOST
// #endif
// #ifndef H5 && !MP-WEIXIN
API_HOST = PROD_API_HOST
// #endif
export function api(path: string): string {
return `${API_HOST}/api${path}`
}
export default APP_CONFIG