* Better permisson Fix #2341 * add kinds.ts * test * fix * v11 * fix
This commit is contained in:
parent
b357afa30a
commit
94f8a145ec
19 changed files with 183 additions and 49 deletions
|
|
@ -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'];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue