52 lines
1.6 KiB
JavaScript
52 lines
1.6 KiB
JavaScript
import WechatSDK from 'oak-external-sdk/lib/WechatSDK';
|
|
import { generateNewIdAsync } from 'oak-domain/lib/utils/uuid';
|
|
import fs from 'fs';
|
|
import { assert } from 'oak-domain/lib/utils/assert';
|
|
import { cloneDeep } from 'oak-domain/lib/utils/lodash';
|
|
import { applicationProjection } from '../types/Projection';
|
|
// 请求链接获取标题,发布时间,图片等信息
|
|
export async function getInfoByUrl(params) {
|
|
const { url } = params;
|
|
return await WechatSDK.analyzePublicArticle(url);
|
|
}
|
|
export async function uploadExtraFile(params, // FormData表单提交
|
|
context) {
|
|
const { applicationId, file, extraFileId, } = params;
|
|
assert(applicationId);
|
|
const filename = file.originalFilename;
|
|
const filetype = file.mimetype;
|
|
const fileLength = file.size;
|
|
const fileStream = fs.createReadStream(file.filepath);
|
|
const [application] = await context.select('application', {
|
|
data: cloneDeep(applicationProjection),
|
|
filter: {
|
|
id: applicationId,
|
|
},
|
|
}, {
|
|
dontCollect: true,
|
|
});
|
|
const { type, config } = application;
|
|
// 保存文件
|
|
if (extraFileId) {
|
|
const closeRootMode = context.openRootMode();
|
|
try {
|
|
await context.operate('extraFile', {
|
|
id: await generateNewIdAsync(),
|
|
action: 'update',
|
|
data: {},
|
|
filter: {
|
|
id: extraFileId,
|
|
},
|
|
}, {});
|
|
closeRootMode();
|
|
}
|
|
catch (err) {
|
|
closeRootMode();
|
|
throw err;
|
|
}
|
|
}
|
|
return {
|
|
success: true,
|
|
};
|
|
}
|