Skip to content

Commit 8319cbf

Browse files
authored
fix: serialize page_content to resolve mockserver create page error (#1780)
1 parent 8caa5aa commit 8319cbf

File tree

1 file changed

+29
-5
lines changed

1 file changed

+29
-5
lines changed

mockServer/src/services/pages.js

Lines changed: 29 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,17 @@
1313
import DateStore from '@seald-io/nedb'
1414
import { getDatabasePath, getResponseData } from '../tool/Common'
1515

16+
const parsePageContent = (item) => {
17+
if (item && item.page_content && typeof item.page_content === 'string') {
18+
try {
19+
item.page_content = JSON.parse(item.page_content)
20+
} catch (e) {
21+
// ignore
22+
}
23+
}
24+
return item
25+
}
26+
1627
export default class PageService {
1728
constructor() {
1829
this.db = new DateStore({
@@ -68,32 +79,45 @@ export default class PageService {
6879
async create(params) {
6980
const model = params.isPage ? this.pageModel : this.folderModel
7081
const pageData = { ...model, ...params }
82+
83+
if (pageData.page_content && typeof pageData.page_content === 'object') {
84+
pageData.page_content = JSON.stringify(pageData.page_content)
85+
}
86+
7187
const result = await this.db.insertAsync(pageData)
7288
const { _id } = result
7389
await this.db.updateAsync({ _id }, { $set: { id: _id } })
7490
result.id = result._id
75-
return getResponseData(result)
91+
return getResponseData(parsePageContent(result))
7692
}
7793

7894
async update(id, params) {
79-
await this.db.updateAsync({ _id: id }, { $set: params })
95+
const updateData = { ...params }
96+
if (updateData.page_content && typeof updateData.page_content === 'object') {
97+
updateData.page_content = JSON.stringify(updateData.page_content)
98+
}
99+
100+
await this.db.updateAsync({ _id: id }, { $set: updateData })
80101
const result = await this.db.findOneAsync({ _id: id })
81-
return getResponseData(result)
102+
return getResponseData(parsePageContent(result))
82103
}
83104

84105
async list(appId) {
85106
const result = await this.db.findAsync({ app: appId.toString() })
107+
if (Array.isArray(result)) {
108+
result.forEach(parsePageContent)
109+
}
86110
return getResponseData(result)
87111
}
88112

89113
async detail(pageId) {
90114
const result = await this.db.findOneAsync({ _id: pageId })
91-
return getResponseData(result)
115+
return getResponseData(parsePageContent(result))
92116
}
93117

94118
async delete(pageId) {
95119
const result = await this.db.findOneAsync({ _id: pageId })
96120
await this.db.removeAsync({ _id: pageId })
97-
return getResponseData(result)
121+
return getResponseData(parsePageContent(result))
98122
}
99123
}

0 commit comments

Comments
 (0)