summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/client/app/auth/views/form.vue2
-rw-r--r--src/client/app/dev/views/new-app.vue41
-rw-r--r--src/models/app.ts10
-rw-r--r--src/server/api/endpoints/app/create.ts12
-rw-r--r--src/server/api/endpoints/app/name_id/available.ts31
-rw-r--r--src/server/api/endpoints/app/show.ts14
6 files changed, 7 insertions, 103 deletions
diff --git a/src/client/app/auth/views/form.vue b/src/client/app/auth/views/form.vue
index 2d1e6d3e82..d18a4f7eb4 100644
--- a/src/client/app/auth/views/form.vue
+++ b/src/client/app/auth/views/form.vue
@@ -7,7 +7,7 @@
<div class="app">
<section>
<h2>{{ app.name }}</h2>
- <p class="nid">{{ app.nameId }}</p>
+ <p class="id">{{ app.id }}</p>
<p class="description">{{ app.description }}</p>
</section>
<section>
diff --git a/src/client/app/dev/views/new-app.vue b/src/client/app/dev/views/new-app.vue
index 87b35db259..7321df00c0 100644
--- a/src/client/app/dev/views/new-app.vue
+++ b/src/client/app/dev/views/new-app.vue
@@ -5,16 +5,6 @@
<b-form-group label="アプリケーション名" description="あなたのアプリの名称。">
<b-form-input v-model="name" type="text" placeholder="ex) Misskey for iOS" autocomplete="off" required/>
</b-form-group>
- <b-form-group label="ID" description="あなたのアプリのID。">
- <b-input v-model="nid" type="text" pattern="^[a-zA-Z0-9_]{1,30}$" placeholder="ex) misskey-for-ios" autocomplete="off" required/>
- <p class="info" v-if="nidState == 'wait'" style="color:#999">%fa:spinner .pulse .fw%確認しています...</p>
- <p class="info" v-if="nidState == 'ok'" style="color:#3CB7B5">%fa:fw check%利用できます</p>
- <p class="info" v-if="nidState == 'unavailable'" style="color:#FF1161">%fa:fw exclamation-triangle%既に利用されています</p>
- <p class="info" v-if="nidState == 'error'" style="color:#FF1161">%fa:fw exclamation-triangle%通信エラー</p>
- <p class="info" v-if="nidState == 'invalid-format'" style="color:#FF1161">%fa:fw exclamation-triangle%a~z、A~Z、0~9、_が使えます</p>
- <p class="info" v-if="nidState == 'min-range'" style="color:#FF1161">%fa:fw exclamation-triangle%1文字以上でお願いします!</p>
- <p class="info" v-if="nidState == 'max-range'" style="color:#FF1161">%fa:fw exclamation-triangle%30文字以内でお願いします</p>
- </b-form-group>
<b-form-group label="アプリの概要" description="あなたのアプリの簡単な説明や紹介。">
<b-textarea v-model="description" placeholder="ex) Misskey iOSクライアント。" autocomplete="off" required></b-textarea>
</b-form-group>
@@ -50,47 +40,16 @@ export default Vue.extend({
data() {
return {
name: '',
- nid: '',
description: '',
cb: '',
nidState: null,
permission: []
};
},
- watch: {
- nid() {
- if (this.nid == null || this.nid == '') {
- this.nidState = null;
- return;
- }
-
- const err =
- !this.nid.match(/^[a-zA-Z0-9_]+$/) ? 'invalid-format' :
- this.nid.length < 1 ? 'min-range' :
- this.nid.length > 30 ? 'max-range' :
- null;
-
- if (err) {
- this.nidState = err;
- return;
- }
-
- this.nidState = 'wait';
-
- (this as any).api('app/name_id/available', {
- nameId: this.nid
- }).then(result => {
- this.nidState = result.available ? 'ok' : 'unavailable';
- }).catch(err => {
- this.nidState = 'error';
- });
- }
- },
methods: {
onSubmit() {
(this as any).api('app/create', {
name: this.name,
- nameId: this.nid,
description: this.description,
callbackUrl: this.cb,
permission: this.permission
diff --git a/src/models/app.ts b/src/models/app.ts
index 01cc946c6e..c0b2b5a0f3 100644
--- a/src/models/app.ts
+++ b/src/models/app.ts
@@ -5,8 +5,6 @@ import db from '../db/mongodb';
import config from '../config';
const App = db.get<IApp>('apps');
-App.createIndex('nameId');
-App.createIndex('nameIdLower');
App.createIndex('secret');
export default App;
@@ -16,17 +14,11 @@ export type IApp = {
userId: mongo.ObjectID | null;
secret: string;
name: string;
- nameId: string;
- nameIdLower: string;
description: string;
permission: string[];
callbackUrl: string;
};
-export function isValidNameId(nameId: string): boolean {
- return typeof nameId == 'string' && /^[a-zA-Z0-9_]{1,30}$/.test(nameId);
-}
-
/**
* Pack an app for API response
*
@@ -76,8 +68,6 @@ export const pack = (
_app.id = _app._id;
delete _app._id;
- delete _app.nameIdLower;
-
// Visible by only owner
if (!opts.includeSecret) {
delete _app.secret;
diff --git a/src/server/api/endpoints/app/create.ts b/src/server/api/endpoints/app/create.ts
index b2a5fb73c1..afe3ab35af 100644
--- a/src/server/api/endpoints/app/create.ts
+++ b/src/server/api/endpoints/app/create.ts
@@ -1,6 +1,6 @@
import rndstr from 'rndstr';
import $ from 'cafy';
-import App, { isValidNameId, pack } from '../../../../models/app';
+import App, { pack } from '../../../../models/app';
import { ILocalUser } from '../../../../models/user';
export const meta = {
@@ -11,10 +11,6 @@ export const meta = {
* Create an app
*/
export default async (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
- // Get 'nameId' parameter
- const [nameId, nameIdErr] = $.str.pipe(isValidNameId).get(params.nameId);
- if (nameIdErr) return rej('invalid nameId param');
-
// Get 'name' parameter
const [name, nameErr] = $.str.get(params.name);
if (nameErr) return rej('invalid name param');
@@ -40,8 +36,6 @@ export default async (params: any, user: ILocalUser) => new Promise(async (res,
createdAt: new Date(),
userId: user && user._id,
name: name,
- nameId: nameId,
- nameIdLower: nameId.toLowerCase(),
description: description,
permission: permission,
callbackUrl: callbackUrl,
@@ -49,5 +43,7 @@ export default async (params: any, user: ILocalUser) => new Promise(async (res,
});
// Response
- res(await pack(app));
+ res(await pack(app, null, {
+ includeSecret: true
+ }));
});
diff --git a/src/server/api/endpoints/app/name_id/available.ts b/src/server/api/endpoints/app/name_id/available.ts
deleted file mode 100644
index 2cd56e92d6..0000000000
--- a/src/server/api/endpoints/app/name_id/available.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-/**
- * Module dependencies
- */
-import $ from 'cafy';
-import App from '../../../../../models/app';
-import { isValidNameId } from '../../../../../models/app';
-
-/**
- * Check available nameId of app
- *
- * @param {any} params
- * @return {Promise<any>}
- */
-export default async (params: any) => new Promise(async (res, rej) => {
- // Get 'nameId' parameter
- const [nameId, nameIdErr] = $.str.pipe(isValidNameId).get(params.nameId);
- if (nameIdErr) return rej('invalid nameId param');
-
- // Get exist
- const exist = await App
- .count({
- nameIdLower: nameId.toLowerCase()
- }, {
- limit: 1
- });
-
- // Reply
- res({
- available: exist === 0
- });
-});
diff --git a/src/server/api/endpoints/app/show.ts b/src/server/api/endpoints/app/show.ts
index 6668d0f243..072fbaeb79 100644
--- a/src/server/api/endpoints/app/show.ts
+++ b/src/server/api/endpoints/app/show.ts
@@ -9,21 +9,11 @@ export default (params: any, user: ILocalUser, app: IApp) => new Promise(async (
const isSecure = user != null && app == null;
// Get 'appId' parameter
- const [appId, appIdErr] = $.type(ID).optional.get(params.appId);
+ const [appId, appIdErr] = $.type(ID).get(params.appId);
if (appIdErr) return rej('invalid appId param');
- // Get 'nameId' parameter
- const [nameId, nameIdErr] = $.str.optional.get(params.nameId);
- if (nameIdErr) return rej('invalid nameId param');
-
- if (appId === undefined && nameId === undefined) {
- return rej('appId or nameId is required');
- }
-
// Lookup app
- const ap = appId !== undefined
- ? await App.findOne({ _id: appId })
- : await App.findOne({ nameIdLower: nameId.toLowerCase() });
+ const ap = await App.findOne({ _id: appId });
if (ap === null) {
return rej('app not found');