locationSupport.ts
1.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/**
* 《美国版App登录接口说明》接口 6:GET /api/app/location-support/support
* App 只读;需登录。
*/
import { usAppApiRequest } from '../utils/usAppApiRequest'
import { fetchWithOfflineCache } from '../utils/sqliteSync'
export type LocationSupportGetOutputDto = {
id?: string | null
supportPhone?: string | null
supportEmail?: string | null
}
function normalizeSupportContact(raw: unknown): LocationSupportGetOutputDto | null {
if (raw === null || raw === undefined) return null
if (typeof raw !== 'object' || Array.isArray(raw)) return null
const o = raw as LocationSupportGetOutputDto
const phone = String(o.supportPhone ?? '').trim()
const email = String(o.supportEmail ?? '').trim()
if (!phone && !email) return null
return {
id: o.id != null ? String(o.id) : null,
supportPhone: phone || null,
supportEmail: email || null,
}
}
/** 在线缓存至 SQLite,离线可读 */
export async function fetchGlobalSupportContact(): Promise<LocationSupportGetOutputDto | null> {
return fetchWithOfflineCache('support', 'global-contact', async () => {
const raw = await usAppApiRequest<LocationSupportGetOutputDto | null>({
path: '/api/app/location-support/support',
method: 'GET',
auth: true,
})
return normalizeSupportContact(raw)
})
}