summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2019-04-15 12:20:48 +0900
committersyuilo <syuilotan@yahoo.co.jp>2019-04-15 12:20:48 +0900
commit772063aade67b43545098751b8dc0dbfb7af4ba0 (patch)
tree55bfe2e2ae3208c1eee5c4cfe252d95131a02599
parentMerge branch 'develop' of https://github.com/syuilo/misskey into develop (diff)
downloadsharkey-772063aade67b43545098751b8dc0dbfb7af4ba0.tar.gz
sharkey-772063aade67b43545098751b8dc0dbfb7af4ba0.tar.bz2
sharkey-772063aade67b43545098751b8dc0dbfb7af4ba0.zip
Refactor
-rw-r--r--src/client/app/dev/views/new-app.vue8
-rw-r--r--src/server/api/endpoints/permissions.ts29
-rw-r--r--src/server/api/kinds.ts38
-rw-r--r--src/server/api/openapi/description.ts37
-rw-r--r--test/api.ts10
5 files changed, 39 insertions, 83 deletions
diff --git a/src/client/app/dev/views/new-app.vue b/src/client/app/dev/views/new-app.vue
index 6b67d220a7..dbb41211cc 100644
--- a/src/client/app/dev/views/new-app.vue
+++ b/src/client/app/dev/views/new-app.vue
@@ -30,6 +30,7 @@
<script lang="ts">
import Vue from 'vue';
import i18n from '../../i18n';
+import { kinds } from '../../../../server/api/kinds';
export default Vue.extend({
i18n: i18n('dev/views/new-app.vue'),
@@ -40,14 +41,9 @@ export default Vue.extend({
cb: '',
nidState: null,
permission: [],
- permissionsList: []
+ permissionsList: kinds
};
},
- created() {
- this.$root.api('permissions').then(permissions => {
- this.permissionsList = permissions
- });
- },
methods: {
onSubmit() {
this.$root.api('app/create', {
diff --git a/src/server/api/endpoints/permissions.ts b/src/server/api/endpoints/permissions.ts
deleted file mode 100644
index 347e1e3f2e..0000000000
--- a/src/server/api/endpoints/permissions.ts
+++ /dev/null
@@ -1,29 +0,0 @@
-import define from '../define';
-import { kindsList } from '../kinds';
-
-export const meta = {
- stability: 'stable',
-
- desc: {
- 'ja-JP': 'パーミッションの一覧を返します。',
- 'en-US': 'Get the list of permissons.'
- },
-
- tags: ['meta'],
-
- requireCredential: false,
-
- params: {
- },
-
- res: {
- type: 'array',
- items: {
- type: 'string',
- }
- },
-};
-
-export default define(meta, async () => {
- return kindsList;
-});
diff --git a/src/server/api/kinds.ts b/src/server/api/kinds.ts
index d496fa6919..03ed3e7cd8 100644
--- a/src/server/api/kinds.ts
+++ b/src/server/api/kinds.ts
@@ -1,8 +1,4 @@
-import endpoints from './endpoints';
-import * as locale from '../../../locales/';
-import { fromEntries } from '../../prelude/array';
-
-export const kindsList = [
+export const kinds = [
'read:account',
'write:account',
'read:blocks',
@@ -24,35 +20,3 @@ export const kindsList = [
'write:reactions',
'write:votes'
];
-
-export interface IKindInfo {
- endpoints: string[];
- descs: { [x: string]: string; };
-}
-
-export function kinds() {
- const kinds = fromEntries(
- kindsList
- .map(k => [k, {
- endpoints: [],
- descs: fromEntries(
- Object.keys(locale)
- .map(l => [l, locale[l].common.permissions[k] as string] as [string, string])
- ) as { [x: string]: string; }
- }] as [ string, IKindInfo ])
- ) as { [x: string]: IKindInfo; };
-
- const errors = [] as string[][];
-
- for (const endpoint of endpoints.filter(ep => !ep.meta.secure)) {
- if (endpoint.meta.kind) {
- const kind = endpoint.meta.kind;
- if (kind in kinds) kinds[kind].endpoints.push(endpoint.name);
- else errors.push([kind, endpoint.name]);
- }
- }
-
- if (errors.length > 0) throw Error('\n ' + errors.map((e) => `Unknown kind (permission) "${e[0]}" found at ${e[1]}.`).join('\n '));
-
- return kinds;
-}
diff --git a/src/server/api/openapi/description.ts b/src/server/api/openapi/description.ts
index b801c86387..0a4c8699d1 100644
--- a/src/server/api/openapi/description.ts
+++ b/src/server/api/openapi/description.ts
@@ -1,5 +1,40 @@
import config from '../../../config';
-import { IKindInfo, kinds } from '../kinds';
+import endpoints from '../endpoints';
+import * as locale from '../../../../locales/';
+import { fromEntries } from '../../../prelude/array';
+import { kinds as kindsList } from '../kinds';
+
+export interface IKindInfo {
+ endpoints: string[];
+ descs: { [x: string]: string; };
+}
+
+export function kinds() {
+ const kinds = fromEntries(
+ kindsList
+ .map(k => [k, {
+ endpoints: [],
+ descs: fromEntries(
+ Object.keys(locale)
+ .map(l => [l, locale[l].common.permissions[k] as string] as [string, string])
+ ) as { [x: string]: string; }
+ }] as [ string, IKindInfo ])
+ ) as { [x: string]: IKindInfo; };
+
+ const errors = [] as string[][];
+
+ for (const endpoint of endpoints.filter(ep => !ep.meta.secure)) {
+ if (endpoint.meta.kind) {
+ const kind = endpoint.meta.kind;
+ if (kind in kinds) kinds[kind].endpoints.push(endpoint.name);
+ else errors.push([kind, endpoint.name]);
+ }
+ }
+
+ if (errors.length > 0) throw Error('\n ' + errors.map((e) => `Unknown kind (permission) "${e[0]}" found at ${e[1]}.`).join('\n '));
+
+ return kinds;
+}
export function getDescription(lang = 'ja-JP'): string {
const permissionTable = (Object.entries(kinds()) as [string, IKindInfo][])
diff --git a/test/api.ts b/test/api.ts
index 318aa84248..570ab6833d 100644
--- a/test/api.ts
+++ b/test/api.ts
@@ -18,8 +18,6 @@ import * as assert from 'assert';
import * as childProcess from 'child_process';
import { async, signup, request, post, react, uploadFile } from './utils';
-import { kinds } from '../src/server/api/kinds';
-
describe('API', () => {
let p: childProcess.ChildProcess;
@@ -967,13 +965,5 @@ describe('API', () => {
assert.strictEqual(res.body[0].id, alicePost.id);
}));
});
-
- describe('kinds', () => {
- it('登録されていないパーミッションを利用しているAPIがない', () => {
- const res = kinds();
-
- assert.strictEqual(typeof res === 'object', true);
- });
- });
});
*/