This commit is contained in:
2026-09-20 14:22:12 +08:00
parent 1305753b71
commit 60a41af3ac
10 changed files with 414 additions and 3 deletions
@@ -0,0 +1,66 @@
import { http, unwrapApiResponse, type ApiEnvelope } from '@/shared/api/http'
export type PdaApp = 'domestic' | 'overseas'
export type PdaPackageType = 'apk' | 'wgt'
export interface PdaRelease {
id: string
app: PdaApp
appid: string
packageType: PdaPackageType
versionName: string
versionCode: number
minAppVersionCode: number
mandatory: boolean
releaseNotes: string
status: 'DRAFT' | 'PUBLISHED' | 'WITHDRAWN'
current: boolean
sha256: string
sizeBytes: number
downloadUrl: string | null
createdAt: string
publishedAt: string | null
}
const basePath = '/platform/v1/files/pda-releases'
export async function listPdaReleases(app: PdaApp) {
const response = await http.get<ApiEnvelope<PdaRelease[]>, ApiEnvelope<PdaRelease[]>>(`${basePath}/${app}`)
return unwrapApiResponse(response)
}
export async function uploadPdaRelease(app: PdaApp, data: {
packageType: PdaPackageType
versionName: string
versionCode: number
minAppVersionCode: number
mandatory: boolean
releaseNotes: string
file: File
}) {
const form = new FormData()
form.append('packageType', data.packageType)
form.append('versionName', data.versionName)
form.append('versionCode', String(data.versionCode))
form.append('minAppVersionCode', String(data.minAppVersionCode))
form.append('mandatory', String(data.mandatory))
form.append('releaseNotes', data.releaseNotes)
form.append('file', data.file)
const response = await http.post<ApiEnvelope<PdaRelease>, ApiEnvelope<PdaRelease>>(`${basePath}/${app}`, form, {
timeout: 10 * 60 * 1000,
})
return unwrapApiResponse(response)
}
export async function publishPdaRelease(id: string) {
const response = await http.post<ApiEnvelope<PdaRelease>, ApiEnvelope<PdaRelease>>(
`${basePath}/${encodeURIComponent(id)}/publish`, {},
)
return unwrapApiResponse(response)
}
export async function withdrawPdaRelease(id: string) {
const response = await http.post<ApiEnvelope<PdaRelease>, ApiEnvelope<PdaRelease>>(
`${basePath}/${encodeURIComponent(id)}/withdraw`, {},
)
return unwrapApiResponse(response)
}