Blame view

泰额版/Food Labeling Management App UniApp/src/services/locationSupport.ts 1.3 KB
59e51671   “wangming”   1
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)
    })
  }