summaryrefslogtreecommitdiff
path: root/src/server/api/openapi
diff options
context:
space:
mode:
authortamaina <tamaina@hotmail.co.jp>2019-04-15 12:10:40 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2019-04-15 12:10:40 +0900
commit94f8a145eca5e1ed6b979c2c237e399cc7a96083 (patch)
tree96380b38f12fd6d1763154edd6e5460fc93a975a /src/server/api/openapi
parentClean up (diff)
downloadsharkey-94f8a145eca5e1ed6b979c2c237e399cc7a96083.tar.gz
sharkey-94f8a145eca5e1ed6b979c2c237e399cc7a96083.tar.bz2
sharkey-94f8a145eca5e1ed6b979c2c237e399cc7a96083.zip
Better permisson Fix #2341 (#4611)
* Better permisson Fix #2341 * add kinds.ts * test * fix * v11 * fix
Diffstat (limited to 'src/server/api/openapi')
-rw-r--r--src/server/api/openapi/description.ts20
-rw-r--r--src/server/api/openapi/gen-spec.ts9
2 files changed, 24 insertions, 5 deletions
diff --git a/src/server/api/openapi/description.ts b/src/server/api/openapi/description.ts
index 04a0b4c719..b801c86387 100644
--- a/src/server/api/openapi/description.ts
+++ b/src/server/api/openapi/description.ts
@@ -1,6 +1,14 @@
import config from '../../../config';
+import { IKindInfo, kinds } from '../kinds';
+
+export function getDescription(lang = 'ja-JP'): string {
+ const permissionTable = (Object.entries(kinds()) as [string, IKindInfo][])
+ .map(e => `|${e[0]}|${e[1].descs[lang]}|${e[1].endpoints.map(f => `[${f}](#operation/${f})`).join(', ')}|`)
+ .join('\n');
+
+ const descriptions = {
+ 'ja-JP': `**Misskey is a decentralized microblogging platform.**
-export const description = `
## Usage
**APIはすべてPOSTでリクエスト/レスポンスともにJSON形式です。**
一部のAPIはリクエストに認証情報(APIキー)が必要です。リクエストの際に\`i\`というパラメータでAPIキーを添付してください。
@@ -44,4 +52,12 @@ APIキーの生成方法を擬似コードで表すと次のようになりま
\`\`\` js
const i = sha256(userToken + secretKey);
\`\`\`
-`;
+
+## Permissions
+|Permisson (kind)|Description|Endpoints|
+|:--|:--|:--|
+${permissionTable}
+`
+ } as { [x: string]: string };
+ return lang in descriptions ? descriptions[lang] : descriptions['ja-JP'];
+}
diff --git a/src/server/api/openapi/gen-spec.ts b/src/server/api/openapi/gen-spec.ts
index 915fb5a6a3..d194c6c8a8 100644
--- a/src/server/api/openapi/gen-spec.ts
+++ b/src/server/api/openapi/gen-spec.ts
@@ -3,7 +3,7 @@ import { Context } from 'cafy';
import config from '../../../config';
import { errors as basicErrors } from './errors';
import { schemas } from './schemas';
-import { description } from './description';
+import { getDescription } from './description';
import { convertOpenApiSchema } from '../../../misc/schema';
export function genOpenapiSpec(lang = 'ja-JP') {
@@ -13,7 +13,7 @@ export function genOpenapiSpec(lang = 'ja-JP') {
info: {
version: 'v1',
title: 'Misskey API',
- description: '**Misskey is a decentralized microblogging platform.**\n\n' + description,
+ description: getDescription(lang),
'x-logo': { url: '/assets/api-doc.png' }
},
@@ -110,7 +110,10 @@ export function genOpenapiSpec(lang = 'ja-JP') {
let desc = (endpoint.meta.desc ? endpoint.meta.desc[lang] : 'No description provided.') + '\n\n';
desc += `**Credential required**: *${endpoint.meta.requireCredential ? 'Yes' : 'No'}*`;
- if (endpoint.meta.kind) desc += ` / **Permission**: *${endpoint.meta.kind}*`;
+ if (endpoint.meta.kind) {
+ const kind = endpoint.meta.kind;
+ desc += ` / **Permission**: *${kind}*`;
+ }
const info = {
operationId: endpoint.name,