feat: 完成前端业务闭环与后端联调
This commit is contained in:
@@ -45,42 +45,6 @@ export const normalizeArticleCategoryOptions = (value) => {
|
||||
return categories
|
||||
}
|
||||
|
||||
export const normalizePreviewFamilyArticles = (value, expectedGenealogyId) => {
|
||||
if (!Array.isArray(value)) {
|
||||
throw createRequestError('谱文响应不是列表', 'ARTICLE_RESPONSE_INVALID')
|
||||
}
|
||||
const rows = value.map((item) => {
|
||||
if (!item || typeof item !== 'object' || Array.isArray(item)) {
|
||||
throw createRequestError('谱文响应包含无效条目', 'ARTICLE_RESPONSE_INVALID')
|
||||
}
|
||||
const genealogyId = normalizeOptionalNumericId(item.genealogyId, '谱文家谱标识', 'ARTICLE_RESPONSE_INVALID')
|
||||
if (genealogyId && genealogyId !== expectedGenealogyId) {
|
||||
throw createRequestError('谱文归属与请求不匹配', 'ARTICLE_RESPONSE_INVALID')
|
||||
}
|
||||
const id = normalizeOptionalNumericId(item.id, '谱文标识', 'ARTICLE_RESPONSE_INVALID')
|
||||
const title = normalizeResponseText(item.title, 'title')
|
||||
if (!id || !title) {
|
||||
throw createRequestError('谱文响应缺少标识或标题', 'ARTICLE_RESPONSE_INVALID')
|
||||
}
|
||||
return {
|
||||
id,
|
||||
genealogyId: expectedGenealogyId,
|
||||
title,
|
||||
summary: normalizeResponseText(item.summary, 'summary'),
|
||||
content: '',
|
||||
author: normalizeResponseText(item.author, 'author') || '家族成员',
|
||||
time: normalizeResponseText(item.updatedAt, 'updatedAt'),
|
||||
category: normalizeResponseText(item.category, 'category'),
|
||||
coverOssId: normalizeOptionalNumericId(item.coverOssId, 'coverOssId', 'ARTICLE_RESPONSE_INVALID'),
|
||||
viewCount: normalizeOptionalNonnegativeInteger(item.viewCount, '谱文阅读数', 'ARTICLE_RESPONSE_INVALID')
|
||||
}
|
||||
})
|
||||
if (new Set(rows.map((item) => item.id)).size !== rows.length) {
|
||||
throw createRequestError('谱文响应包含重复标识', 'ARTICLE_RESPONSE_INVALID')
|
||||
}
|
||||
return rows
|
||||
}
|
||||
|
||||
export const normalizeAppArticle = (value, expectedGenealogyId, expectedArticleId = '') => {
|
||||
if (!value || typeof value !== 'object' || Array.isArray(value)) {
|
||||
throw createRequestError('谱文响应无效', 'ARTICLE_RESPONSE_INVALID')
|
||||
@@ -148,8 +112,9 @@ export const normalizeArticleCreatePayload = (payload) => {
|
||||
}
|
||||
const sortOrder = normalizeOptionalSafeInteger(payload.sortOrder, 'sortOrder')
|
||||
if (sortOrder !== undefined) normalizedPayload.sortOrder = sortOrder
|
||||
if (payload.coverOssId !== undefined && payload.coverOssId !== null && payload.coverOssId !== '') {
|
||||
normalizedPayload.coverOssId = normalizeOssIdString(payload.coverOssId, 'coverOssId')
|
||||
if (Object.prototype.hasOwnProperty.call(payload, 'coverOssId')) {
|
||||
if (payload.coverOssId === null) normalizedPayload.coverOssId = null
|
||||
else if (payload.coverOssId !== '') normalizedPayload.coverOssId = normalizeOssIdString(payload.coverOssId, 'coverOssId')
|
||||
}
|
||||
return normalizedPayload
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user