import mpx from "@mpxjs/core"; import { grpc, ResponseData } from "jmash-core-mp"; import { PageModel, CompModel } from "../types"; import { diyCompApi } from "../comp/index"; import { DiyPageModel, DiyPageVcardReq, DiyPageUpdateReq } from "./types"; class DiyPageApiImpl { // 转换为PageModel convertModel(diyPageModel: DiyPageModel): PageModel { const pageModel = Object.assign(diyPageModel, { pageData: JSON.parse(diyPageModel.pageJson), }) as PageModel; if (diyPageModel.compModels) { const compModels = diyCompApi.convertModels( diyPageModel.compModels ) as Array; pageModel.compModels = compModels; } return pageModel; } // 获取首页 findHomePage(vcardKey: string): Promise> { const diyPageVcardKey = { vcardKey: vcardKey, pageCode: "home", hasComps: true, } as DiyPageVcardReq; return this.findDiyPageCandidate(diyPageVcardKey); } // 通过候选键查询DIY页面模板 findDiyPageCandidate( query: DiyPageVcardReq ): Promise> { grpc.clearEmpty(query); if (query.vcardKey) { return mpx.xfetch.fetch({ url: "/v1/front/diy/diy_page/candidate/" + query.vcardKey + "/" + query.pageCode, method: "GET", data: query, }); } else { return mpx.xfetch.fetch({ url: "/v1/front/diy/diy_page/candidate/share/" + query.vcardToken + "/" + query.pageCode, method: "GET", data: query, }); } } // 修改实体DIY页面模板 update( data: DiyPageUpdateReq, tenant: string ): Promise> { data.tenant = tenant; // pageTemplate字段默认传空 所以不能使用这个 grpc.clearEmpty(data); return mpx.xfetch.fetch({ url: "/v1/front/diy/diy_page", method: "PATCH", data: data, header: { "Grpc-Metadata-Tenant": tenant, }, }); } } const diyPageApi = new DiyPageApiImpl(); export { diyPageApi };