282 lines
9.9 KiB
TypeScript
282 lines
9.9 KiB
TypeScript
import { apiRequest } from "@/shared/api/request";
|
|
import { API_ENDPOINTS, API_OPERATIONS, apiEndpointPath } from "@/shared/api/generated/endpoints";
|
|
import type {
|
|
ApiList,
|
|
AppBannerDto,
|
|
AppBannerPayload,
|
|
AppPopupDto,
|
|
AppPopupPayload,
|
|
AppSplashScreenDto,
|
|
AppSplashScreenPayload,
|
|
AppVersionDto,
|
|
AppVersionPayload,
|
|
EntityId,
|
|
ExploreTabDto,
|
|
ExploreTabPayload,
|
|
H5LinkConfigDto,
|
|
H5LinkConfigPayload,
|
|
H5LinkConfigUpdatePayload,
|
|
PageQuery,
|
|
} from "@/shared/api/types";
|
|
|
|
export interface SystemMessagePushPayload {
|
|
action_param?: string;
|
|
action_type?: string;
|
|
aggregate_type?: string;
|
|
batch_size?: number;
|
|
body?: string;
|
|
message_type: "system";
|
|
producer_event_type?: string;
|
|
summary: string;
|
|
target_scope: "all_registered_users" | "user_ids";
|
|
title: string;
|
|
user_ids?: string[];
|
|
}
|
|
|
|
export interface SystemMessagePushResponse {
|
|
command_id: string;
|
|
created: boolean;
|
|
job_id: string;
|
|
message_type: string;
|
|
status: string;
|
|
target_scope: string;
|
|
}
|
|
|
|
export function createSystemMessagePushFanout(payload: SystemMessagePushPayload): Promise<SystemMessagePushResponse> {
|
|
const endpoint = API_ENDPOINTS.createFullServerNoticeFanout;
|
|
return apiRequest<SystemMessagePushResponse, SystemMessagePushPayload>(
|
|
apiEndpointPath(API_OPERATIONS.createFullServerNoticeFanout),
|
|
{
|
|
body: payload,
|
|
method: endpoint.method,
|
|
},
|
|
);
|
|
}
|
|
|
|
export function listH5Links(appCode: string): Promise<ApiList<H5LinkConfigDto>> {
|
|
const endpoint = API_ENDPOINTS.listH5Links;
|
|
return apiRequest<ApiList<H5LinkConfigDto>>(apiEndpointPath(API_OPERATIONS.listH5Links), {
|
|
headers: appScopeHeaders(appCode),
|
|
method: endpoint.method,
|
|
});
|
|
}
|
|
|
|
export function updateH5Links(appCode: string, payload: H5LinkConfigUpdatePayload): Promise<ApiList<H5LinkConfigDto>> {
|
|
const endpoint = API_ENDPOINTS.updateH5Links;
|
|
return apiRequest<ApiList<H5LinkConfigDto>, H5LinkConfigUpdatePayload>(
|
|
apiEndpointPath(API_OPERATIONS.updateH5Links),
|
|
{
|
|
body: payload,
|
|
headers: appScopeHeaders(appCode),
|
|
method: endpoint.method,
|
|
},
|
|
);
|
|
}
|
|
|
|
export function createH5Link(appCode: string, payload: H5LinkConfigPayload): Promise<H5LinkConfigDto> {
|
|
const endpoint = API_ENDPOINTS.createH5Link;
|
|
return apiRequest<H5LinkConfigDto, H5LinkConfigPayload>(apiEndpointPath(API_OPERATIONS.createH5Link), {
|
|
body: payload,
|
|
headers: appScopeHeaders(appCode),
|
|
method: endpoint.method,
|
|
});
|
|
}
|
|
|
|
export function updateH5Link(appCode: string, key: EntityId, payload: H5LinkConfigPayload): Promise<H5LinkConfigDto> {
|
|
const endpoint = API_ENDPOINTS.updateH5Link;
|
|
return apiRequest<H5LinkConfigDto, H5LinkConfigPayload>(apiEndpointPath(API_OPERATIONS.updateH5Link, { key }), {
|
|
body: payload,
|
|
headers: appScopeHeaders(appCode),
|
|
method: endpoint.method,
|
|
});
|
|
}
|
|
|
|
export function deleteH5Link(appCode: string, key: EntityId): Promise<{ deleted: boolean }> {
|
|
const endpoint = API_ENDPOINTS.deleteH5Link;
|
|
return apiRequest<{ deleted: boolean }>(apiEndpointPath(API_OPERATIONS.deleteH5Link, { key }), {
|
|
headers: appScopeHeaders(appCode),
|
|
method: endpoint.method,
|
|
});
|
|
}
|
|
|
|
function appScopeHeaders(appCode: string) {
|
|
// H5 配置是强 App 隔离数据;显式固定请求头可避免用户切换 App 时全局请求上下文变化导致写入错误租户。
|
|
return { "X-App-Code": String(appCode || "").trim().toLowerCase() };
|
|
}
|
|
|
|
export function listExploreTabs(query: PageQuery = {}): Promise<ApiList<ExploreTabDto>> {
|
|
const endpoint = API_ENDPOINTS.listExploreTabs;
|
|
return apiRequest<ApiList<ExploreTabDto>>(apiEndpointPath(API_OPERATIONS.listExploreTabs), {
|
|
method: endpoint.method,
|
|
query,
|
|
});
|
|
}
|
|
|
|
export function createExploreTab(payload: ExploreTabPayload): Promise<ExploreTabDto> {
|
|
const endpoint = API_ENDPOINTS.createExploreTab;
|
|
return apiRequest<ExploreTabDto, ExploreTabPayload>(apiEndpointPath(API_OPERATIONS.createExploreTab), {
|
|
body: payload,
|
|
method: endpoint.method,
|
|
});
|
|
}
|
|
|
|
export function updateExploreTab(tabId: EntityId, payload: ExploreTabPayload): Promise<ExploreTabDto> {
|
|
const endpoint = API_ENDPOINTS.updateExploreTab;
|
|
return apiRequest<ExploreTabDto, ExploreTabPayload>(
|
|
apiEndpointPath(API_OPERATIONS.updateExploreTab, { tab_id: tabId }),
|
|
{
|
|
body: payload,
|
|
method: endpoint.method,
|
|
},
|
|
);
|
|
}
|
|
|
|
export function deleteExploreTab(tabId: EntityId): Promise<{ deleted: boolean }> {
|
|
const endpoint = API_ENDPOINTS.deleteExploreTab;
|
|
return apiRequest<{ deleted: boolean }>(apiEndpointPath(API_OPERATIONS.deleteExploreTab, { tab_id: tabId }), {
|
|
method: endpoint.method,
|
|
});
|
|
}
|
|
|
|
export function listBanners(query: PageQuery = {}): Promise<ApiList<AppBannerDto>> {
|
|
const endpoint = API_ENDPOINTS.listBanners;
|
|
return apiRequest<ApiList<AppBannerDto>>(apiEndpointPath(API_OPERATIONS.listBanners), {
|
|
method: endpoint.method,
|
|
query,
|
|
});
|
|
}
|
|
|
|
export function createBanner(payload: AppBannerPayload): Promise<AppBannerDto> {
|
|
const endpoint = API_ENDPOINTS.createBanner;
|
|
return apiRequest<AppBannerDto, AppBannerPayload>(apiEndpointPath(API_OPERATIONS.createBanner), {
|
|
body: payload,
|
|
method: endpoint.method,
|
|
});
|
|
}
|
|
|
|
export function updateBanner(bannerId: EntityId, payload: AppBannerPayload): Promise<AppBannerDto> {
|
|
const endpoint = API_ENDPOINTS.updateBanner;
|
|
return apiRequest<AppBannerDto, AppBannerPayload>(
|
|
apiEndpointPath(API_OPERATIONS.updateBanner, { banner_id: bannerId }),
|
|
{
|
|
body: payload,
|
|
method: endpoint.method,
|
|
},
|
|
);
|
|
}
|
|
|
|
export function deleteBanner(bannerId: EntityId): Promise<{ deleted: boolean }> {
|
|
const endpoint = API_ENDPOINTS.deleteBanner;
|
|
return apiRequest<{ deleted: boolean }>(apiEndpointPath(API_OPERATIONS.deleteBanner, { banner_id: bannerId }), {
|
|
method: endpoint.method,
|
|
});
|
|
}
|
|
|
|
export function listSplashScreens(query: PageQuery = {}): Promise<ApiList<AppSplashScreenDto>> {
|
|
const endpoint = API_ENDPOINTS.listSplashScreens;
|
|
return apiRequest<ApiList<AppSplashScreenDto>>(apiEndpointPath(API_OPERATIONS.listSplashScreens), {
|
|
method: endpoint.method,
|
|
query,
|
|
});
|
|
}
|
|
|
|
export function createSplashScreen(payload: AppSplashScreenPayload): Promise<AppSplashScreenDto> {
|
|
const endpoint = API_ENDPOINTS.createSplashScreen;
|
|
return apiRequest<AppSplashScreenDto, AppSplashScreenPayload>(apiEndpointPath(API_OPERATIONS.createSplashScreen), {
|
|
body: payload,
|
|
method: endpoint.method,
|
|
});
|
|
}
|
|
|
|
export function updateSplashScreen(splashId: EntityId, payload: AppSplashScreenPayload): Promise<AppSplashScreenDto> {
|
|
const endpoint = API_ENDPOINTS.updateSplashScreen;
|
|
return apiRequest<AppSplashScreenDto, AppSplashScreenPayload>(
|
|
apiEndpointPath(API_OPERATIONS.updateSplashScreen, { splash_id: splashId }),
|
|
{
|
|
body: payload,
|
|
method: endpoint.method,
|
|
},
|
|
);
|
|
}
|
|
|
|
export function deleteSplashScreen(splashId: EntityId): Promise<{ deleted: boolean }> {
|
|
const endpoint = API_ENDPOINTS.deleteSplashScreen;
|
|
return apiRequest<{ deleted: boolean }>(
|
|
apiEndpointPath(API_OPERATIONS.deleteSplashScreen, { splash_id: splashId }),
|
|
{
|
|
method: endpoint.method,
|
|
},
|
|
);
|
|
}
|
|
|
|
export function listPopups(query: PageQuery = {}): Promise<ApiList<AppPopupDto>> {
|
|
const endpoint = API_ENDPOINTS.listPopups;
|
|
return apiRequest<ApiList<AppPopupDto>>(apiEndpointPath(API_OPERATIONS.listPopups), {
|
|
method: endpoint.method,
|
|
query,
|
|
});
|
|
}
|
|
|
|
export function createPopup(payload: AppPopupPayload): Promise<AppPopupDto> {
|
|
const endpoint = API_ENDPOINTS.createPopup;
|
|
return apiRequest<AppPopupDto, AppPopupPayload>(apiEndpointPath(API_OPERATIONS.createPopup), {
|
|
body: payload,
|
|
method: endpoint.method,
|
|
});
|
|
}
|
|
|
|
export function updatePopup(popupId: EntityId, payload: AppPopupPayload): Promise<AppPopupDto> {
|
|
const endpoint = API_ENDPOINTS.updatePopup;
|
|
return apiRequest<AppPopupDto, AppPopupPayload>(
|
|
apiEndpointPath(API_OPERATIONS.updatePopup, { popup_id: popupId }),
|
|
{
|
|
body: payload,
|
|
method: endpoint.method,
|
|
},
|
|
);
|
|
}
|
|
|
|
export function deletePopup(popupId: EntityId): Promise<{ deleted: boolean }> {
|
|
const endpoint = API_ENDPOINTS.deletePopup;
|
|
return apiRequest<{ deleted: boolean }>(apiEndpointPath(API_OPERATIONS.deletePopup, { popup_id: popupId }), {
|
|
method: endpoint.method,
|
|
});
|
|
}
|
|
|
|
export function listAppVersions(query: PageQuery = {}): Promise<ApiList<AppVersionDto>> {
|
|
const endpoint = API_ENDPOINTS.listAppVersions;
|
|
return apiRequest<ApiList<AppVersionDto>>(apiEndpointPath(API_OPERATIONS.listAppVersions), {
|
|
method: endpoint.method,
|
|
query,
|
|
});
|
|
}
|
|
|
|
export function createAppVersion(payload: AppVersionPayload): Promise<AppVersionDto> {
|
|
const endpoint = API_ENDPOINTS.createAppVersion;
|
|
return apiRequest<AppVersionDto, AppVersionPayload>(apiEndpointPath(API_OPERATIONS.createAppVersion), {
|
|
body: payload,
|
|
method: endpoint.method,
|
|
});
|
|
}
|
|
|
|
export function updateAppVersion(versionId: EntityId, payload: AppVersionPayload): Promise<AppVersionDto> {
|
|
const endpoint = API_ENDPOINTS.updateAppVersion;
|
|
return apiRequest<AppVersionDto, AppVersionPayload>(
|
|
apiEndpointPath(API_OPERATIONS.updateAppVersion, { version_id: versionId }),
|
|
{
|
|
body: payload,
|
|
method: endpoint.method,
|
|
},
|
|
);
|
|
}
|
|
|
|
export function deleteAppVersion(versionId: EntityId): Promise<{ deleted: boolean }> {
|
|
const endpoint = API_ENDPOINTS.deleteAppVersion;
|
|
return apiRequest<{ deleted: boolean }>(
|
|
apiEndpointPath(API_OPERATIONS.deleteAppVersion, { version_id: versionId }),
|
|
{
|
|
method: endpoint.method,
|
|
},
|
|
);
|
|
}
|