36 lines
1.1 KiB
JavaScript
36 lines
1.1 KiB
JavaScript
import {
|
|
normalizeRegionCode,
|
|
normalizeRegionParentCode,
|
|
normalizeRegionSelectorItems
|
|
} from './region-contract.js'
|
|
import {
|
|
createRequestError,
|
|
requestStrict
|
|
} from './request-client.js'
|
|
|
|
export const regionApi = {
|
|
async getRegionChildren(parentCode, requestOptions = {}) {
|
|
const regionChildren = await requestStrict({
|
|
url: '/genealogy/app/region/children',
|
|
method: 'GET',
|
|
data: { parentCode: normalizeRegionParentCode(parentCode) }
|
|
}, {
|
|
requestController: requestOptions.requestController ?? null
|
|
})
|
|
return normalizeRegionSelectorItems(regionChildren)
|
|
},
|
|
|
|
async getRegionPath(regionCode, requestOptions = {}) {
|
|
const regionPath = await requestStrict({
|
|
url: `/genealogy/app/region/path/${encodeURIComponent(normalizeRegionCode(regionCode))}`,
|
|
method: 'GET'
|
|
}, {
|
|
requestController: requestOptions.requestController ?? null
|
|
})
|
|
if (!Array.isArray(regionPath)) {
|
|
throw createRequestError('行政区划路径响应不是列表', 'REGION_PATH_RESPONSE_INVALID')
|
|
}
|
|
return regionPath
|
|
}
|
|
}
|