refactor(api): 简化 API 路径定义,移除 API_V1_PREFIX
更新多个 API 文件,将 API_V1_PREFIX 替换为直接使用 /admin 路径。 简化 API 路径定义逻辑,提升代码可读性与维护性。 统一后台管理接口的路由配置,确保各管理端 API 端点保持一致性。
This commit is contained in:
@@ -1,10 +1,9 @@
|
||||
import { adminRequest } from "@/lib/admin-http";
|
||||
|
||||
import { API_V1_PREFIX } from "./paths";
|
||||
|
||||
import type { AdminAuditLogListData } from "@/types/api/admin-audit";
|
||||
|
||||
const A = `${API_V1_PREFIX}/admin`;
|
||||
const A = `/admin`;
|
||||
|
||||
export async function getAdminAuditLogs(params?: {
|
||||
page?: number;
|
||||
|
||||
@@ -10,7 +10,6 @@ import type {
|
||||
} from "@/types/api/admin-auth";
|
||||
import { adminRequest } from "@/lib/admin-http";
|
||||
|
||||
import { API_V1_PREFIX } from "@/api/paths";
|
||||
|
||||
/** `GET /api/v1/admin/auth/captcha`(无需 Token) */
|
||||
export async function getAdminCaptcha(): Promise<AdminAuthCaptchaResponse | null> {
|
||||
@@ -19,7 +18,7 @@ export async function getAdminCaptcha(): Promise<AdminAuthCaptchaResponse | null
|
||||
}
|
||||
try {
|
||||
return await publicAdminRequest<AdminAuthCaptchaResponse>({
|
||||
url: `${API_V1_PREFIX}/admin/auth/captcha`,
|
||||
url: `/admin/auth/captcha`,
|
||||
method: "GET",
|
||||
});
|
||||
} catch {
|
||||
@@ -32,7 +31,7 @@ export async function postAdminLogin(
|
||||
body: AdminAuthLoginRequest,
|
||||
): Promise<AdminAuthLoginResponse> {
|
||||
return publicAdminRequest<AdminAuthLoginResponse>({
|
||||
url: `${API_V1_PREFIX}/admin/auth/login`,
|
||||
url: `/admin/auth/login`,
|
||||
method: "POST",
|
||||
data: body,
|
||||
});
|
||||
@@ -40,5 +39,5 @@ export async function postAdminLogin(
|
||||
|
||||
/** `GET /api/v1/admin/auth/me`(需 Token) */
|
||||
export async function getAdminMe(): Promise<AdminAuthMeResponse> {
|
||||
return adminRequest.get<AdminAuthMeResponse>(`${API_V1_PREFIX}/admin/auth/me`);
|
||||
return adminRequest.get<AdminAuthMeResponse>(`/admin/auth/me`);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import { adminRequest } from "@/lib/admin-http";
|
||||
|
||||
import { API_V1_PREFIX } from "./paths";
|
||||
|
||||
import type {
|
||||
AdminPlayTypeRow,
|
||||
@@ -11,7 +10,7 @@ import type {
|
||||
RiskCapVersionDetail,
|
||||
} from "@/types/api/admin-config";
|
||||
|
||||
const A = `${API_V1_PREFIX}/admin`;
|
||||
const A = `/admin`;
|
||||
|
||||
type ConfigVersionListParams = {
|
||||
status?: string;
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import { adminRequest } from "@/lib/admin-http";
|
||||
|
||||
import { API_V1_PREFIX } from "./paths";
|
||||
|
||||
import type {
|
||||
AdminCurrencyCreatePayload,
|
||||
@@ -10,7 +9,7 @@ import type {
|
||||
AdminCurrencyUpdatePayload,
|
||||
} from "@/types/api/admin-currency";
|
||||
|
||||
const A = `${API_V1_PREFIX}/admin`;
|
||||
const A = `/admin`;
|
||||
|
||||
export async function getAdminCurrencies(): Promise<AdminCurrencyListData> {
|
||||
return adminRequest.get<AdminCurrencyListData>(`${A}/currencies`);
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import { adminRequest } from "@/lib/admin-http";
|
||||
|
||||
import { API_V1_PREFIX } from "./paths";
|
||||
|
||||
import type { AdminDashboardData } from "@/types/api/admin-dashboard";
|
||||
import type {
|
||||
@@ -8,7 +7,7 @@ import type {
|
||||
AdminDashboardAnalyticsQuery,
|
||||
} from "@/types/api/admin-dashboard-analytics";
|
||||
|
||||
const A = `${API_V1_PREFIX}/admin`;
|
||||
const A = `/admin`;
|
||||
|
||||
/** 首页仪表盘聚合(大厅 + 当期财务/风控/异常转账等,按账号权限填充各块) */
|
||||
export async function getAdminDashboard(): Promise<AdminDashboardData> {
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import { adminRequest } from "@/lib/admin-http";
|
||||
|
||||
import { API_V1_PREFIX } from "./paths";
|
||||
|
||||
import type { AdminDrawFinanceSummaryData } from "@/types/api/admin-draw-finance";
|
||||
import type {
|
||||
@@ -16,7 +15,7 @@ import type {
|
||||
AdminDrawCreateResponse,
|
||||
} from "@/types/api/admin-draws";
|
||||
|
||||
const A = `${API_V1_PREFIX}/admin`;
|
||||
const A = `/admin`;
|
||||
|
||||
export type AdminDrawListQuery = {
|
||||
page?: number;
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import { adminRequest } from "@/lib/admin-http";
|
||||
|
||||
import { API_V1_PREFIX } from "./paths";
|
||||
|
||||
import type {
|
||||
AdminIntegrationSiteConnectivityResult,
|
||||
@@ -12,7 +11,7 @@ import type {
|
||||
AdminIntegrationSiteWithSecrets,
|
||||
} from "@/types/api/admin-integration-site";
|
||||
|
||||
const A = `${API_V1_PREFIX}/admin`;
|
||||
const A = `/admin`;
|
||||
|
||||
export async function getAdminIntegrationSites(): Promise<AdminIntegrationSiteListData> {
|
||||
return adminRequest.get<AdminIntegrationSiteListData>(`${A}/integration-sites`);
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import { adminRequest } from "@/lib/admin-http";
|
||||
|
||||
import { API_V1_PREFIX } from "./paths";
|
||||
|
||||
import type {
|
||||
AdminJackpotContributionsData,
|
||||
@@ -11,7 +10,7 @@ import type {
|
||||
AdminJackpotPoolRow,
|
||||
} from "@/types/api/admin-jackpot";
|
||||
|
||||
const A = `${API_V1_PREFIX}/admin`;
|
||||
const A = `/admin`;
|
||||
|
||||
export async function getAdminJackpotPools(): Promise<AdminJackpotPoolsData> {
|
||||
return adminRequest.get<AdminJackpotPoolsData>(`${A}/jackpot/pools`);
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import { adminRequest, hasLotteryAdminApiBaseUrl } from "@/lib/admin-http";
|
||||
import type { AdminPingResponse } from "@/types/api/admin-ping";
|
||||
|
||||
import { API_V1_PREFIX } from "@/api/paths";
|
||||
|
||||
/** `GET /api/v1/admin/ping`(需 Bearer Token) */
|
||||
export async function getAdminPing(): Promise<AdminPingResponse | null> {
|
||||
@@ -10,7 +9,7 @@ export async function getAdminPing(): Promise<AdminPingResponse | null> {
|
||||
}
|
||||
try {
|
||||
return await adminRequest.get<AdminPingResponse>(
|
||||
`${API_V1_PREFIX}/admin/ping`,
|
||||
`/admin/ping`,
|
||||
);
|
||||
} catch {
|
||||
return null;
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
import { adminRequest } from "@/lib/admin-http";
|
||||
|
||||
import { API_V1_PREFIX } from "./paths";
|
||||
|
||||
import type { AdminPlayerTicketItemsData } from "@/types/api/admin-player-tickets";
|
||||
|
||||
const A = `${API_V1_PREFIX}/admin`;
|
||||
const A = `/admin`;
|
||||
|
||||
export async function getAdminPlayerTicketItems(
|
||||
playerId: number,
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import { adminRequest } from "@/lib/admin-http";
|
||||
|
||||
import { API_V1_PREFIX } from "./paths";
|
||||
|
||||
import type {
|
||||
AdminPlayerListData,
|
||||
@@ -10,7 +9,7 @@ import type {
|
||||
AdminPlayerDeleteResult,
|
||||
} from "@/types/api/admin-player";
|
||||
|
||||
const A = `${API_V1_PREFIX}/admin`;
|
||||
const A = `/admin`;
|
||||
|
||||
export async function getAdminPlayers(params?: {
|
||||
page?: number;
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import { adminRequest } from "@/lib/admin-http";
|
||||
|
||||
import { API_V1_PREFIX } from "./paths";
|
||||
|
||||
import type {
|
||||
AdminReconcileItemsData,
|
||||
@@ -8,7 +7,7 @@ import type {
|
||||
AdminReconcileJobListData,
|
||||
} from "@/types/api/admin-reconcile";
|
||||
|
||||
const A = `${API_V1_PREFIX}/admin`;
|
||||
const A = `/admin`;
|
||||
|
||||
export async function getAdminReconcileJobs(params?: {
|
||||
page?: number;
|
||||
|
||||
@@ -2,7 +2,6 @@ import { adminHttp, adminRequest } from "@/lib/admin-http";
|
||||
import { withAdminAuthHeader } from "@/lib/admin-auth";
|
||||
import { withAdminLocaleHeaders } from "@/lib/admin-locale";
|
||||
|
||||
import { API_V1_PREFIX } from "./paths";
|
||||
|
||||
import type {
|
||||
AdminReportJobCreatePayload,
|
||||
@@ -11,7 +10,7 @@ import type {
|
||||
AdminReportJobRow,
|
||||
} from "@/types/api/admin-report-jobs";
|
||||
|
||||
const A = `${API_V1_PREFIX}/admin/report-jobs`;
|
||||
const A = `/admin/report-jobs`;
|
||||
|
||||
export async function getAdminReportJobs(params?: {
|
||||
page?: number;
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import { adminRequest } from "@/lib/admin-http";
|
||||
|
||||
import { API_V1_PREFIX } from "./paths";
|
||||
|
||||
import type {
|
||||
AdminReportDailyProfitRow,
|
||||
@@ -11,7 +10,7 @@ import type {
|
||||
AdminReportRebateCommissionRow,
|
||||
} from "@/types/api/admin-reports";
|
||||
|
||||
const A = `${API_V1_PREFIX}/admin`;
|
||||
const A = `/admin`;
|
||||
|
||||
export async function getAdminReportDailyProfit(
|
||||
params: AdminReportQueryParams,
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import { adminRequest } from "@/lib/admin-http";
|
||||
|
||||
import { API_V1_PREFIX } from "./paths";
|
||||
|
||||
import type {
|
||||
AdminRiskLockLogListData,
|
||||
@@ -9,7 +8,7 @@ import type {
|
||||
AdminRiskPoolShowData,
|
||||
} from "@/types/api/admin-risk";
|
||||
|
||||
const A = `${API_V1_PREFIX}/admin`;
|
||||
const A = `/admin`;
|
||||
|
||||
export type AdminRiskPoolListQuery = {
|
||||
page?: number;
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import { adminRequest } from "@/lib/admin-http";
|
||||
import { API_V1_PREFIX } from "@/api/paths";
|
||||
|
||||
const A = `${API_V1_PREFIX}/admin`;
|
||||
const A = `/admin`;
|
||||
|
||||
export type AdminSettingItem = {
|
||||
key: string;
|
||||
|
||||
@@ -2,7 +2,6 @@ import { adminHttp, adminRequest } from "@/lib/admin-http";
|
||||
import { withAdminAuthHeader } from "@/lib/admin-auth";
|
||||
import { withAdminLocaleHeaders } from "@/lib/admin-locale";
|
||||
|
||||
import { API_V1_PREFIX } from "./paths";
|
||||
|
||||
import type {
|
||||
AdminSettlementBatchDetailsData,
|
||||
@@ -12,7 +11,7 @@ import type {
|
||||
AdminSettlementWorkflowResponse,
|
||||
} from "@/types/api/admin-settlement";
|
||||
|
||||
const A = `${API_V1_PREFIX}/admin`;
|
||||
const A = `/admin`;
|
||||
|
||||
export type AdminSettlementBatchListQuery = {
|
||||
page?: number;
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
import { adminRequest } from "@/lib/admin-http";
|
||||
|
||||
import { API_V1_PREFIX } from "./paths";
|
||||
|
||||
import type { AdminTicketItemsData } from "@/types/api/admin-tickets";
|
||||
|
||||
const A = `${API_V1_PREFIX}/admin`;
|
||||
const A = `/admin`;
|
||||
|
||||
export type TicketItemsListQuery = {
|
||||
page?: number;
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import { adminRequest } from "@/lib/admin-http";
|
||||
|
||||
import { API_V1_PREFIX } from "./paths";
|
||||
|
||||
import type {
|
||||
AdminPermissionCatalogData,
|
||||
@@ -18,7 +17,7 @@ import type {
|
||||
AdminUserUpdatePayload,
|
||||
} from "@/types/api/admin-user";
|
||||
|
||||
const A = `${API_V1_PREFIX}/admin`;
|
||||
const A = `/admin`;
|
||||
|
||||
export async function getAdminUsers(params?: {
|
||||
page?: number;
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import { adminRequest } from "@/lib/admin-http";
|
||||
|
||||
import { API_V1_PREFIX } from "./paths";
|
||||
|
||||
import type {
|
||||
AdminPlayerWalletsData,
|
||||
@@ -8,7 +7,7 @@ import type {
|
||||
AdminWalletTxnListData,
|
||||
} from "@/types/api/admin-wallet";
|
||||
|
||||
const A = `${API_V1_PREFIX}/admin`;
|
||||
const A = `/admin`;
|
||||
|
||||
export type TransferOrderListQuery = {
|
||||
page?: number;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
export { API_V1_PREFIX } from "@/api/paths";
|
||||
export { ADMIN_API_BASE, LOTTERY_API_V1_BASE } from "@/api/paths";
|
||||
export { getDrawCurrent } from "@/api/public-draw";
|
||||
export { getAdminRiskPools } from "@/api/admin-risk";
|
||||
export { getAdminCaptcha, getAdminMe, postAdminLogin } from "@/api/admin-auth";
|
||||
|
||||
@@ -1,2 +1,5 @@
|
||||
/** Laravel `routes/api.php`:`api` 前缀 + `v1` 分组 */
|
||||
export const API_V1_PREFIX = "/api/v1";
|
||||
/** Laravel `routes/api.php`:`api` 前缀 + `v1` 分组;与 {@link adminHttp} `baseURL` 一致。 */
|
||||
export const LOTTERY_API_V1_BASE = "/api/v1";
|
||||
|
||||
/** 后台路由在 `v1` 下的 `admin` 分组 */
|
||||
export const ADMIN_API_BASE = "/admin";
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import { hasLotteryAdminApiBaseUrl, publicAdminRequest } from "@/lib/admin-http";
|
||||
import type { DrawCurrentSnapshot } from "@/types/api/public-draw";
|
||||
|
||||
import { API_V1_PREFIX } from "@/api/paths";
|
||||
|
||||
/** 大厅当前期(无需 Bearer) */
|
||||
export async function getDrawCurrent(): Promise<DrawCurrentSnapshot | null> {
|
||||
@@ -10,7 +9,7 @@ export async function getDrawCurrent(): Promise<DrawCurrentSnapshot | null> {
|
||||
}
|
||||
try {
|
||||
return await publicAdminRequest<DrawCurrentSnapshot | null>({
|
||||
url: `${API_V1_PREFIX}/draw/current`,
|
||||
url: `/draw/current`,
|
||||
method: "GET",
|
||||
});
|
||||
} catch {
|
||||
|
||||
@@ -8,11 +8,12 @@ import { withAdminAuthHeader } from "@/lib/admin-auth";
|
||||
import { withAdminLocaleHeaders } from "@/lib/admin-locale";
|
||||
import { LotteryApiBizError, LotteryApiEnvelopeError } from "@/types/api/errors";
|
||||
import { isApiEnvelope } from "@/types/api/envelope";
|
||||
import { LOTTERY_API_V1_BASE } from "@/api/paths";
|
||||
|
||||
export { hasLotteryAdminApiBaseUrl } from "@/lib/lottery-api-env";
|
||||
|
||||
export const adminHttp = axios.create({
|
||||
// API 路径统一由调用方传 `/api/v1/...`,避免与前缀重复拼接成 `/api/api/v1/...`。
|
||||
baseURL: LOTTERY_API_V1_BASE,
|
||||
timeout: 30_000,
|
||||
headers: { Accept: "application/json" },
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user