diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2017-03-03 19:48:00 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2017-03-03 19:48:00 +0900 |
| commit | f11bdf36b9c75a3e10850e46ef045cf9675ab7f7 (patch) | |
| tree | a72f760e3f1f218f8830326c9ea8bea0289bc23d /src/api/endpoints/app/show.ts | |
| parent | wip (diff) | |
| download | misskey-f11bdf36b9c75a3e10850e46ef045cf9675ab7f7.tar.gz misskey-f11bdf36b9c75a3e10850e46ef045cf9675ab7f7.tar.bz2 misskey-f11bdf36b9c75a3e10850e46ef045cf9675ab7f7.zip | |
wip
Diffstat (limited to 'src/api/endpoints/app/show.ts')
| -rw-r--r-- | src/api/endpoints/app/show.ts | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/src/api/endpoints/app/show.ts b/src/api/endpoints/app/show.ts new file mode 100644 index 0000000000..cfb03bb9e5 --- /dev/null +++ b/src/api/endpoints/app/show.ts @@ -0,0 +1,77 @@ +'use strict'; + +/** + * Module dependencies + */ +import it from '../../it'; +import App from '../../models/app'; +import serialize from '../../serializers/app'; + +/** + * @swagger + * /app/show: + * post: + * summary: Show an application's information + * description: Require app_id or name_id + * parameters: + * - + * name: app_id + * description: Application ID + * in: formData + * type: string + * - + * name: name_id + * description: Application unique name + * in: formData + * type: string + * + * responses: + * 200: + * description: Success + * schema: + * $ref: "#/definitions/Application" + * + * default: + * description: Failed + * schema: + * $ref: "#/definitions/Error" + */ + +/** + * Show an app + * + * @param {any} params + * @param {any} user + * @param {any} _ + * @param {any} isSecure + * @return {Promise<any>} + */ +module.exports = (params, user, _, isSecure) => + new Promise(async (res, rej) => +{ + // Get 'app_id' parameter + const [appId, appIdErr] = it(params.app_id, 'id'); + if (appIdErr) return rej('invalid app_id param'); + + // Get 'name_id' parameter + const [nameId, nameIdErr] = it(params.name_id, 'string'); + if (nameIdErr) return rej('invalid name_id param'); + + if (appId === null && nameId === null) { + return rej('app_id or name_id is required'); + } + + // Lookup app + const app = appId !== null + ? await App.findOne({ _id: appId }) + : await App.findOne({ name_id_lower: nameId.toLowerCase() }); + + if (app === null) { + return rej('app not found'); + } + + // Send response + res(await serialize(app, user, { + includeSecret: isSecure && app.user_id.equals(user._id) + })); +}); |