feat: 完成前端业务闭环与后端联调
This commit is contained in:
@@ -1,5 +1,3 @@
|
||||
import { listPreviewGrowthRecords } from '@/data/preview/records.js'
|
||||
import { hasRemoteConfig } from '@/utils/runtime-config.js'
|
||||
import { normalizeGenealogyPathId } from './genealogy-contract.js'
|
||||
import {
|
||||
normalizeAppGrowthRecord,
|
||||
@@ -16,8 +14,7 @@ import {
|
||||
normalizeLifeEventPayload,
|
||||
normalizeMemoCreatePayload,
|
||||
normalizeMeritRecordCreatePayload,
|
||||
normalizeRelativeRecordCreatePayload,
|
||||
projectPreviewGrowthRecords
|
||||
normalizeRelativeRecordCreatePayload
|
||||
} from './life-record-contract.js'
|
||||
import { normalizeResourcePathId } from './request-normalizers.js'
|
||||
import {
|
||||
@@ -25,22 +22,15 @@ import {
|
||||
normalizeContentAccessGrant,
|
||||
normalizeContentPasswordPayload
|
||||
} from './protected-content-contract.js'
|
||||
import { createRequestError, requestStrict } from './request-client.js'
|
||||
import { requestStrict } from './request-client.js'
|
||||
|
||||
const requireRemoteLifeRecord = (message, code) => {
|
||||
if (hasRemoteConfig()) return
|
||||
throw createRequestError(message, code)
|
||||
}
|
||||
|
||||
const writeLifeRecord = (url, method, data, label, requestOptions) => {
|
||||
requireRemoteLifeRecord(`${label}需要真实服务,当前本地预览不会伪造操作成功`, 'REMOTE_WRITE_REQUIRED')
|
||||
const writeLifeRecord = (url, method, data, requestOptions) => {
|
||||
return requestStrict({ url, method, data }, {
|
||||
requestController: requestOptions.requestController ?? null
|
||||
})
|
||||
}
|
||||
|
||||
const deleteLifeRecord = async (url, label, requestOptions) => {
|
||||
requireRemoteLifeRecord(`${label}需要真实服务,当前本地预览不会伪造删除成功`, 'REMOTE_WRITE_REQUIRED')
|
||||
const deleteLifeRecord = async (url, requestOptions) => {
|
||||
await requestStrict({ url, method: 'DELETE' }, {
|
||||
requireData: false,
|
||||
requestController: requestOptions.requestController ?? null
|
||||
@@ -50,7 +40,6 @@ const deleteLifeRecord = async (url, label, requestOptions) => {
|
||||
|
||||
export const lifeRecordApi = {
|
||||
async createRelativeRecord(genealogyId, payload, requestOptions = {}) {
|
||||
requireRemoteLifeRecord('亲友往来创建需要真实服务,当前本地预览不会伪造创建成功', 'REMOTE_WRITE_REQUIRED')
|
||||
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
||||
return requestStrict({
|
||||
url: `/genealogy/app/genealogies/${normalizedGenealogyId}/relative-records`,
|
||||
@@ -62,7 +51,6 @@ export const lifeRecordApi = {
|
||||
async updateRelativeRecord(genealogyId, relativeId, payload, requestOptions = {}) {
|
||||
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
||||
const normalizedRelativeId = normalizeResourcePathId(relativeId, '亲友记录标识')
|
||||
requireRemoteLifeRecord('修改亲友记录需要真实服务,当前本地预览不会伪造保存成功', 'REMOTE_WRITE_REQUIRED')
|
||||
const relativeRecord = await requestStrict({
|
||||
url: `/genealogy/app/genealogies/${normalizedGenealogyId}/relative-records/${normalizedRelativeId}`,
|
||||
method: 'PUT',
|
||||
@@ -76,14 +64,12 @@ export const lifeRecordApi = {
|
||||
const normalizedRelativeId = normalizeResourcePathId(relativeId, '亲友记录标识')
|
||||
return deleteLifeRecord(
|
||||
`/genealogy/app/genealogies/${normalizedGenealogyId}/relative-records/${normalizedRelativeId}`,
|
||||
'删除亲友记录',
|
||||
requestOptions
|
||||
)
|
||||
},
|
||||
|
||||
async getRelativeRecords(genealogyId, requestOptions = {}) {
|
||||
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
||||
requireRemoteLifeRecord('亲友记录需要真实读取服务,当前本地预览不会伪造列表', 'REMOTE_READ_REQUIRED')
|
||||
const relativeRecords = await requestStrict({
|
||||
url: `/genealogy/app/genealogies/${normalizedGenealogyId}/relative-records`,
|
||||
method: 'GET'
|
||||
@@ -94,7 +80,6 @@ export const lifeRecordApi = {
|
||||
async getRelativeRecordDetail(genealogyId, relativeId, requestOptions = {}) {
|
||||
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
||||
const normalizedRelativeId = normalizeResourcePathId(relativeId, '亲友记录标识')
|
||||
requireRemoteLifeRecord('亲友记录详情需要真实读取服务,当前本地预览不会伪造详情', 'REMOTE_READ_REQUIRED')
|
||||
const relativeRecord = await requestStrict({
|
||||
url: `/genealogy/app/genealogies/${normalizedGenealogyId}/relative-records/${normalizedRelativeId}`,
|
||||
method: 'GET'
|
||||
@@ -103,7 +88,6 @@ export const lifeRecordApi = {
|
||||
},
|
||||
|
||||
async createGrowthRecord(genealogyId, payload, requestOptions = {}) {
|
||||
requireRemoteLifeRecord('成长记录创建需要真实服务,当前本地预览不会伪造创建成功', 'REMOTE_WRITE_REQUIRED')
|
||||
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
||||
return requestStrict({
|
||||
url: `/genealogy/app/genealogies/${normalizedGenealogyId}/growth-records`,
|
||||
@@ -115,7 +99,6 @@ export const lifeRecordApi = {
|
||||
async updateGrowthRecord(genealogyId, recordId, payload, requestOptions = {}) {
|
||||
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
||||
const normalizedRecordId = normalizeResourcePathId(recordId, '成长记录标识')
|
||||
requireRemoteLifeRecord('修改成长记录需要真实服务,当前本地预览不会伪造保存成功', 'REMOTE_WRITE_REQUIRED')
|
||||
const growthRecord = await requestStrict({
|
||||
url: `/genealogy/app/genealogies/${normalizedGenealogyId}/growth-records/${normalizedRecordId}`,
|
||||
method: 'PUT',
|
||||
@@ -129,19 +112,12 @@ export const lifeRecordApi = {
|
||||
const normalizedRecordId = normalizeResourcePathId(recordId, '成长记录标识')
|
||||
return deleteLifeRecord(
|
||||
`/genealogy/app/genealogies/${normalizedGenealogyId}/growth-records/${normalizedRecordId}`,
|
||||
'删除成长记录',
|
||||
requestOptions
|
||||
)
|
||||
},
|
||||
|
||||
async getGrowthRecords(genealogyId, requestOptions = {}) {
|
||||
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
||||
if (!hasRemoteConfig()) {
|
||||
return projectPreviewGrowthRecords(
|
||||
listPreviewGrowthRecords(normalizedGenealogyId),
|
||||
normalizedGenealogyId
|
||||
)
|
||||
}
|
||||
const growthRecords = await requestStrict({
|
||||
url: `/genealogy/app/genealogies/${normalizedGenealogyId}/growth-records`,
|
||||
method: 'GET'
|
||||
@@ -152,7 +128,6 @@ export const lifeRecordApi = {
|
||||
async getGrowthRecordDetail(genealogyId, recordId, accessToken = '', requestOptions = {}) {
|
||||
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
||||
const normalizedRecordId = normalizeResourcePathId(recordId, '成长记录标识')
|
||||
requireRemoteLifeRecord('成长记录详情需要真实读取服务,当前本地预览不会伪造详情', 'REMOTE_READ_REQUIRED')
|
||||
const growthRecord = await requestStrict({
|
||||
url: `/genealogy/app/genealogies/${normalizedGenealogyId}/growth-records/${normalizedRecordId}`,
|
||||
method: 'GET',
|
||||
@@ -165,13 +140,14 @@ export const lifeRecordApi = {
|
||||
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
||||
const normalizedRecordId = normalizeResourcePathId(recordId, '成长记录标识')
|
||||
const passwordPayload = normalizeContentPasswordPayload(password)
|
||||
await writeLifeRecord(
|
||||
`/genealogy/app/genealogies/${normalizedGenealogyId}/growth-records/${normalizedRecordId}/content-protection`,
|
||||
'PUT',
|
||||
passwordPayload,
|
||||
'成长记录内容密码设置',
|
||||
requestOptions
|
||||
)
|
||||
await requestStrict({
|
||||
url: `/genealogy/app/genealogies/${normalizedGenealogyId}/growth-records/${normalizedRecordId}/content-protection`,
|
||||
method: 'PUT',
|
||||
data: passwordPayload
|
||||
}, {
|
||||
requireData: false,
|
||||
requestController: requestOptions.requestController ?? null
|
||||
})
|
||||
return null
|
||||
},
|
||||
|
||||
@@ -183,7 +159,6 @@ export const lifeRecordApi = {
|
||||
`/genealogy/app/genealogies/${normalizedGenealogyId}/growth-records/${normalizedRecordId}/content-unlock`,
|
||||
'POST',
|
||||
passwordPayload,
|
||||
'成长记录内容解锁',
|
||||
requestOptions
|
||||
)
|
||||
return normalizeContentAccessGrant(accessGrant)
|
||||
@@ -194,7 +169,6 @@ export const lifeRecordApi = {
|
||||
const normalizedRecordId = normalizeResourcePathId(recordId, '成长记录标识')
|
||||
return deleteLifeRecord(
|
||||
`/genealogy/app/genealogies/${normalizedGenealogyId}/growth-records/${normalizedRecordId}/content-protection`,
|
||||
'成长记录内容密码停用',
|
||||
requestOptions
|
||||
)
|
||||
},
|
||||
@@ -202,7 +176,6 @@ export const lifeRecordApi = {
|
||||
async createLifeEvent(genealogyId, lineagePersonId, payload, requestOptions = {}) {
|
||||
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
||||
const normalizedLineagePersonId = normalizeResourcePathId(lineagePersonId, '人物标识')
|
||||
requireRemoteLifeRecord('人生大事创建需要真实服务,当前本地预览不会伪造创建成功', 'REMOTE_WRITE_REQUIRED')
|
||||
const lifeEvent = await requestStrict({
|
||||
url: `/genealogy/app/genealogies/${normalizedGenealogyId}/lineage-persons/${normalizedLineagePersonId}/life-events`,
|
||||
method: 'POST',
|
||||
@@ -220,7 +193,6 @@ export const lifeRecordApi = {
|
||||
`/genealogy/app/genealogies/${normalizedGenealogyId}/lineage-persons/${normalizedLineagePersonId}/life-events/${normalizedEventId}`,
|
||||
'PUT',
|
||||
lifeEventChanges,
|
||||
'人生大事更新',
|
||||
requestOptions
|
||||
)
|
||||
return normalizeAppLifeEvent(lifeEvent, normalizedGenealogyId, normalizedLineagePersonId, normalizedEventId)
|
||||
@@ -232,7 +204,6 @@ export const lifeRecordApi = {
|
||||
const normalizedEventId = normalizeResourcePathId(eventId, '人生大事标识')
|
||||
return deleteLifeRecord(
|
||||
`/genealogy/app/genealogies/${normalizedGenealogyId}/lineage-persons/${normalizedLineagePersonId}/life-events/${normalizedEventId}`,
|
||||
'人生大事删除',
|
||||
requestOptions
|
||||
)
|
||||
},
|
||||
@@ -240,7 +211,6 @@ export const lifeRecordApi = {
|
||||
async getLifeEvents(genealogyId, lineagePersonId, requestOptions = {}) {
|
||||
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
||||
const normalizedLineagePersonId = normalizeResourcePathId(lineagePersonId, '人物标识')
|
||||
requireRemoteLifeRecord('人生大事需要真实读取服务,当前本地预览不会伪造列表', 'REMOTE_READ_REQUIRED')
|
||||
const lifeEvents = await requestStrict({
|
||||
url: `/genealogy/app/genealogies/${normalizedGenealogyId}/lineage-persons/${normalizedLineagePersonId}/life-events`,
|
||||
method: 'GET'
|
||||
@@ -249,7 +219,6 @@ export const lifeRecordApi = {
|
||||
},
|
||||
|
||||
async createMemo(genealogyId, payload, requestOptions = {}) {
|
||||
requireRemoteLifeRecord('备忘创建需要真实服务,当前本地预览不会伪造创建成功', 'REMOTE_WRITE_REQUIRED')
|
||||
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
||||
return requestStrict({
|
||||
url: `/genealogy/app/genealogies/${normalizedGenealogyId}/memos`,
|
||||
@@ -261,7 +230,6 @@ export const lifeRecordApi = {
|
||||
async updateMemo(genealogyId, memoId, payload, requestOptions = {}) {
|
||||
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
||||
const normalizedMemoId = normalizeResourcePathId(memoId, '备忘标识')
|
||||
requireRemoteLifeRecord('修改备忘需要真实服务,当前本地预览不会伪造保存成功', 'REMOTE_WRITE_REQUIRED')
|
||||
const memo = await requestStrict({
|
||||
url: `/genealogy/app/genealogies/${normalizedGenealogyId}/memos/${normalizedMemoId}`,
|
||||
method: 'PUT',
|
||||
@@ -273,12 +241,11 @@ export const lifeRecordApi = {
|
||||
async deleteMemo(genealogyId, memoId, requestOptions = {}) {
|
||||
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
||||
const normalizedMemoId = normalizeResourcePathId(memoId, '备忘标识')
|
||||
return deleteLifeRecord(`/genealogy/app/genealogies/${normalizedGenealogyId}/memos/${normalizedMemoId}`, '删除备忘', requestOptions)
|
||||
return deleteLifeRecord(`/genealogy/app/genealogies/${normalizedGenealogyId}/memos/${normalizedMemoId}`, requestOptions)
|
||||
},
|
||||
|
||||
async getMemos(genealogyId, requestOptions = {}) {
|
||||
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
||||
requireRemoteLifeRecord('备忘列表需要真实读取服务,当前本地预览不会伪造列表', 'REMOTE_READ_REQUIRED')
|
||||
const memos = await requestStrict({
|
||||
url: `/genealogy/app/genealogies/${normalizedGenealogyId}/memos`,
|
||||
method: 'GET'
|
||||
@@ -289,7 +256,6 @@ export const lifeRecordApi = {
|
||||
async getMemoDetail(genealogyId, memoId, requestOptions = {}) {
|
||||
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
||||
const normalizedMemoId = normalizeResourcePathId(memoId, '备忘标识')
|
||||
requireRemoteLifeRecord('备忘详情需要真实读取服务,当前本地预览不会伪造详情', 'REMOTE_READ_REQUIRED')
|
||||
const memo = await requestStrict({
|
||||
url: `/genealogy/app/genealogies/${normalizedGenealogyId}/memos/${normalizedMemoId}`,
|
||||
method: 'GET'
|
||||
@@ -298,7 +264,6 @@ export const lifeRecordApi = {
|
||||
},
|
||||
|
||||
async createMeritRecord(genealogyId, payload, requestOptions = {}) {
|
||||
requireRemoteLifeRecord('功德记录创建需要真实服务,当前本地预览不会伪造创建成功', 'REMOTE_WRITE_REQUIRED')
|
||||
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
||||
return requestStrict({
|
||||
url: `/genealogy/app/genealogies/${normalizedGenealogyId}/merit-records`,
|
||||
@@ -310,7 +275,6 @@ export const lifeRecordApi = {
|
||||
async updateMeritRecord(genealogyId, meritId, payload, requestOptions = {}) {
|
||||
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
||||
const normalizedMeritId = normalizeResourcePathId(meritId, '功德记录标识')
|
||||
requireRemoteLifeRecord('修改功德记录需要真实服务,当前本地预览不会伪造保存成功', 'REMOTE_WRITE_REQUIRED')
|
||||
const meritRecord = await requestStrict({
|
||||
url: `/genealogy/app/genealogies/${normalizedGenealogyId}/merit-records/${normalizedMeritId}`,
|
||||
method: 'PUT',
|
||||
@@ -322,12 +286,11 @@ export const lifeRecordApi = {
|
||||
async deleteMeritRecord(genealogyId, meritId, requestOptions = {}) {
|
||||
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
||||
const normalizedMeritId = normalizeResourcePathId(meritId, '功德记录标识')
|
||||
return deleteLifeRecord(`/genealogy/app/genealogies/${normalizedGenealogyId}/merit-records/${normalizedMeritId}`, '删除功德记录', requestOptions)
|
||||
return deleteLifeRecord(`/genealogy/app/genealogies/${normalizedGenealogyId}/merit-records/${normalizedMeritId}`, requestOptions)
|
||||
},
|
||||
|
||||
async getMeritRecords(genealogyId, requestOptions = {}) {
|
||||
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
||||
requireRemoteLifeRecord('功德记录需要真实读取服务,当前本地预览不会伪造列表', 'REMOTE_READ_REQUIRED')
|
||||
const meritRecords = await requestStrict({
|
||||
url: `/genealogy/app/genealogies/${normalizedGenealogyId}/merit-records`,
|
||||
method: 'GET'
|
||||
@@ -338,7 +301,6 @@ export const lifeRecordApi = {
|
||||
async getMeritRecordDetail(genealogyId, meritId, requestOptions = {}) {
|
||||
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
||||
const normalizedMeritId = normalizeResourcePathId(meritId, '功德记录标识')
|
||||
requireRemoteLifeRecord('功德记录详情需要真实读取服务,当前本地预览不会伪造详情', 'REMOTE_READ_REQUIRED')
|
||||
const meritRecord = await requestStrict({
|
||||
url: `/genealogy/app/genealogies/${normalizedGenealogyId}/merit-records/${normalizedMeritId}`,
|
||||
method: 'GET'
|
||||
|
||||
Reference in New Issue
Block a user