312 lines
15 KiB
JavaScript
312 lines
15 KiB
JavaScript
import { normalizeGenealogyPathId } from './genealogy-contract.js'
|
|
import {
|
|
normalizeAppGrowthRecord,
|
|
normalizeAppGrowthRecords,
|
|
normalizeAppLifeEvent,
|
|
normalizeAppLifeEvents,
|
|
normalizeAppMemo,
|
|
normalizeAppMemos,
|
|
normalizeAppMeritRecord,
|
|
normalizeAppMeritRecords,
|
|
normalizeAppRelativeRecord,
|
|
normalizeAppRelativeRecords,
|
|
normalizeGrowthRecordCreatePayload,
|
|
normalizeLifeEventPayload,
|
|
normalizeMemoCreatePayload,
|
|
normalizeMeritRecordCreatePayload,
|
|
normalizeRelativeRecordCreatePayload
|
|
} from './life-record-contract.js'
|
|
import { normalizeResourcePathId } from './request-normalizers.js'
|
|
import {
|
|
contentAccessHeader,
|
|
normalizeContentAccessGrant,
|
|
normalizeContentPasswordPayload
|
|
} from './protected-content-contract.js'
|
|
import { requestStrict } from './request-client.js'
|
|
|
|
const writeLifeRecord = (url, method, data, requestOptions) => {
|
|
return requestStrict({ url, method, data }, {
|
|
requestController: requestOptions.requestController ?? null
|
|
})
|
|
}
|
|
|
|
const deleteLifeRecord = async (url, requestOptions) => {
|
|
await requestStrict({ url, method: 'DELETE' }, {
|
|
requireData: false,
|
|
requestController: requestOptions.requestController ?? null
|
|
})
|
|
return null
|
|
}
|
|
|
|
export const lifeRecordApi = {
|
|
async createRelativeRecord(genealogyId, payload, requestOptions = {}) {
|
|
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
|
return requestStrict({
|
|
url: `/genealogy/app/genealogies/${normalizedGenealogyId}/relative-records`,
|
|
method: 'POST',
|
|
data: normalizeRelativeRecordCreatePayload(payload)
|
|
}, { requestController: requestOptions.requestController ?? null })
|
|
},
|
|
|
|
async updateRelativeRecord(genealogyId, relativeId, payload, requestOptions = {}) {
|
|
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
|
const normalizedRelativeId = normalizeResourcePathId(relativeId, '亲友记录标识')
|
|
const relativeRecord = await requestStrict({
|
|
url: `/genealogy/app/genealogies/${normalizedGenealogyId}/relative-records/${normalizedRelativeId}`,
|
|
method: 'PUT',
|
|
data: normalizeRelativeRecordCreatePayload(payload)
|
|
}, { requestController: requestOptions.requestController ?? null })
|
|
return normalizeAppRelativeRecord(relativeRecord, normalizedGenealogyId, normalizedRelativeId)
|
|
},
|
|
|
|
async deleteRelativeRecord(genealogyId, relativeId, requestOptions = {}) {
|
|
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
|
const normalizedRelativeId = normalizeResourcePathId(relativeId, '亲友记录标识')
|
|
return deleteLifeRecord(
|
|
`/genealogy/app/genealogies/${normalizedGenealogyId}/relative-records/${normalizedRelativeId}`,
|
|
requestOptions
|
|
)
|
|
},
|
|
|
|
async getRelativeRecords(genealogyId, requestOptions = {}) {
|
|
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
|
const relativeRecords = await requestStrict({
|
|
url: `/genealogy/app/genealogies/${normalizedGenealogyId}/relative-records`,
|
|
method: 'GET'
|
|
}, { requestController: requestOptions.requestController ?? null })
|
|
return normalizeAppRelativeRecords(relativeRecords, normalizedGenealogyId)
|
|
},
|
|
|
|
async getRelativeRecordDetail(genealogyId, relativeId, requestOptions = {}) {
|
|
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
|
const normalizedRelativeId = normalizeResourcePathId(relativeId, '亲友记录标识')
|
|
const relativeRecord = await requestStrict({
|
|
url: `/genealogy/app/genealogies/${normalizedGenealogyId}/relative-records/${normalizedRelativeId}`,
|
|
method: 'GET'
|
|
}, { requestController: requestOptions.requestController ?? null })
|
|
return normalizeAppRelativeRecord(relativeRecord, normalizedGenealogyId, normalizedRelativeId)
|
|
},
|
|
|
|
async createGrowthRecord(genealogyId, payload, requestOptions = {}) {
|
|
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
|
const growthRecord = await requestStrict({
|
|
url: `/genealogy/app/genealogies/${normalizedGenealogyId}/growth-records`,
|
|
method: 'POST',
|
|
data: normalizeGrowthRecordCreatePayload(payload)
|
|
}, { requestController: requestOptions.requestController ?? null })
|
|
return normalizeAppGrowthRecord(growthRecord, normalizedGenealogyId)
|
|
},
|
|
|
|
async updateGrowthRecord(genealogyId, recordId, payload, requestOptions = {}) {
|
|
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
|
const normalizedRecordId = normalizeResourcePathId(recordId, '成长记录标识')
|
|
const growthRecord = await requestStrict({
|
|
url: `/genealogy/app/genealogies/${normalizedGenealogyId}/growth-records/${normalizedRecordId}`,
|
|
method: 'PUT',
|
|
data: normalizeGrowthRecordCreatePayload(payload)
|
|
}, { requestController: requestOptions.requestController ?? null })
|
|
return normalizeAppGrowthRecord(growthRecord, normalizedGenealogyId, normalizedRecordId)
|
|
},
|
|
|
|
async deleteGrowthRecord(genealogyId, recordId, requestOptions = {}) {
|
|
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
|
const normalizedRecordId = normalizeResourcePathId(recordId, '成长记录标识')
|
|
return deleteLifeRecord(
|
|
`/genealogy/app/genealogies/${normalizedGenealogyId}/growth-records/${normalizedRecordId}`,
|
|
requestOptions
|
|
)
|
|
},
|
|
|
|
async getGrowthRecords(genealogyId, requestOptions = {}) {
|
|
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
|
const growthRecords = await requestStrict({
|
|
url: `/genealogy/app/genealogies/${normalizedGenealogyId}/growth-records`,
|
|
method: 'GET'
|
|
}, { requestController: requestOptions.requestController ?? null })
|
|
return normalizeAppGrowthRecords(growthRecords, normalizedGenealogyId)
|
|
},
|
|
|
|
async getGrowthRecordDetail(genealogyId, recordId, accessToken = '', requestOptions = {}) {
|
|
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
|
const normalizedRecordId = normalizeResourcePathId(recordId, '成长记录标识')
|
|
const growthRecord = await requestStrict({
|
|
url: `/genealogy/app/genealogies/${normalizedGenealogyId}/growth-records/${normalizedRecordId}`,
|
|
method: 'GET',
|
|
header: contentAccessHeader(accessToken)
|
|
}, { requestController: requestOptions.requestController ?? null })
|
|
return normalizeAppGrowthRecord(growthRecord, normalizedGenealogyId, normalizedRecordId)
|
|
},
|
|
|
|
async setGrowthRecordPassword(genealogyId, recordId, password, requestOptions = {}) {
|
|
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
|
const normalizedRecordId = normalizeResourcePathId(recordId, '成长记录标识')
|
|
const passwordPayload = normalizeContentPasswordPayload(password)
|
|
await requestStrict({
|
|
url: `/genealogy/app/genealogies/${normalizedGenealogyId}/growth-records/${normalizedRecordId}/content-protection`,
|
|
method: 'PUT',
|
|
data: passwordPayload
|
|
}, {
|
|
requireData: false,
|
|
requestController: requestOptions.requestController ?? null
|
|
})
|
|
return null
|
|
},
|
|
|
|
async unlockGrowthRecord(genealogyId, recordId, password, requestOptions = {}) {
|
|
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
|
const normalizedRecordId = normalizeResourcePathId(recordId, '成长记录标识')
|
|
const passwordPayload = normalizeContentPasswordPayload(password)
|
|
const accessGrant = await writeLifeRecord(
|
|
`/genealogy/app/genealogies/${normalizedGenealogyId}/growth-records/${normalizedRecordId}/content-unlock`,
|
|
'POST',
|
|
passwordPayload,
|
|
requestOptions
|
|
)
|
|
return normalizeContentAccessGrant(accessGrant)
|
|
},
|
|
|
|
async disableGrowthRecordPassword(genealogyId, recordId, requestOptions = {}) {
|
|
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
|
const normalizedRecordId = normalizeResourcePathId(recordId, '成长记录标识')
|
|
return deleteLifeRecord(
|
|
`/genealogy/app/genealogies/${normalizedGenealogyId}/growth-records/${normalizedRecordId}/content-protection`,
|
|
requestOptions
|
|
)
|
|
},
|
|
|
|
async createLifeEvent(genealogyId, lineagePersonId, payload, requestOptions = {}) {
|
|
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
|
const normalizedLineagePersonId = normalizeResourcePathId(lineagePersonId, '人物标识')
|
|
const lifeEvent = await requestStrict({
|
|
url: `/genealogy/app/genealogies/${normalizedGenealogyId}/lineage-persons/${normalizedLineagePersonId}/life-events`,
|
|
method: 'POST',
|
|
data: normalizeLifeEventPayload(payload)
|
|
}, { requestController: requestOptions.requestController ?? null })
|
|
return normalizeAppLifeEvent(lifeEvent, normalizedGenealogyId, normalizedLineagePersonId)
|
|
},
|
|
|
|
async updateLifeEvent(genealogyId, lineagePersonId, eventId, payload, requestOptions = {}) {
|
|
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
|
const normalizedLineagePersonId = normalizeResourcePathId(lineagePersonId, '人物标识')
|
|
const normalizedEventId = normalizeResourcePathId(eventId, '人生大事标识')
|
|
const lifeEventChanges = normalizeLifeEventPayload(payload)
|
|
const lifeEvent = await writeLifeRecord(
|
|
`/genealogy/app/genealogies/${normalizedGenealogyId}/lineage-persons/${normalizedLineagePersonId}/life-events/${normalizedEventId}`,
|
|
'PUT',
|
|
lifeEventChanges,
|
|
requestOptions
|
|
)
|
|
return normalizeAppLifeEvent(lifeEvent, normalizedGenealogyId, normalizedLineagePersonId, normalizedEventId)
|
|
},
|
|
|
|
async deleteLifeEvent(genealogyId, lineagePersonId, eventId, requestOptions = {}) {
|
|
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
|
const normalizedLineagePersonId = normalizeResourcePathId(lineagePersonId, '人物标识')
|
|
const normalizedEventId = normalizeResourcePathId(eventId, '人生大事标识')
|
|
return deleteLifeRecord(
|
|
`/genealogy/app/genealogies/${normalizedGenealogyId}/lineage-persons/${normalizedLineagePersonId}/life-events/${normalizedEventId}`,
|
|
requestOptions
|
|
)
|
|
},
|
|
|
|
async getLifeEvents(genealogyId, lineagePersonId, requestOptions = {}) {
|
|
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
|
const normalizedLineagePersonId = normalizeResourcePathId(lineagePersonId, '人物标识')
|
|
const lifeEvents = await requestStrict({
|
|
url: `/genealogy/app/genealogies/${normalizedGenealogyId}/lineage-persons/${normalizedLineagePersonId}/life-events`,
|
|
method: 'GET'
|
|
}, { requestController: requestOptions.requestController ?? null })
|
|
return normalizeAppLifeEvents(lifeEvents, normalizedGenealogyId, normalizedLineagePersonId)
|
|
},
|
|
|
|
async createMemo(genealogyId, payload, requestOptions = {}) {
|
|
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
|
return requestStrict({
|
|
url: `/genealogy/app/genealogies/${normalizedGenealogyId}/memos`,
|
|
method: 'POST',
|
|
data: normalizeMemoCreatePayload(payload)
|
|
}, { requestController: requestOptions.requestController ?? null })
|
|
},
|
|
|
|
async updateMemo(genealogyId, memoId, payload, requestOptions = {}) {
|
|
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
|
const normalizedMemoId = normalizeResourcePathId(memoId, '备忘标识')
|
|
const memo = await requestStrict({
|
|
url: `/genealogy/app/genealogies/${normalizedGenealogyId}/memos/${normalizedMemoId}`,
|
|
method: 'PUT',
|
|
data: normalizeMemoCreatePayload(payload)
|
|
}, { requestController: requestOptions.requestController ?? null })
|
|
return normalizeAppMemo(memo, normalizedGenealogyId, normalizedMemoId)
|
|
},
|
|
|
|
async deleteMemo(genealogyId, memoId, requestOptions = {}) {
|
|
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
|
const normalizedMemoId = normalizeResourcePathId(memoId, '备忘标识')
|
|
return deleteLifeRecord(`/genealogy/app/genealogies/${normalizedGenealogyId}/memos/${normalizedMemoId}`, requestOptions)
|
|
},
|
|
|
|
async getMemos(genealogyId, requestOptions = {}) {
|
|
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
|
const memos = await requestStrict({
|
|
url: `/genealogy/app/genealogies/${normalizedGenealogyId}/memos`,
|
|
method: 'GET'
|
|
}, { requestController: requestOptions.requestController ?? null })
|
|
return normalizeAppMemos(memos, normalizedGenealogyId)
|
|
},
|
|
|
|
async getMemoDetail(genealogyId, memoId, requestOptions = {}) {
|
|
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
|
const normalizedMemoId = normalizeResourcePathId(memoId, '备忘标识')
|
|
const memo = await requestStrict({
|
|
url: `/genealogy/app/genealogies/${normalizedGenealogyId}/memos/${normalizedMemoId}`,
|
|
method: 'GET'
|
|
}, { requestController: requestOptions.requestController ?? null })
|
|
return normalizeAppMemo(memo, normalizedGenealogyId, normalizedMemoId)
|
|
},
|
|
|
|
async createMeritRecord(genealogyId, payload, requestOptions = {}) {
|
|
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
|
return requestStrict({
|
|
url: `/genealogy/app/genealogies/${normalizedGenealogyId}/merit-records`,
|
|
method: 'POST',
|
|
data: normalizeMeritRecordCreatePayload(payload)
|
|
}, { requestController: requestOptions.requestController ?? null })
|
|
},
|
|
|
|
async updateMeritRecord(genealogyId, meritId, payload, requestOptions = {}) {
|
|
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
|
const normalizedMeritId = normalizeResourcePathId(meritId, '功德记录标识')
|
|
const meritRecord = await requestStrict({
|
|
url: `/genealogy/app/genealogies/${normalizedGenealogyId}/merit-records/${normalizedMeritId}`,
|
|
method: 'PUT',
|
|
data: normalizeMeritRecordCreatePayload(payload)
|
|
}, { requestController: requestOptions.requestController ?? null })
|
|
return normalizeAppMeritRecord(meritRecord, normalizedGenealogyId, normalizedMeritId)
|
|
},
|
|
|
|
async deleteMeritRecord(genealogyId, meritId, requestOptions = {}) {
|
|
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
|
const normalizedMeritId = normalizeResourcePathId(meritId, '功德记录标识')
|
|
return deleteLifeRecord(`/genealogy/app/genealogies/${normalizedGenealogyId}/merit-records/${normalizedMeritId}`, requestOptions)
|
|
},
|
|
|
|
async getMeritRecords(genealogyId, requestOptions = {}) {
|
|
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
|
const meritRecords = await requestStrict({
|
|
url: `/genealogy/app/genealogies/${normalizedGenealogyId}/merit-records`,
|
|
method: 'GET'
|
|
}, { requestController: requestOptions.requestController ?? null })
|
|
return normalizeAppMeritRecords(meritRecords, normalizedGenealogyId)
|
|
},
|
|
|
|
async getMeritRecordDetail(genealogyId, meritId, requestOptions = {}) {
|
|
const normalizedGenealogyId = normalizeGenealogyPathId(genealogyId)
|
|
const normalizedMeritId = normalizeResourcePathId(meritId, '功德记录标识')
|
|
const meritRecord = await requestStrict({
|
|
url: `/genealogy/app/genealogies/${normalizedGenealogyId}/merit-records/${normalizedMeritId}`,
|
|
method: 'GET'
|
|
}, { requestController: requestOptions.requestController ?? null })
|
|
return normalizeAppMeritRecord(meritRecord, normalizedGenealogyId, normalizedMeritId)
|
|
}
|
|
}
|