From 5cb8acc8171d1d74f4b86fb095545948e4241654 Mon Sep 17 00:00:00 2001 From: terwer Date: Sat, 20 Aug 2022 23:52:49 +0800 Subject: [PATCH 1/5] =?UTF-8?q?feat:#18=20=E5=AE=9E=E7=8E=B0metaweblog-api?= =?UTF-8?q?=E5=AE=A2=E6=88=B7=E7=AB=AF-localStorage=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + package.json | 1 + test/config.test.ts | 24 ++++++++++++++++++++++++ test/setup.ts | 3 +++ test/util.test.ts | 15 +++++++++++++++ yarn.lock | 31 +++++++++++++++++++++++++++++++ 6 files changed, 75 insertions(+) create mode 100644 test/config.test.ts create mode 100644 test/util.test.ts diff --git a/.gitignore b/.gitignore index 33c8ee84..bb0888e6 100644 --- a/.gitignore +++ b/.gitignore @@ -27,3 +27,4 @@ dist-ssr .vercel *.private.env.json __snapshots__ +test/data/ diff --git a/package.json b/package.json index 9178b63b..08b4c6d7 100644 --- a/package.json +++ b/package.json @@ -39,6 +39,7 @@ "@types/express": "^4.17.13", "@types/node": "^18.6.2", "@vitejs/plugin-vue": "^3.0.0", + "node-localstorage": "^2.2.1", "typescript": "^4.6.4", "vite": "^3.0.0", "vite-plugin-require-transform": "^1.0.3", diff --git a/test/config.test.ts b/test/config.test.ts new file mode 100644 index 00000000..317dbcb5 --- /dev/null +++ b/test/config.test.ts @@ -0,0 +1,24 @@ +import {assert, describe, expect, it} from 'vitest' +import {getConf, setConf} from "../src/lib/config"; +import logUtil from "../src/lib/logUtil"; + +describe('config test', () => { + it('setConf', () => { + const key = "test" + const value = "testValue" + setConf(key, value) + + const newValue = localStorage.getItem(key) + logUtil.logInfo("getConf test=>") + logUtil.logInfo("value=>", value) + logUtil.logInfo("newValue=>", newValue) + assert(newValue, value); + }) + + it('getConf', () => { + const key = "test" + const result = getConf(key) + logUtil.logInfo("getConf test=>") + logUtil.logInfo(result) + }) +}) \ No newline at end of file diff --git a/test/setup.ts b/test/setup.ts index 1c095be4..2e669ea3 100644 --- a/test/setup.ts +++ b/test/setup.ts @@ -1,9 +1,12 @@ import {afterAll, afterEach, beforeAll} from 'vitest'; import fetch from 'cross-fetch'; +// @ts-ignore +import {LocalStorage} from "node-localstorage"; // Add `fetch` polyfill. // https://markus.oberlehner.net/blog/using-mock-service-worker-with-vitest-and-fetch/ global.fetch = fetch; +global.localStorage = new LocalStorage('./test/data/polyfill/localStorage'); beforeAll(() => { console.log("vitest beforeAll") diff --git a/test/util.test.ts b/test/util.test.ts new file mode 100644 index 00000000..ff938eba --- /dev/null +++ b/test/util.test.ts @@ -0,0 +1,15 @@ +import {describe, it} from "vitest"; +import logUtil from "../src/lib/logUtil"; +import {pathJoin} from "../src/lib/util"; + +describe('util test', () => { + it('pathJoin', () => { + const path1 = "http://localhost:3000/" + const path2 = "/post/test.html" + + const result = pathJoin(path1, path2) + + logUtil.logInfo("pathJoin test=>") + logUtil.logInfo(result) + }) +}) \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 37d5b858..1d4103b9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1075,6 +1075,11 @@ globals@^11.1.0: resolved "https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== +graceful-fs@^4.1.11: + version "4.2.10" + resolved "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + has-flag@^3.0.0: version "3.0.0" resolved "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" @@ -1110,6 +1115,11 @@ iconv-lite@0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + inherits@2.0.4: version "2.0.4" resolved "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" @@ -1262,6 +1272,13 @@ node-fetch@2.6.7, node-fetch@^2.6.7: dependencies: whatwg-url "^5.0.0" +node-localstorage@^2.2.1: + version "2.2.1" + resolved "https://registry.npmmirror.com/node-localstorage/-/node-localstorage-2.2.1.tgz#869723550a4883e426cb391d2df0b563a51c7c1c" + integrity sha512-vv8fJuOUCCvSPjDjBLlMqYMHob4aGjkmrkaE42/mZr0VT+ZAU10jRF8oTnX9+pgU9/vYJ8P7YT3Vd6ajkmzSCw== + dependencies: + write-file-atomic "^1.1.4" + normalize-wheel-es@^1.2.0: version "1.2.0" resolved "https://registry.npmmirror.com/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz#0fa2593d619f7245a541652619105ab076acf09e" @@ -1473,6 +1490,11 @@ side-channel@^1.0.4: get-intrinsic "^1.0.2" object-inspect "^1.9.0" +slide@^1.1.5: + version "1.1.6" + resolved "https://registry.npmmirror.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" + integrity sha512-NwrtjCg+lZoqhFU8fOwl4ay2ei8PaqCBOUV3/ektPY9trO1yQ1oXEfmHAhKArUVUr/hOHvy5f6AdP17dCM0zMw== + source-map-js@^1.0.2: version "1.0.2" resolved "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" @@ -1710,6 +1732,15 @@ wrappy@1: resolved "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== +write-file-atomic@^1.1.4: + version "1.3.4" + resolved "https://registry.npmmirror.com/write-file-atomic/-/write-file-atomic-1.3.4.tgz#f807a4f0b1d9e913ae7a48112e6cc3af1991b45f" + integrity sha512-SdrHoC/yVBPpV0Xq/mUZQIpW2sWXAShb/V4pomcJXh92RuaO+f3UTWItiR3Px+pLnV2PvC2/bfn5cwr5X6Vfxw== + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + slide "^1.1.5" + xmlbuilder@8.2.x: version "8.2.2" resolved "https://registry.npmmirror.com/xmlbuilder/-/xmlbuilder-8.2.2.tgz#69248673410b4ba42e1a6136551d2922335aa773" From f38c043405f40649ce823baaad8d53e279283ac8 Mon Sep 17 00:00:00 2001 From: terwer Date: Sun, 21 Aug 2022 01:36:09 +0800 Subject: [PATCH 2/5] =?UTF-8?q?feat:#18=20=E5=AE=9E=E7=8E=B0metaweblog-api?= =?UTF-8?q?=E5=AE=A2=E6=88=B7=E7=AB=AF-=E9=80=9A=E7=94=A8=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tab/setting/CommonBlogSetting.vue | 177 +++++++++++++++++- .../tab/setting/MetaweblogSetting.vue | 6 +- .../commonsettingadaptor/KmsSetting.vue | 13 +- .../commonsettingadaptor/LiandiSetting.vue | 13 +- .../commonsettingadaptor/YuqueSetting.vue | 13 +- .../CnblogsSetting.vue | 3 +- src/lib/platform/commonblog/commonblogCfg.ts | 43 ++++- src/lib/platform/commonblog/kms/kmsCfg.ts | 15 +- .../platform/commonblog/liandi/liandiCfg.ts | 13 +- src/lib/platform/commonblog/yuque/yuqueCfg.ts | 13 +- src/locales/en_US.ts | 8 + src/locales/zh_CN.ts | 8 + src/vite-env.d.ts | 2 - .../commonblog/liandi/liandiApi.test.ts | 16 ++ test/test.ts | 25 --- test/testKmsFetch.ts | 25 --- test/testServer.ts | 56 ------ test/testYuqueFetch.ts | 11 -- 18 files changed, 322 insertions(+), 138 deletions(-) create mode 100644 test/lib/platform/commonblog/liandi/liandiApi.test.ts delete mode 100644 test/test.ts delete mode 100644 test/testKmsFetch.ts delete mode 100644 test/testServer.ts delete mode 100644 test/testYuqueFetch.ts diff --git a/src/components/tab/setting/CommonBlogSetting.vue b/src/components/tab/setting/CommonBlogSetting.vue index 271e235f..d3581752 100644 --- a/src/components/tab/setting/CommonBlogSetting.vue +++ b/src/components/tab/setting/CommonBlogSetting.vue @@ -1,11 +1,186 @@ + + + + + diff --git a/src/lib/platform/commonblog/commonblogCfg.ts b/src/lib/platform/commonblog/commonblogCfg.ts index 78c91c1f..35eaf1d3 100644 --- a/src/lib/platform/commonblog/commonblogCfg.ts +++ b/src/lib/platform/commonblog/commonblogCfg.ts @@ -1,3 +1,5 @@ +import {PageType} from "../metaweblog/IMetaweblogCfg"; + /** * 通用平台配置接口 */ @@ -10,10 +12,18 @@ export interface ICommonblogCfg { * API 地址 */ apiUrl: string, + /** + * 用户名 + */ + username?: string, + /** + * 密码 + */ + password?: string, /** * 鉴权token */ - token: string, + token?: string, /** * 是否发布 */ @@ -30,6 +40,10 @@ export interface ICommonblogCfg { * 文章预览链接 */ previewUrl?: string + /** + * token设置地址 + */ + tokenSettingUrl?: string } /** @@ -46,6 +60,15 @@ export class CommonblogCfg implements ICommonblogCfg { */ apiUrl: string + /** + * 用户名 + */ + username: string + /** + * 密码 + */ + password: string + /** * 鉴权token */ @@ -67,14 +90,26 @@ export class CommonblogCfg implements ICommonblogCfg { * 文章预览链接 */ previewUrl: string + /** + * 文章类型 + */ + pageType: PageType + /** + * token设置地址 + */ + tokenSettingUrl: string - constructor(apiUrl: string, token: string) { + constructor() { this.home = ""; - this.apiUrl = apiUrl; - this.token = token; + this.apiUrl = ""; + this.username = "" + this.password = "" + this.token = ""; this.apiStatus = false; this.blogName = ""; this.posidKey = ""; this.previewUrl = ""; + this.pageType = PageType.Markdown + this.tokenSettingUrl = "" } } \ No newline at end of file diff --git a/src/lib/platform/commonblog/kms/kmsCfg.ts b/src/lib/platform/commonblog/kms/kmsCfg.ts index a3e07711..7d97f53e 100644 --- a/src/lib/platform/commonblog/kms/kmsCfg.ts +++ b/src/lib/platform/commonblog/kms/kmsCfg.ts @@ -1,11 +1,20 @@ import {CommonblogCfg} from "../commonblogCfg"; +import {POSTID_KEY_CONSTANTS} from "../../../constants/postidKeyConstants"; +import {PageType} from "../../metaweblog/IMetaweblogCfg"; /** * Kms配置 */ -export class KmsCfg extends CommonblogCfg{ +export class KmsCfg extends CommonblogCfg { - constructor(apiUrl: string, token: string) { - super(apiUrl, token); + constructor() { + super(); + + this.home = "http://localhost:9564/kms16_release/kms/multidoc" + this.apiUrl = "http://localhost:9564/kms16_release/api/kms-multidoc/kmsMultidocKnowledgeRestService" + this.tokenSettingUrl = "http://localhost:9564/kms16_release/sys/profile/index.jsp#integrate/RestService/" + this.posidKey = POSTID_KEY_CONSTANTS.KMS_POSTID_KEY + this.previewUrl = "/kms_multidoc_knowledge/kmsMultidocKnowledge.do?method=view&fdId=[postid]" + this.pageType = PageType.Html } } \ No newline at end of file diff --git a/src/lib/platform/commonblog/liandi/liandiCfg.ts b/src/lib/platform/commonblog/liandi/liandiCfg.ts index 202abba6..e62b32b6 100644 --- a/src/lib/platform/commonblog/liandi/liandiCfg.ts +++ b/src/lib/platform/commonblog/liandi/liandiCfg.ts @@ -1,11 +1,20 @@ import {CommonblogCfg} from "../commonblogCfg"; +import {POSTID_KEY_CONSTANTS} from "../../../constants/postidKeyConstants"; +import {PageType} from "../../metaweblog/IMetaweblogCfg"; /** * 链滴配置 */ export class LiandiCfg extends CommonblogCfg { - constructor(apiUrl: string, token: string) { - super(apiUrl, token); + constructor() { + super(); + + this.home = "https://ld246.com/" + this.apiUrl = "https://ld246.com/api/v2" + this.tokenSettingUrl = "https://ld246.com/settings/account" + this.posidKey = POSTID_KEY_CONSTANTS.LIANDI_POSTID_KEY + this.previewUrl = "/article/[postid]" + this.pageType = PageType.Markdown } } \ No newline at end of file diff --git a/src/lib/platform/commonblog/yuque/yuqueCfg.ts b/src/lib/platform/commonblog/yuque/yuqueCfg.ts index 746d22d4..6ec80ccb 100644 --- a/src/lib/platform/commonblog/yuque/yuqueCfg.ts +++ b/src/lib/platform/commonblog/yuque/yuqueCfg.ts @@ -1,11 +1,20 @@ import {CommonblogCfg} from "../commonblogCfg"; +import {POSTID_KEY_CONSTANTS} from "../../../constants/postidKeyConstants"; +import {PageType} from "../../metaweblog/IMetaweblogCfg"; /** * 语雀配置 */ export class YuqueCfg extends CommonblogCfg { - constructor(apiUrl: string, token: string) { - super(apiUrl, token); + constructor() { + super(); + + this.home = "https://www.yuque.com/[user]" + this.apiUrl = "https://www.yuque.com/api/v2" + this.tokenSettingUrl = "https://www.yuque.com/settings/tokens" + this.posidKey = POSTID_KEY_CONSTANTS.YUQUE_POSTID_KEY + this.previewUrl = "https://www.yuque.com/terwer/[notebook]/[postid]" + this.pageType = PageType.Html } } \ No newline at end of file diff --git a/src/locales/en_US.ts b/src/locales/en_US.ts index 3e0ae6ec..10430158 100644 --- a/src/locales/en_US.ts +++ b/src/locales/en_US.ts @@ -157,4 +157,12 @@ export default { "dynamic.platform.opt.item.select": "Item no select", "dynamic.platform.opt.item.select.tip": "The current selection is:", "dynamic.platform.opt.item.no.select.tip": "Please select the line to be deleted", + "setting.common.home":"Home", + "setting.common.apiurl":"API", + "setting.common.token":"Token", + "setting.common.token.gen":"Token addr", + "setting.common.username":"Username", + "setting.common.username.gen":"Username setting", + "setting.common.password":"Password", + "setting.blog.platform.support.common": "Current platform:", } \ No newline at end of file diff --git a/src/locales/zh_CN.ts b/src/locales/zh_CN.ts index c7f9cec2..a779a8ba 100644 --- a/src/locales/zh_CN.ts +++ b/src/locales/zh_CN.ts @@ -160,4 +160,12 @@ export default { "dynamic.platform.opt.item.select": "未选择", "dynamic.platform.opt.item.select.tip": "当前选择的是:", "dynamic.platform.opt.item.no.select.tip": "请选择要删除的行", + "setting.common.home":"平台首页", + "setting.common.apiurl":"API地址", + "setting.common.token":"鉴权token", + "setting.common.token.gen":"Token生成地址", + "setting.common.username":"用户名", + "setting.common.username.gen":"访问策略设置", + "setting.common.password":"密码", + "setting.blog.platform.support.common": "您当前操作的平台是:", } \ No newline at end of file diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts index 10eb5191..79c49c03 100644 --- a/src/vite-env.d.ts +++ b/src/vite-env.d.ts @@ -14,8 +14,6 @@ interface ImportMetaEnv { readonly VITE_OPT_PWD: string readonly VITE_DEBUG_MODE: string readonly VITE_MIDDLEWARE_URL: string - readonly VITE_LIANDI_API_URL: string - readonly VITE_LIANDI_CONFIG_TOKEN: string } interface ImportMeta { diff --git a/test/lib/platform/commonblog/liandi/liandiApi.test.ts b/test/lib/platform/commonblog/liandi/liandiApi.test.ts new file mode 100644 index 00000000..b620b944 --- /dev/null +++ b/test/lib/platform/commonblog/liandi/liandiApi.test.ts @@ -0,0 +1,16 @@ +import {describe} from "vitest"; +import {LiandiApi} from "../../../../../src/lib/platform/commonblog/liandi/liandiApi"; +import logUtil from "../../../../../src/lib/logUtil"; + +describe("liandiApi", async () => { + + it("init", async () => { + + }) + + it("getUser", async () => { + const liandiApi = new LiandiApi("", "") + const result = await liandiApi.getUser() + logUtil.logInfo(result) + }) +}) \ No newline at end of file diff --git a/test/test.ts b/test/test.ts deleted file mode 100644 index 5523a43e..00000000 --- a/test/test.ts +++ /dev/null @@ -1,25 +0,0 @@ -// import {LiandiApi} from "../src/lib/platform/commonblog/liandi/liandiApi"; -// import {initTestEnv} from "./testEnv"; -// -// // 初始化测试环境变量 -// initTestEnv() -// -// // @ts-ignore -// const liandiApi = new LiandiApi(process.env.VITE_LIANDI_API_URL, process.env.VITE_LIANDI_CONFIG_TOKEN) -// const result = await liandiApi.getUser() -// console.logUtil(result) - -// import {curlFileToFetch} from "./testCurl2Fetch"; -// -// const result = curlFileToFetch("src/lib/platform/commonblog/kms/test/curl.local") -// console.logUtil(result) - -// import {testKmsFetch} from "./testKmsFetch"; -// -// await testKmsFetch() - -import {testYuqueFetch} from "./testYuqueFetch"; - -await testYuqueFetch() - -export default {} \ No newline at end of file diff --git a/test/testKmsFetch.ts b/test/testKmsFetch.ts deleted file mode 100644 index bef76060..00000000 --- a/test/testKmsFetch.ts +++ /dev/null @@ -1,25 +0,0 @@ -import {Base64} from 'js-base64'; - -export async function testKmsFetch() { - const form = new URLSearchParams(); - form.append("fdDocTemplateId", "181f20dcfc5744e90b0b8254499b4af0") - form.append('docSubject', '测试文档内容'); - form.append("docContent", "测试文档内容") - form.append("fdDocCreator", "180f58069509ef61dd964994e4591dab") - form.append("authorType", "1") - form.append("docAuthor", "180f58069509ef61dd964994e4591dab") - - const kmsUsername = "" - const kmsPassword = "" - const basicToken = Base64.toBase64(`${kmsUsername}:${kmsPassword}`) - - const response = await fetch("http://localhost:9564/kms16_release/api/kms-multidoc/kmsMultidocKnowledgeRestService/addDoc", { - body: form, - headers: { - Authorization: `Basic ${basicToken}` - }, - method: "POST" - }) - const json = await response.json() - console.log(json) -} \ No newline at end of file diff --git a/test/testServer.ts b/test/testServer.ts deleted file mode 100644 index 0cbeed72..00000000 --- a/test/testServer.ts +++ /dev/null @@ -1,56 +0,0 @@ -import express, * as express_test from "express" -import {Request, Response} from "express"; -// @ts-ignore -import fetch from 'node-fetch'; - -// Create a new express application instance -const app: express.Application = express(); - -//设置CORS -app.all('*', function (req, res, next) { - res.header('Access-Control-Allow-Origin', '*'); //当允许携带cookies此处的白名单不能写’*’ - res.header('Access-Control-Allow-Headers', 'content-type,Content-Length,Authorization,Origin,Accept,X-Requested-With'); //允许的请求头 - res.header('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT, DELETE'); //允许的请求方法 - res.header('Access-Control-Allow-Credentials', 'true'); //允许携带cookies - next(); -}); -app.use(express.json()); - -app.get('/', (req: Request, res: Response) => { - res.send('Hello World!'); -}); - -app.get('/api', (req: Request, res: Response) => { - res.setHeader('Content-Type', 'text/html'); - res.setHeader('Cache-Control', 's-max-age=1, stale-while-revalidate'); - res.end(`visit xmlrpc middleware
- /api/middleware/xmlrpc - `); -}); - -app.post('/api/middleware/xmlrpc', async (req: Request, res: Response) => { - const headers = req.headers; - // console.logUtil(headers) - const body = req.body - // console.logUtil(body) - - // 获取代理参数 - console.log("body.fetchParams.apiUrl=>") - console.log(body.fetchParams.apiUrl) - console.log("body.fetchParams.fetchOption=>") - console.log(body.fetchParams.fetchOption) - - // 发送真实请求并获取结果 - console.log("开的发送真实请求并获取结果") - const rres = await fetch(body.fetchParams.apiUrl, body.fetchParams.fetchOption) - const rresult = await rres.text() - console.log("请求完成,准备返回真实结果") - - res.end(rresult); -}); - -app.listen(3000, () => { - console.log('Example app listening on port 3000!'); -}); - -export default {} \ No newline at end of file diff --git a/test/testYuqueFetch.ts b/test/testYuqueFetch.ts deleted file mode 100644 index 9140bf7c..00000000 --- a/test/testYuqueFetch.ts +++ /dev/null @@ -1,11 +0,0 @@ -export async function testYuqueFetch() { - const token = "" - - const response = await fetch("https://www.yuque.com/api/v2/hello", { - headers: { - "X-Auth-Token": `${token}` - } - }) - const json = await response.json() - console.log(json) -} \ No newline at end of file From f2598fbe8bd96b352d0499b57915deefe6ea2710 Mon Sep 17 00:00:00 2001 From: terwer Date: Sun, 21 Aug 2022 02:39:13 +0800 Subject: [PATCH 3/5] =?UTF-8?q?feat:#18=20=E5=AE=9E=E7=8E=B0metaweblog-api?= =?UTF-8?q?=E5=AE=A2=E6=88=B7=E7=AB=AF-=E9=87=8D=E5=86=99API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../commonblog/commonblogApiAdaptor.ts | 32 ++++++++++++------- .../commonblog/liandi/liandiApiAdaptor.ts | 14 ++++++-- 2 files changed, 32 insertions(+), 14 deletions(-) diff --git a/src/lib/platform/commonblog/commonblogApiAdaptor.ts b/src/lib/platform/commonblog/commonblogApiAdaptor.ts index 39320983..782940dd 100644 --- a/src/lib/platform/commonblog/commonblogApiAdaptor.ts +++ b/src/lib/platform/commonblog/commonblogApiAdaptor.ts @@ -1,32 +1,40 @@ import {IApi} from "../../api"; import {Post} from "../../common/post"; import {UserBlog} from "../../common/userBlog"; +import {getJSONConf} from "../../config"; +import {ICommonblogCfg} from "./commonblogCfg"; /** * 通用平台接口适配器 */ export class CommonblogApiAdaptor implements IApi { - deletePost(postid: string): Promise { - return Promise.resolve(false); + protected cfg: ICommonblogCfg + + constructor(apiType: string) { + this.cfg = getJSONConf(apiType) + } + + public async deletePost(postid: string): Promise { + throw new Error("该功能未实现,请在子类重写改方法") } - editPost(postid: string, post: Post, publish?: boolean): Promise { - return Promise.resolve(false); + public async editPost(postid: string, post: Post, publish?: boolean): Promise { + throw new Error("该功能未实现,请在子类重写改方法") } - getPost(postid: string, useSlug?: boolean): Promise { - return Promise.resolve(new Post()); + public async getPost(postid: string, useSlug?: boolean): Promise { + throw new Error("该功能未实现,请在子类重写改方法") } - getRecentPosts(numOfPosts: number, page?: number, keyword?: string): Promise> { - return Promise.resolve([]); + public async getRecentPosts(numOfPosts: number, page?: number, keyword?: string): Promise> { + throw new Error("该功能未实现,请在子类重写改方法") } - getUsersBlogs(): Promise> { - return Promise.resolve([]); + public async getUsersBlogs(): Promise> { + throw new Error("该功能未实现,请在子类重写改方法") } - newPost(post: Post, publish?: boolean): Promise { - return Promise.resolve(""); + public async newPost(post: Post, publish?: boolean): Promise { + throw new Error("该功能未实现,请在子类重写改方法") } } \ No newline at end of file diff --git a/src/lib/platform/commonblog/liandi/liandiApiAdaptor.ts b/src/lib/platform/commonblog/liandi/liandiApiAdaptor.ts index c6ee973f..dc900cc7 100644 --- a/src/lib/platform/commonblog/liandi/liandiApiAdaptor.ts +++ b/src/lib/platform/commonblog/liandi/liandiApiAdaptor.ts @@ -2,6 +2,10 @@ import {LiandiApi} from "./liandiApi"; import {IApi} from "../../../api"; import {CommonblogApiAdaptor} from "../commonblogApiAdaptor"; import {ICommonblogCfg} from "../commonblogCfg"; +import {getJSONConf} from "../../../config"; +import {API_TYPE_CONSTANTS} from "../../../constants/apiTypeConstants"; +import {UserBlog} from "../../../common/userBlog"; +import logUtil from "../../../logUtil"; /** * 链滴的API适配器 @@ -11,7 +15,13 @@ export class LiandiApiAdaptor extends CommonblogApiAdaptor implements IApi { private readonly liandiApi: LiandiApi constructor() { - super(); - this.liandiApi = new LiandiApi("apiUrl", "token") + super(API_TYPE_CONSTANTS.API_TYPE_LIANDI); + this.liandiApi = new LiandiApi(this.cfg.apiUrl, this.cfg.token || "") + } + + public async getUsersBlogs(): Promise> { + const user = await this.liandiApi.getUser() + logUtil.logInfo("user=>", user) + return super.getUsersBlogs(); } } \ No newline at end of file From de771a305e1565433078c03848488e71ce5da9a4 Mon Sep 17 00:00:00 2001 From: terwer Date: Sun, 21 Aug 2022 02:44:19 +0800 Subject: [PATCH 4/5] =?UTF-8?q?feat:#18=20=E5=AE=9E=E7=8E=B0metaweblog-api?= =?UTF-8?q?=E5=AE=A2=E6=88=B7=E7=AB=AF-=E4=BF=AE=E5=A4=8D=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lib/platform/commonblog/kms/kmsApiAdaptor.ts | 11 +++++------ .../platform/commonblog/liandi/liandiApiAdaptor.ts | 1 - src/lib/platform/commonblog/yuque/yuqueApiAdaptor.ts | 8 +++----- 3 files changed, 8 insertions(+), 12 deletions(-) diff --git a/src/lib/platform/commonblog/kms/kmsApiAdaptor.ts b/src/lib/platform/commonblog/kms/kmsApiAdaptor.ts index 102d5cc9..34c01a76 100644 --- a/src/lib/platform/commonblog/kms/kmsApiAdaptor.ts +++ b/src/lib/platform/commonblog/kms/kmsApiAdaptor.ts @@ -2,6 +2,7 @@ import {IApi} from "../../../api"; import {CommonblogApiAdaptor} from "../commonblogApiAdaptor"; import {Base64} from "js-base64"; import {KmsApi} from "./kmsApi"; +import {API_TYPE_CONSTANTS} from "../../../constants/apiTypeConstants"; /** * 知识仓库的API适配器 @@ -10,14 +11,12 @@ export class KmsApiAdaptor extends CommonblogApiAdaptor implements IApi { private readonly kmsApi: KmsApi constructor() { - super(); + super(API_TYPE_CONSTANTS.API_TYPE_KMS); - const baseUrl = "http://localhost:9564/kms16_release/api/kms-multidoc/kmsMultidocKnowledgeRestService" - - const kmsUsername = "" - const kmsPassword = "" + const kmsUsername = this.cfg.username || "" + const kmsPassword = this.cfg.password || "" const basicToken = Base64.toBase64(`${kmsUsername}:${kmsPassword}`) - this.kmsApi = new KmsApi(baseUrl, basicToken) + this.kmsApi = new KmsApi(this.cfg.apiUrl, basicToken) } } \ No newline at end of file diff --git a/src/lib/platform/commonblog/liandi/liandiApiAdaptor.ts b/src/lib/platform/commonblog/liandi/liandiApiAdaptor.ts index dc900cc7..8084da88 100644 --- a/src/lib/platform/commonblog/liandi/liandiApiAdaptor.ts +++ b/src/lib/platform/commonblog/liandi/liandiApiAdaptor.ts @@ -11,7 +11,6 @@ import logUtil from "../../../logUtil"; * 链滴的API适配器 */ export class LiandiApiAdaptor extends CommonblogApiAdaptor implements IApi { - private readonly liandiApi: LiandiApi constructor() { diff --git a/src/lib/platform/commonblog/yuque/yuqueApiAdaptor.ts b/src/lib/platform/commonblog/yuque/yuqueApiAdaptor.ts index 55219bff..120390cf 100644 --- a/src/lib/platform/commonblog/yuque/yuqueApiAdaptor.ts +++ b/src/lib/platform/commonblog/yuque/yuqueApiAdaptor.ts @@ -1,6 +1,7 @@ import {IApi} from "../../../api"; import {CommonblogApiAdaptor} from "../commonblogApiAdaptor"; import {YuqueApi} from "./yuqueApi"; +import {API_TYPE_CONSTANTS} from "../../../constants/apiTypeConstants"; /** * 语雀的API适配器 @@ -9,10 +10,7 @@ export class YuqueApiAdaptor extends CommonblogApiAdaptor implements IApi { private readonly yuqueApi: YuqueApi constructor() { - super(); - const baseUrl = "" - const yuqueToken = "" - - this.yuqueApi = new YuqueApi(baseUrl, yuqueToken) + super(API_TYPE_CONSTANTS.API_TYPE_YUQUE); + this.yuqueApi = new YuqueApi(this.cfg.apiUrl, this.cfg.token || "") } } \ No newline at end of file From f1546a41bfa88fa2c0603d3e26bd221f73910d35 Mon Sep 17 00:00:00 2001 From: terwer Date: Sun, 21 Aug 2022 02:45:13 +0800 Subject: [PATCH 5/5] =?UTF-8?q?feat:#18=20=E5=AE=9E=E7=8E=B0metaweblog-api?= =?UTF-8?q?=E5=AE=A2=E6=88=B7=E7=AB=AF-=E4=BC=98=E5=8C=96=E5=BC=95?= =?UTF-8?q?=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lib/platform/commonblog/liandi/liandiApiAdaptor.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/lib/platform/commonblog/liandi/liandiApiAdaptor.ts b/src/lib/platform/commonblog/liandi/liandiApiAdaptor.ts index 8084da88..d8e73306 100644 --- a/src/lib/platform/commonblog/liandi/liandiApiAdaptor.ts +++ b/src/lib/platform/commonblog/liandi/liandiApiAdaptor.ts @@ -1,8 +1,6 @@ import {LiandiApi} from "./liandiApi"; import {IApi} from "../../../api"; import {CommonblogApiAdaptor} from "../commonblogApiAdaptor"; -import {ICommonblogCfg} from "../commonblogCfg"; -import {getJSONConf} from "../../../config"; import {API_TYPE_CONSTANTS} from "../../../constants/apiTypeConstants"; import {UserBlog} from "../../../common/userBlog"; import logUtil from "../../../logUtil";