This commit is contained in:
syuilo 2018-07-06 02:58:29 +09:00
parent fcfd9239c1
commit 9b41023c43
109 changed files with 212 additions and 130 deletions

View file

@ -89,7 +89,7 @@
"autwh": "0.1.0", "autwh": "0.1.0",
"bcryptjs": "2.4.3", "bcryptjs": "2.4.3",
"bootstrap-vue": "2.0.0-rc.11", "bootstrap-vue": "2.0.0-rc.11",
"cafy": "11.0.0", "cafy": "11.1.0",
"chalk": "2.4.1", "chalk": "2.4.1",
"crc-32": "1.2.0", "crc-32": "1.2.0",
"css-loader": "0.28.11", "css-loader": "0.28.11",

View file

@ -16,12 +16,13 @@ import fa from '../../../build/fa';
import config from './../../../config'; import config from './../../../config';
import generateVars from '../vars'; import generateVars from '../vars';
import { Context } from 'cafy';
import ObjectContext from 'cafy/built/types/object';
const langs = Object.keys(locales); const langs = Object.keys(locales);
const kebab = (string: string) => string.replace(/([a-z])([A-Z])/g, '$1-$2').replace(/\s+/g, '-').toLowerCase(); const kebab = (string: string) => string.replace(/([a-z])([A-Z])/g, '$1-$2').replace(/\s+/g, '-').toLowerCase();
// WIP type
const parseParam = (param: any) => { const parseParam = (param: any) => {
const id = param.type.match(/^id\((.+?)\)|^id/); const id = param.type.match(/^id\((.+?)\)|^id/);
const entity = param.type.match(/^entity\((.+?)\)/); const entity = param.type.match(/^entity\((.+?)\)/);
@ -58,6 +59,14 @@ const parseParam = (param: any) => {
return param; return param;
}; };
// WIP type
const parseEPDefParam = (key: string, param: Context) => {
return Object.assign({
name: key,
type: param.getType()
}, param.data);
};
const sortParams = (params: Array<{name: string}>) => { const sortParams = (params: Array<{name: string}>) => {
params.sort((a, b) => { params.sort((a, b) => {
if (a.name < b.name) if (a.name < b.name)
@ -70,17 +79,18 @@ const sortParams = (params: Array<{name: string}>) => {
}; };
// WIP type // WIP type
const extractDefs = (params: any[]) => { const extractDefs = (params: Context[]) => {
let defs: any[] = []; let defs: any[] = [];
params.forEach(param => { params.forEach(param => {
if (param.def) { if (param.data && param.data.ref) {
const props = (param as ObjectContext<any>).props;
defs.push({ defs.push({
name: param.defName, name: param.data.ref,
params: sortParams(param.def.map((p: any) => parseParam(p))) params: sortParams(Object.keys(props).map(k => parseEPDefParam(k, props[k])))
}); });
const childDefs = extractDefs(param.def); const childDefs = extractDefs(Object.keys(props).map(k => props[k]));
defs = defs.concat(childDefs); defs = defs.concat(childDefs);
} }
@ -94,35 +104,33 @@ gulp.task('doc:api', [
'doc:api:entities' 'doc:api:entities'
]); ]);
gulp.task('doc:api:endpoints', async () => { gulp.task('doc:api:endpoints', ['build:ts'], async () => {
const commonVars = await generateVars(); const commonVars = await generateVars();
glob('./src/client/docs/api/endpoints/**/*.yaml', (globErr, files) => { glob('./built/server/api/endpoints/**/*.js', (globErr, files) => {
if (globErr) { if (globErr) {
console.error(globErr); console.error(globErr);
return; return;
} }
//console.log(files); console.log(files.map(file => require('../../../../' + file)));
files.forEach(file => {
const ep: any = yaml.safeLoad(fs.readFileSync(file, 'utf-8')); files.map(file => require('../../../../' + file)).filter(x => x.meta).map(x => x.meta).forEach(ep => {
console.log(ep);
const vars = { const vars = {
endpoint: ep.endpoint, endpoint: ep.name,
url: { url: {
host: config.api_url, host: config.api_url,
path: ep.endpoint path: ep.name
}, },
desc: ep.desc, desc: ep.desc,
// @ts-ignore // @ts-ignore
params: sortParams(ep.params.map(p => parseParam(p))), params: sortParams(ep.params.map(p => parseEPDefParam(p))),
paramDefs: extractDefs(ep.params), paramDefs: extractDefs(ep.params),
// @ts-ignore
res: ep.res ? sortParams(ep.res.map(p => parseParam(p))) : null,
resDefs: ep.res ? extractDefs(ep.res) : null,
}; };
langs.forEach(lang => { langs.forEach(lang => {
pug.renderFile('./src/client/docs/api/endpoints/view.pug', Object.assign({}, vars, { pug.renderFile('./src/client/docs/api/endpoints/view.pug', Object.assign({}, vars, {
lang, lang,
title: ep.endpoint, title: ep.name,
src: `https://github.com/syuilo/misskey/tree/master/src/client/docs/api/endpoints/${ep.endpoint}.yaml`, src: `https://github.com/syuilo/misskey/tree/master/src/client/docs/api/endpoints/${ep.name}.yaml`,
kebab, kebab,
common: commonVars common: commonVars
}), (renderErr, html) => { }), (renderErr, html) => {
@ -133,7 +141,7 @@ gulp.task('doc:api:endpoints', async () => {
const i18n = new I18nReplacer(lang); const i18n = new I18nReplacer(lang);
html = html.replace(i18n.pattern, i18n.replacement); html = html.replace(i18n.pattern, i18n.replacement);
html = fa(html); html = fa(html);
const htmlPath = `./built/client/docs/${lang}/api/endpoints/${ep.endpoint}.html`; const htmlPath = `./built/client/docs/${lang}/api/endpoints/${ep.name}.html`;
mkdirp(path.dirname(htmlPath), (mkdirErr) => { mkdirp(path.dirname(htmlPath), (mkdirErr) => {
if (mkdirErr) { if (mkdirErr) {
console.error(mkdirErr); console.error(mkdirErr);

View file

@ -15,11 +15,11 @@ import I18nReplacer from '../../build/i18n';
import fa from '../../build/fa'; import fa from '../../build/fa';
import generateVars from './vars'; import generateVars from './vars';
require('./api/gulpfile.ts'); //require('./api/gulpfile.ts');
gulp.task('doc', [ gulp.task('doc', [
'doc:docs', 'doc:docs',
'doc:api', //'doc:api',
'doc:styles' 'doc:styles'
]); ]);

View file

@ -4,7 +4,7 @@ import Note from '../../../../models/note';
/** /**
* Aggregate notes * Aggregate notes
*/ */
module.exports = (params: any) => new Promise(async (res, rej) => { export default (params: any) => new Promise(async (res, rej) => {
// Get 'limit' parameter // Get 'limit' parameter
const [limit = 365, limitErr] = $.num.optional.range(1, 365).get(params.limit); const [limit = 365, limitErr] = $.num.optional.range(1, 365).get(params.limit);
if (limitErr) return rej('invalid limit param'); if (limitErr) return rej('invalid limit param');

View file

@ -4,7 +4,7 @@ import User from '../../../../models/user';
/** /**
* Aggregate users * Aggregate users
*/ */
module.exports = (params: any) => new Promise(async (res, rej) => { export default (params: any) => new Promise(async (res, rej) => {
// Get 'limit' parameter // Get 'limit' parameter
const [limit = 365, limitErr] = $.num.optional.range(1, 365).get(params.limit); const [limit = 365, limitErr] = $.num.optional.range(1, 365).get(params.limit);
if (limitErr) return rej('invalid limit param'); if (limitErr) return rej('invalid limit param');

View file

@ -7,7 +7,7 @@ import Note from '../../../../../models/note';
/** /**
* Aggregate activity of a user * Aggregate activity of a user
*/ */
module.exports = (params: any) => new Promise(async (res, rej) => { export default (params: any) => new Promise(async (res, rej) => {
// Get 'limit' parameter // Get 'limit' parameter
const [limit = 365, limitErr] = $.num.optional.range(1, 365).get(params.limit); const [limit = 365, limitErr] = $.num.optional.range(1, 365).get(params.limit);
if (limitErr) return rej('invalid limit param'); if (limitErr) return rej('invalid limit param');

View file

@ -8,7 +8,7 @@ import FollowedLog from '../../../../../models/followed-log';
/** /**
* Aggregate followers of a user * Aggregate followers of a user
*/ */
module.exports = (params: any) => new Promise(async (res, rej) => { export default (params: any) => new Promise(async (res, rej) => {
// Get 'userId' parameter // Get 'userId' parameter
const [userId, userIdErr] = $.type(ID).get(params.userId); const [userId, userIdErr] = $.type(ID).get(params.userId);
if (userIdErr) return rej('invalid userId param'); if (userIdErr) return rej('invalid userId param');

View file

@ -8,7 +8,7 @@ import FollowingLog from '../../../../../models/following-log';
/** /**
* Aggregate following of a user * Aggregate following of a user
*/ */
module.exports = (params: any) => new Promise(async (res, rej) => { export default (params: any) => new Promise(async (res, rej) => {
// Get 'userId' parameter // Get 'userId' parameter
const [userId, userIdErr] = $.type(ID).get(params.userId); const [userId, userIdErr] = $.type(ID).get(params.userId);
if (userIdErr) return rej('invalid userId param'); if (userIdErr) return rej('invalid userId param');

View file

@ -5,7 +5,7 @@ import Note from '../../../../../models/note';
/** /**
* Aggregate note of a user * Aggregate note of a user
*/ */
module.exports = (params: any) => new Promise(async (res, rej) => { export default (params: any) => new Promise(async (res, rej) => {
// Get 'userId' parameter // Get 'userId' parameter
const [userId, userIdErr] = $.type(ID).get(params.userId); const [userId, userIdErr] = $.type(ID).get(params.userId);
if (userIdErr) return rej('invalid userId param'); if (userIdErr) return rej('invalid userId param');

View file

@ -5,7 +5,7 @@ import Reaction from '../../../../../models/note-reaction';
/** /**
* Aggregate reaction of a user * Aggregate reaction of a user
*/ */
module.exports = (params: any) => new Promise(async (res, rej) => { export default (params: any) => new Promise(async (res, rej) => {
// Get 'userId' parameter // Get 'userId' parameter
const [userId, userIdErr] = $.type(ID).get(params.userId); const [userId, userIdErr] = $.type(ID).get(params.userId);
if (userIdErr) return rej('invalid userId param'); if (userIdErr) return rej('invalid userId param');

View file

@ -59,7 +59,7 @@ import { ILocalUser } from '../../../../models/user';
/** /**
* Create an app * Create an app
*/ */
module.exports = async (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default async (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'nameId' parameter // Get 'nameId' parameter
const [nameId, nameIdErr] = $.str.pipe(isValidNameId).get(params.nameId); const [nameId, nameIdErr] = $.str.pipe(isValidNameId).get(params.nameId);
if (nameIdErr) return rej('invalid nameId param'); if (nameIdErr) return rej('invalid nameId param');

View file

@ -40,7 +40,7 @@ import { isValidNameId } from '../../../../../models/app';
* @param {any} params * @param {any} params
* @return {Promise<any>} * @return {Promise<any>}
*/ */
module.exports = async (params: any) => new Promise(async (res, rej) => { export default async (params: any) => new Promise(async (res, rej) => {
// Get 'nameId' parameter // Get 'nameId' parameter
const [nameId, nameIdErr] = $.str.pipe(isValidNameId).get(params.nameId); const [nameId, nameIdErr] = $.str.pipe(isValidNameId).get(params.nameId);
if (nameIdErr) return rej('invalid nameId param'); if (nameIdErr) return rej('invalid nameId param');

View file

@ -35,7 +35,7 @@ import { ILocalUser } from '../../../../models/user';
/** /**
* Show an app * Show an app
*/ */
module.exports = (params: any, user: ILocalUser, app: IApp) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser, app: IApp) => new Promise(async (res, rej) => {
const isSecure = user != null && app == null; const isSecure = user != null && app == null;
// Get 'appId' parameter // Get 'appId' parameter

View file

@ -32,7 +32,7 @@ import { ILocalUser } from '../../../../models/user';
/** /**
* Accept * Accept
*/ */
module.exports = (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'token' parameter // Get 'token' parameter
const [token, tokenErr] = $.str.get(params.token); const [token, tokenErr] = $.str.get(params.token);
if (tokenErr) return rej('invalid token param'); if (tokenErr) return rej('invalid token param');

View file

@ -44,7 +44,7 @@ import config from '../../../../../config';
* @param {any} params * @param {any} params
* @return {Promise<any>} * @return {Promise<any>}
*/ */
module.exports = (params: any) => new Promise(async (res, rej) => { export default (params: any) => new Promise(async (res, rej) => {
// Get 'appSecret' parameter // Get 'appSecret' parameter
const [appSecret, appSecretErr] = $.str.get(params.appSecret); const [appSecret, appSecretErr] = $.str.get(params.appSecret);
if (appSecretErr) return rej('invalid appSecret param'); if (appSecretErr) return rej('invalid appSecret param');

View file

@ -45,7 +45,7 @@ import { ILocalUser } from '../../../../../models/user';
/** /**
* Show a session * Show a session
*/ */
module.exports = (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'token' parameter // Get 'token' parameter
const [token, tokenErr] = $.str.get(params.token); const [token, tokenErr] = $.str.get(params.token);
if (tokenErr) return rej('invalid token param'); if (tokenErr) return rej('invalid token param');

View file

@ -49,7 +49,7 @@ import { pack } from '../../../../../models/user';
* @param {any} params * @param {any} params
* @return {Promise<any>} * @return {Promise<any>}
*/ */
module.exports = (params: any) => new Promise(async (res, rej) => { export default (params: any) => new Promise(async (res, rej) => {
// Get 'appSecret' parameter // Get 'appSecret' parameter
const [appSecret, appSecretErr] = $.str.get(params.appSecret); const [appSecret, appSecretErr] = $.str.get(params.appSecret);
if (appSecretErr) return rej('invalid appSecret param'); if (appSecretErr) return rej('invalid appSecret param');

View file

@ -4,7 +4,7 @@ import { ILocalUser } from '../../../models/user';
/** /**
* Get drive information * Get drive information
*/ */
module.exports = (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Calculate drive usage // Calculate drive usage
const usage = await DriveFile const usage = await DriveFile
.aggregate([{ .aggregate([{

View file

@ -5,7 +5,7 @@ import { ILocalUser } from '../../../../models/user';
/** /**
* Get drive files * Get drive files
*/ */
module.exports = async (params: any, user: ILocalUser) => { export default async (params: any, user: ILocalUser) => {
// Get 'limit' parameter // Get 'limit' parameter
const [limit = 10, limitErr] = $.num.optional.range(1, 100).get(params.limit); const [limit = 10, limitErr] = $.num.optional.range(1, 100).get(params.limit);
if (limitErr) throw 'invalid limit param'; if (limitErr) throw 'invalid limit param';

View file

@ -7,7 +7,7 @@ import { ILocalUser } from '../../../../../models/user';
/** /**
* Create a file * Create a file
*/ */
module.exports = async (file: any, params: any, user: ILocalUser): Promise<any> => { export default async (file: any, params: any, user: ILocalUser): Promise<any> => {
if (file == null) { if (file == null) {
throw 'file is required'; throw 'file is required';
} }

View file

@ -7,7 +7,7 @@ import { ILocalUser } from '../../../../../models/user';
/** /**
* Delete a file * Delete a file
*/ */
module.exports = async (params: any, user: ILocalUser) => { export default async (params: any, user: ILocalUser) => {
// Get 'fileId' parameter // Get 'fileId' parameter
const [fileId, fileIdErr] = $.type(ID).get(params.fileId); const [fileId, fileIdErr] = $.type(ID).get(params.fileId);
if (fileIdErr) throw 'invalid fileId param'; if (fileIdErr) throw 'invalid fileId param';

View file

@ -5,7 +5,7 @@ import { ILocalUser } from '../../../../../models/user';
/** /**
* Find a file(s) * Find a file(s)
*/ */
module.exports = (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'name' parameter // Get 'name' parameter
const [name, nameErr] = $.str.get(params.name); const [name, nameErr] = $.str.get(params.name);
if (nameErr) return rej('invalid name param'); if (nameErr) return rej('invalid name param');

View file

@ -5,7 +5,7 @@ import { ILocalUser } from '../../../../../models/user';
/** /**
* Show a file * Show a file
*/ */
module.exports = async (params: any, user: ILocalUser) => { export default async (params: any, user: ILocalUser) => {
// Get 'fileId' parameter // Get 'fileId' parameter
const [fileId, fileIdErr] = $.type(ID).get(params.fileId); const [fileId, fileIdErr] = $.type(ID).get(params.fileId);
if (fileIdErr) throw 'invalid fileId param'; if (fileIdErr) throw 'invalid fileId param';

View file

@ -7,7 +7,7 @@ import { ILocalUser } from '../../../../../models/user';
/** /**
* Update a file * Update a file
*/ */
module.exports = (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'fileId' parameter // Get 'fileId' parameter
const [fileId, fileIdErr] = $.type(ID).get(params.fileId); const [fileId, fileIdErr] = $.type(ID).get(params.fileId);
if (fileIdErr) return rej('invalid fileId param'); if (fileIdErr) return rej('invalid fileId param');

View file

@ -9,7 +9,7 @@ import { ILocalUser } from '../../../../../models/user';
/** /**
* Create a file from a URL * Create a file from a URL
*/ */
module.exports = async (params: any, user: ILocalUser): Promise<any> => { export default async (params: any, user: ILocalUser): Promise<any> => {
// Get 'url' parameter // Get 'url' parameter
// TODO: Validate this url // TODO: Validate this url
const [url, urlErr] = $.str.get(params.url); const [url, urlErr] = $.str.get(params.url);

View file

@ -5,7 +5,7 @@ import { ILocalUser } from '../../../../models/user';
/** /**
* Get drive folders * Get drive folders
*/ */
module.exports = (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'limit' parameter // Get 'limit' parameter
const [limit = 10, limitErr] = $.num.optional.range(1, 100).get(params.limit); const [limit = 10, limitErr] = $.num.optional.range(1, 100).get(params.limit);
if (limitErr) return rej('invalid limit param'); if (limitErr) return rej('invalid limit param');

View file

@ -6,7 +6,7 @@ import { ILocalUser } from '../../../../../models/user';
/** /**
* Create drive folder * Create drive folder
*/ */
module.exports = (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'name' parameter // Get 'name' parameter
const [name = '無題のフォルダー', nameErr] = $.str.optional.pipe(isValidFolderName).get(params.name); const [name = '無題のフォルダー', nameErr] = $.str.optional.pipe(isValidFolderName).get(params.name);
if (nameErr) return rej('invalid name param'); if (nameErr) return rej('invalid name param');

View file

@ -5,7 +5,7 @@ import { ILocalUser } from '../../../../../models/user';
/** /**
* Find a folder(s) * Find a folder(s)
*/ */
module.exports = (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'name' parameter // Get 'name' parameter
const [name, nameErr] = $.str.get(params.name); const [name, nameErr] = $.str.get(params.name);
if (nameErr) return rej('invalid name param'); if (nameErr) return rej('invalid name param');

View file

@ -5,7 +5,7 @@ import { ILocalUser } from '../../../../../models/user';
/** /**
* Show a folder * Show a folder
*/ */
module.exports = (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'folderId' parameter // Get 'folderId' parameter
const [folderId, folderIdErr] = $.type(ID).get(params.folderId); const [folderId, folderIdErr] = $.type(ID).get(params.folderId);
if (folderIdErr) return rej('invalid folderId param'); if (folderIdErr) return rej('invalid folderId param');

View file

@ -6,7 +6,7 @@ import { ILocalUser } from '../../../../../models/user';
/** /**
* Update a folder * Update a folder
*/ */
module.exports = (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'folderId' parameter // Get 'folderId' parameter
const [folderId, folderIdErr] = $.type(ID).get(params.folderId); const [folderId, folderIdErr] = $.type(ID).get(params.folderId);
if (folderIdErr) return rej('invalid folderId param'); if (folderIdErr) return rej('invalid folderId param');

View file

@ -5,7 +5,7 @@ import { ILocalUser } from '../../../../models/user';
/** /**
* Get drive stream * Get drive stream
*/ */
module.exports = (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'limit' parameter // Get 'limit' parameter
const [limit = 10, limitErr] = $.num.optional.range(1, 100).get(params.limit); const [limit = 10, limitErr] = $.num.optional.range(1, 100).get(params.limit);
if (limitErr) return rej('invalid limit param'); if (limitErr) return rej('invalid limit param');

View file

@ -6,7 +6,7 @@ import create from '../../../../services/following/create';
/** /**
* Follow a user * Follow a user
*/ */
module.exports = (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
const follower = user; const follower = user;
// Get 'userId' parameter // Get 'userId' parameter

View file

@ -6,7 +6,7 @@ import deleteFollowing from '../../../../services/following/delete';
/** /**
* Unfollow a user * Unfollow a user
*/ */
module.exports = (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
const follower = user; const follower = user;
// Get 'userId' parameter // Get 'userId' parameter

View file

@ -5,7 +5,7 @@ import User, { ILocalUser } from '../../../../../models/user';
/** /**
* Accept a follow request * Accept a follow request
*/ */
module.exports = (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'userId' parameter // Get 'userId' parameter
const [followerId, followerIdErr] = $.type(ID).get(params.userId); const [followerId, followerIdErr] = $.type(ID).get(params.userId);
if (followerIdErr) return rej('invalid userId param'); if (followerIdErr) return rej('invalid userId param');

View file

@ -5,7 +5,7 @@ import User, { pack, ILocalUser } from '../../../../../models/user';
/** /**
* Cancel a follow request * Cancel a follow request
*/ */
module.exports = (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'userId' parameter // Get 'userId' parameter
const [followeeId, followeeIdErr] = $.type(ID).get(params.userId); const [followeeId, followeeIdErr] = $.type(ID).get(params.userId);
if (followeeIdErr) return rej('invalid userId param'); if (followeeIdErr) return rej('invalid userId param');

View file

@ -5,7 +5,7 @@ import { ILocalUser } from '../../../../../models/user';
/** /**
* Get all pending received follow requests * Get all pending received follow requests
*/ */
module.exports = (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
const reqs = await FollowRequest.find({ const reqs = await FollowRequest.find({
followeeId: user._id followeeId: user._id
}); });

View file

@ -5,7 +5,7 @@ import User, { ILocalUser } from '../../../../../models/user';
/** /**
* Reject a follow request * Reject a follow request
*/ */
module.exports = (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'userId' parameter // Get 'userId' parameter
const [followerId, followerIdErr] = $.type(ID).get(params.userId); const [followerId, followerIdErr] = $.type(ID).get(params.userId);
if (followerIdErr) return rej('invalid userId param'); if (followerIdErr) return rej('invalid userId param');

View file

@ -5,7 +5,7 @@ import { ILocalUser } from '../../../../models/user';
/** /**
* Stalk a user * Stalk a user
*/ */
module.exports = (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
const follower = user; const follower = user;
// Get 'userId' parameter // Get 'userId' parameter

View file

@ -5,7 +5,7 @@ import { ILocalUser } from '../../../../models/user';
/** /**
* Unstalk a user * Unstalk a user
*/ */
module.exports = (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
const follower = user; const follower = user;
// Get 'userId' parameter // Get 'userId' parameter

View file

@ -15,7 +15,7 @@ const max = 5;
/** /**
* Get trends of hashtags * Get trends of hashtags
*/ */
module.exports = () => new Promise(async (res, rej) => { export default () => new Promise(async (res, rej) => {
//#region 1. 直近Aの内に投稿されたハッシュタグ(とユーザーのペア)を集計 //#region 1. 直近Aの内に投稿されたハッシュタグ(とユーザーのペア)を集計
const data = await Note.aggregate([{ const data = await Note.aggregate([{
$match: { $match: {

View file

@ -4,7 +4,7 @@ import { IApp } from '../../../models/app';
/** /**
* Show myself * Show myself
*/ */
module.exports = (params: any, user: ILocalUser, app: IApp) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser, app: IApp) => new Promise(async (res, rej) => {
const isSecure = user != null && app == null; const isSecure = user != null && app == null;
// Serialize // Serialize

View file

@ -2,7 +2,7 @@ import $ from 'cafy';
import * as speakeasy from 'speakeasy'; import * as speakeasy from 'speakeasy';
import User, { ILocalUser } from '../../../../../models/user'; import User, { ILocalUser } from '../../../../../models/user';
module.exports = async (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default async (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'token' parameter // Get 'token' parameter
const [token, tokenErr] = $.str.get(params.token); const [token, tokenErr] = $.str.get(params.token);
if (tokenErr) return rej('invalid token param'); if (tokenErr) return rej('invalid token param');

View file

@ -5,7 +5,7 @@ import * as QRCode from 'qrcode';
import User, { ILocalUser } from '../../../../../models/user'; import User, { ILocalUser } from '../../../../../models/user';
import config from '../../../../../config'; import config from '../../../../../config';
module.exports = async (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default async (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'password' parameter // Get 'password' parameter
const [password, passwordErr] = $.str.get(params.password); const [password, passwordErr] = $.str.get(params.password);
if (passwordErr) return rej('invalid password param'); if (passwordErr) return rej('invalid password param');

View file

@ -2,7 +2,7 @@ import $ from 'cafy';
import * as bcrypt from 'bcryptjs'; import * as bcrypt from 'bcryptjs';
import User, { ILocalUser } from '../../../../../models/user'; import User, { ILocalUser } from '../../../../../models/user';
module.exports = async (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default async (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'password' parameter // Get 'password' parameter
const [password, passwordErr] = $.str.get(params.password); const [password, passwordErr] = $.str.get(params.password);
if (passwordErr) return rej('invalid password param'); if (passwordErr) return rej('invalid password param');

View file

@ -6,7 +6,7 @@ import { ILocalUser } from '../../../../models/user';
/** /**
* Get authorized apps of my account * Get authorized apps of my account
*/ */
module.exports = (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'limit' parameter // Get 'limit' parameter
const [limit = 10, limitErr] = $.num.optional.range(1, 100).get(params.limit); const [limit = 10, limitErr] = $.num.optional.range(1, 100).get(params.limit);
if (limitErr) return rej('invalid limit param'); if (limitErr) return rej('invalid limit param');

View file

@ -5,7 +5,7 @@ import User, { ILocalUser } from '../../../../models/user';
/** /**
* Change password * Change password
*/ */
module.exports = async (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default async (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'currentPasword' parameter // Get 'currentPasword' parameter
const [currentPassword, currentPasswordErr] = $.str.get(params.currentPasword); const [currentPassword, currentPasswordErr] = $.str.get(params.currentPasword);
if (currentPasswordErr) return rej('invalid currentPasword param'); if (currentPasswordErr) return rej('invalid currentPasword param');

View file

@ -5,7 +5,7 @@ import { ILocalUser } from '../../../../models/user';
/** /**
* Get favorited notes * Get favorited notes
*/ */
module.exports = (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'limit' parameter // Get 'limit' parameter
const [limit = 10, limitErr] = $.num.optional.range(1, 100).get(params.limit); const [limit = 10, limitErr] = $.num.optional.range(1, 100).get(params.limit);
if (limitErr) return rej('invalid limit param'); if (limitErr) return rej('invalid limit param');

View file

@ -9,7 +9,7 @@ import { ILocalUser } from '../../../../models/user';
/** /**
* Get notifications * Get notifications
*/ */
module.exports = (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'following' parameter // Get 'following' parameter
const [following = false, followingError] = const [following = false, followingError] =
$.bool.optional.get(params.following); $.bool.optional.get(params.following);

View file

@ -6,7 +6,7 @@ import { pack } from '../../../../models/user';
/** /**
* Pin note * Pin note
*/ */
module.exports = async (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default async (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'noteId' parameter // Get 'noteId' parameter
const [noteId, noteIdErr] = $.type(ID).get(params.noteId); const [noteId, noteIdErr] = $.type(ID).get(params.noteId);
if (noteIdErr) return rej('invalid noteId param'); if (noteIdErr) return rej('invalid noteId param');

View file

@ -7,7 +7,7 @@ import generateUserToken from '../../common/generate-native-user-token';
/** /**
* Regenerate native token * Regenerate native token
*/ */
module.exports = async (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default async (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'password' parameter // Get 'password' parameter
const [password, passwordErr] = $.str.get(params.password); const [password, passwordErr] = $.str.get(params.password);
if (passwordErr) return rej('invalid password param'); if (passwordErr) return rej('invalid password param');

View file

@ -5,7 +5,7 @@ import { ILocalUser } from '../../../../models/user';
/** /**
* Get signin history of my account * Get signin history of my account
*/ */
module.exports = (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'limit' parameter // Get 'limit' parameter
const [limit = 10, limitErr] = $.num.optional.range(1, 100).get(params.limit); const [limit = 10, limitErr] = $.num.optional.range(1, 100).get(params.limit);
if (limitErr) return rej('invalid limit param'); if (limitErr) return rej('invalid limit param');

View file

@ -8,7 +8,7 @@ import { IApp } from '../../../../models/app';
/** /**
* Update myself * Update myself
*/ */
module.exports = async (params: any, user: ILocalUser, app: IApp) => new Promise(async (res, rej) => { export default async (params: any, user: ILocalUser, app: IApp) => new Promise(async (res, rej) => {
const isSecure = user != null && app == null; const isSecure = user != null && app == null;
const updates = {} as any; const updates = {} as any;

View file

@ -5,7 +5,7 @@ import event from '../../../../publishers/stream';
/** /**
* Update myself * Update myself
*/ */
module.exports = async (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default async (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'name' parameter // Get 'name' parameter
const [name, nameErr] = $.str.get(params.name); const [name, nameErr] = $.str.get(params.name);
if (nameErr) return rej('invalid name param'); if (nameErr) return rej('invalid name param');

View file

@ -2,7 +2,7 @@ import $ from 'cafy';
import User, { ILocalUser } from '../../../../models/user'; import User, { ILocalUser } from '../../../../models/user';
import event from '../../../../publishers/stream'; import event from '../../../../publishers/stream';
module.exports = async (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default async (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'home' parameter // Get 'home' parameter
const [home, homeErr] = $.arr( const [home, homeErr] = $.arr(
$.obj.strict() $.obj.strict()

View file

@ -2,7 +2,7 @@ import $ from 'cafy';
import User, { ILocalUser } from '../../../../models/user'; import User, { ILocalUser } from '../../../../models/user';
import event from '../../../../publishers/stream'; import event from '../../../../publishers/stream';
module.exports = async (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default async (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'home' parameter // Get 'home' parameter
const [home, homeErr] = $.arr( const [home, homeErr] = $.arr(
$.obj.strict() $.obj.strict()

View file

@ -2,7 +2,7 @@ import $ from 'cafy';
import User, { ILocalUser } from '../../../../models/user'; import User, { ILocalUser } from '../../../../models/user';
import event from '../../../../publishers/stream'; import event from '../../../../publishers/stream';
module.exports = async (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default async (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'id' parameter // Get 'id' parameter
const [id, idErr] = $.str.get(params.id); const [id, idErr] = $.str.get(params.id);
if (idErr) return rej('invalid id param'); if (idErr) return rej('invalid id param');

View file

@ -7,7 +7,7 @@ import { ILocalUser } from '../../../../models/user';
/** /**
* Show messaging history * Show messaging history
*/ */
module.exports = (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'limit' parameter // Get 'limit' parameter
const [limit = 10, limitErr] = $.num.optional.range(1, 100).get(params.limit); const [limit = 10, limitErr] = $.num.optional.range(1, 100).get(params.limit);
if (limitErr) return rej('invalid limit param'); if (limitErr) return rej('invalid limit param');

View file

@ -7,7 +7,7 @@ import read from '../../common/read-messaging-message';
/** /**
* Get messages * Get messages
*/ */
module.exports = (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'userId' parameter // Get 'userId' parameter
const [recipientId, recipientIdErr] = $.type(ID).get(params.userId); const [recipientId, recipientIdErr] = $.type(ID).get(params.userId);
if (recipientIdErr) return rej('invalid userId param'); if (recipientIdErr) return rej('invalid userId param');

View file

@ -14,7 +14,7 @@ import config from '../../../../../config';
/** /**
* Create a message * Create a message
*/ */
module.exports = (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'userId' parameter // Get 'userId' parameter
const [recipientId, recipientIdErr] = $.type(ID).get(params.userId); const [recipientId, recipientIdErr] = $.type(ID).get(params.userId);
if (recipientIdErr) return rej('invalid userId param'); if (recipientIdErr) return rej('invalid userId param');

View file

@ -38,7 +38,7 @@ const client = require('../../../../built/client/meta.json');
/** /**
* Show core info * Show core info
*/ */
module.exports = (params: any) => new Promise(async (res, rej) => { export default (params: any) => new Promise(async (res, rej) => {
const meta: any = (await Meta.findOne()) || {}; const meta: any = (await Meta.findOne()) || {};
res({ res({

View file

@ -5,7 +5,7 @@ import Mute from '../../../../models/mute';
/** /**
* Mute a user * Mute a user
*/ */
module.exports = (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
const muter = user; const muter = user;
// Get 'userId' parameter // Get 'userId' parameter

View file

@ -5,7 +5,7 @@ import Mute from '../../../../models/mute';
/** /**
* Unmute a user * Unmute a user
*/ */
module.exports = (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
const muter = user; const muter = user;
// Get 'userId' parameter // Get 'userId' parameter

View file

@ -6,7 +6,7 @@ import { getFriendIds } from '../../common/get-friends';
/** /**
* Get muted users of a user * Get muted users of a user
*/ */
module.exports = (params: any, me: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, me: ILocalUser) => new Promise(async (res, rej) => {
// Get 'iknow' parameter // Get 'iknow' parameter
const [iknow = false, iknowErr] = $.bool.optional.get(params.iknow); const [iknow = false, iknowErr] = $.bool.optional.get(params.iknow);
if (iknowErr) return rej('invalid iknow param'); if (iknowErr) return rej('invalid iknow param');

View file

@ -5,7 +5,7 @@ import { ILocalUser } from '../../../../models/user';
/** /**
* Get my apps * Get my apps
*/ */
module.exports = (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'limit' parameter // Get 'limit' parameter
const [limit = 10, limitErr] = $.num.optional.range(1, 100).get(params.limit); const [limit = 10, limitErr] = $.num.optional.range(1, 100).get(params.limit);
if (limitErr) return rej('invalid limit param'); if (limitErr) return rej('invalid limit param');

View file

@ -7,7 +7,7 @@ import Note, { pack } from '../../../models/note';
/** /**
* Get all notes * Get all notes
*/ */
module.exports = (params: any) => new Promise(async (res, rej) => { export default (params: any) => new Promise(async (res, rej) => {
// Get 'local' parameter // Get 'local' parameter
const [local, localErr] = $.bool.optional.get(params.local); const [local, localErr] = $.bool.optional.get(params.local);
if (localErr) return rej('invalid local param'); if (localErr) return rej('invalid local param');

View file

@ -5,7 +5,7 @@ import { ILocalUser } from '../../../../models/user';
/** /**
* Show conversation of a note * Show conversation of a note
*/ */
module.exports = (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'noteId' parameter // Get 'noteId' parameter
const [noteId, noteIdErr] = $.type(ID).get(params.noteId); const [noteId, noteIdErr] = $.type(ID).get(params.noteId);
if (noteIdErr) return rej('invalid noteId param'); if (noteIdErr) return rej('invalid noteId param');

View file

@ -7,6 +7,8 @@ import { IApp } from '../../../../models/app';
import getParams from '../../get-params'; import getParams from '../../get-params';
export const meta = { export const meta = {
name: 'notes/create',
desc: { desc: {
ja: '投稿します。' ja: '投稿します。'
}, },
@ -57,7 +59,8 @@ export const meta = {
}).optional.nullable.strict().note({ }).optional.nullable.strict().note({
desc: { desc: {
ja: '位置情報' ja: '位置情報'
} },
ref: 'geo'
}), }),
mediaIds: $.arr($.type(ID)).optional.unique().range(1, 4).note({ mediaIds: $.arr($.type(ID)).optional.unique().range(1, 4).note({
@ -80,7 +83,8 @@ export const meta = {
}).optional.strict().note({ }).optional.strict().note({
desc: { desc: {
ja: 'アンケート' ja: 'アンケート'
} },
ref: 'poll'
}) })
}, },
@ -100,7 +104,7 @@ export const meta = {
/** /**
* Create a note * Create a note
*/ */
module.exports = (params: any, user: ILocalUser, app: IApp) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser, app: IApp) => new Promise(async (res, rej) => {
const [ps, psErr] = getParams(meta, params); const [ps, psErr] = getParams(meta, params);
if (psErr) return rej(psErr); if (psErr) return rej(psErr);

View file

@ -6,7 +6,7 @@ import { ILocalUser } from '../../../../models/user';
/** /**
* Delete a note * Delete a note
*/ */
module.exports = (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'noteId' parameter // Get 'noteId' parameter
const [noteId, noteIdErr] = $.type(ID).get(params.noteId); const [noteId, noteIdErr] = $.type(ID).get(params.noteId);
if (noteIdErr) return rej('invalid noteId param'); if (noteIdErr) return rej('invalid noteId param');

View file

@ -6,7 +6,7 @@ import { ILocalUser } from '../../../../../models/user';
/** /**
* Favorite a note * Favorite a note
*/ */
module.exports = (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'noteId' parameter // Get 'noteId' parameter
const [noteId, noteIdErr] = $.type(ID).get(params.noteId); const [noteId, noteIdErr] = $.type(ID).get(params.noteId);
if (noteIdErr) return rej('invalid noteId param'); if (noteIdErr) return rej('invalid noteId param');

View file

@ -6,7 +6,7 @@ import { ILocalUser } from '../../../../../models/user';
/** /**
* Unfavorite a note * Unfavorite a note
*/ */
module.exports = (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'noteId' parameter // Get 'noteId' parameter
const [noteId, noteIdErr] = $.type(ID).get(params.noteId); const [noteId, noteIdErr] = $.type(ID).get(params.noteId);
if (noteIdErr) return rej('invalid noteId param'); if (noteIdErr) return rej('invalid noteId param');

View file

@ -7,7 +7,7 @@ import { ILocalUser } from '../../../../models/user';
/** /**
* Get timeline of global * Get timeline of global
*/ */
module.exports = async (params: any, user: ILocalUser) => { export default async (params: any, user: ILocalUser) => {
// Get 'limit' parameter // Get 'limit' parameter
const [limit = 10, limitErr] = $.num.optional.range(1, 100).get(params.limit); const [limit = 10, limitErr] = $.num.optional.range(1, 100).get(params.limit);
if (limitErr) throw 'invalid limit param'; if (limitErr) throw 'invalid limit param';

View file

@ -7,7 +7,7 @@ import { ILocalUser } from '../../../../models/user';
/** /**
* Get timeline of local * Get timeline of local
*/ */
module.exports = async (params: any, user: ILocalUser) => { export default async (params: any, user: ILocalUser) => {
// Get 'limit' parameter // Get 'limit' parameter
const [limit = 10, limitErr] = $.num.optional.range(1, 100).get(params.limit); const [limit = 10, limitErr] = $.num.optional.range(1, 100).get(params.limit);
if (limitErr) throw 'invalid limit param'; if (limitErr) throw 'invalid limit param';

View file

@ -7,7 +7,7 @@ import { ILocalUser } from '../../../../models/user';
/** /**
* Get mentions of myself * Get mentions of myself
*/ */
module.exports = (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'following' parameter // Get 'following' parameter
const [following = false, followingError] = const [following = false, followingError] =
$.bool.optional.get(params.following); $.bool.optional.get(params.following);

View file

@ -6,7 +6,7 @@ import { ILocalUser } from '../../../../../models/user';
/** /**
* Get recommended polls * Get recommended polls
*/ */
module.exports = (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'limit' parameter // Get 'limit' parameter
const [limit = 10, limitErr] = $.num.optional.range(1, 100).get(params.limit); const [limit = 10, limitErr] = $.num.optional.range(1, 100).get(params.limit);
if (limitErr) return rej('invalid limit param'); if (limitErr) return rej('invalid limit param');

View file

@ -10,7 +10,7 @@ import { ILocalUser } from '../../../../../models/user';
/** /**
* Vote poll of a note * Vote poll of a note
*/ */
module.exports = (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'noteId' parameter // Get 'noteId' parameter
const [noteId, noteIdErr] = $.type(ID).get(params.noteId); const [noteId, noteIdErr] = $.type(ID).get(params.noteId);
if (noteIdErr) return rej('invalid noteId param'); if (noteIdErr) return rej('invalid noteId param');

View file

@ -6,7 +6,7 @@ import { ILocalUser } from '../../../../models/user';
/** /**
* Show reactions of a note * Show reactions of a note
*/ */
module.exports = (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'noteId' parameter // Get 'noteId' parameter
const [noteId, noteIdErr] = $.type(ID).get(params.noteId); const [noteId, noteIdErr] = $.type(ID).get(params.noteId);
if (noteIdErr) return rej('invalid noteId param'); if (noteIdErr) return rej('invalid noteId param');

View file

@ -7,7 +7,7 @@ import { ILocalUser } from '../../../../../models/user';
/** /**
* React to a note * React to a note
*/ */
module.exports = (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'noteId' parameter // Get 'noteId' parameter
const [noteId, noteIdErr] = $.type(ID).get(params.noteId); const [noteId, noteIdErr] = $.type(ID).get(params.noteId);
if (noteIdErr) return rej('invalid noteId param'); if (noteIdErr) return rej('invalid noteId param');

View file

@ -6,7 +6,7 @@ import { ILocalUser } from '../../../../../models/user';
/** /**
* Unreact to a note * Unreact to a note
*/ */
module.exports = (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'noteId' parameter // Get 'noteId' parameter
const [noteId, noteIdErr] = $.type(ID).get(params.noteId); const [noteId, noteIdErr] = $.type(ID).get(params.noteId);
if (noteIdErr) return rej('invalid noteId param'); if (noteIdErr) return rej('invalid noteId param');

View file

@ -5,7 +5,7 @@ import { ILocalUser } from '../../../../models/user';
/** /**
* Get replies of a note * Get replies of a note
*/ */
module.exports = (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'noteId' parameter // Get 'noteId' parameter
const [noteId, noteIdErr] = $.type(ID).get(params.noteId); const [noteId, noteIdErr] = $.type(ID).get(params.noteId);
if (noteIdErr) return rej('invalid noteId param'); if (noteIdErr) return rej('invalid noteId param');

View file

@ -5,7 +5,7 @@ import { ILocalUser } from '../../../../models/user';
/** /**
* Show a renotes of a note * Show a renotes of a note
*/ */
module.exports = (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'noteId' parameter // Get 'noteId' parameter
const [noteId, noteIdErr] = $.type(ID).get(params.noteId); const [noteId, noteIdErr] = $.type(ID).get(params.noteId);
if (noteIdErr) return rej('invalid noteId param'); if (noteIdErr) return rej('invalid noteId param');

View file

@ -5,7 +5,7 @@ import { ILocalUser } from '../../../../models/user';
import { pack } from '../../../../models/note'; import { pack } from '../../../../models/note';
import es from '../../../../db/elasticsearch'; import es from '../../../../db/elasticsearch';
module.exports = (params: any, me: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, me: ILocalUser) => new Promise(async (res, rej) => {
// Get 'query' parameter // Get 'query' parameter
const [query, queryError] = $.str.get(params.query); const [query, queryError] = $.str.get(params.query);
if (queryError) return rej('invalid query param'); if (queryError) return rej('invalid query param');

View file

@ -8,7 +8,7 @@ import { pack } from '../../../../models/note';
/** /**
* Search notes by tag * Search notes by tag
*/ */
module.exports = (params: any, me: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, me: ILocalUser) => new Promise(async (res, rej) => {
// Get 'tag' parameter // Get 'tag' parameter
const [tag, tagError] = $.str.get(params.tag); const [tag, tagError] = $.str.get(params.tag);
if (tagError) return rej('invalid tag param'); if (tagError) return rej('invalid tag param');

View file

@ -5,7 +5,7 @@ import { ILocalUser } from '../../../../models/user';
/** /**
* Show a note * Show a note
*/ */
module.exports = (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'noteId' parameter // Get 'noteId' parameter
const [noteId, noteIdErr] = $.type(ID).get(params.noteId); const [noteId, noteIdErr] = $.type(ID).get(params.noteId);
if (noteIdErr) return rej('invalid noteId param'); if (noteIdErr) return rej('invalid noteId param');

View file

@ -8,7 +8,7 @@ import { ILocalUser } from '../../../../models/user';
/** /**
* Get timeline of myself * Get timeline of myself
*/ */
module.exports = async (params: any, user: ILocalUser) => { export default async (params: any, user: ILocalUser) => {
// Get 'limit' parameter // Get 'limit' parameter
const [limit = 10, limitErr] = $.num.optional.range(1, 100).get(params.limit); const [limit = 10, limitErr] = $.num.optional.range(1, 100).get(params.limit);
if (limitErr) throw 'invalid limit param'; if (limitErr) throw 'invalid limit param';

View file

@ -6,7 +6,7 @@ import { ILocalUser } from '../../../../models/user';
/** /**
* Get trend notes * Get trend notes
*/ */
module.exports = (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'limit' parameter // Get 'limit' parameter
const [limit = 10, limitErr] = $.num.optional.range(1, 100).get(params.limit); const [limit = 10, limitErr] = $.num.optional.range(1, 100).get(params.limit);
if (limitErr) return rej('invalid limit param'); if (limitErr) return rej('invalid limit param');

View file

@ -8,7 +8,7 @@ import { ILocalUser } from '../../../../models/user';
/** /**
* Get timeline of a user list * Get timeline of a user list
*/ */
module.exports = async (params: any, user: ILocalUser) => { export default async (params: any, user: ILocalUser) => {
// Get 'limit' parameter // Get 'limit' parameter
const [limit = 10, limitErr] = $.num.optional.range(1, 100).get(params.limit); const [limit = 10, limitErr] = $.num.optional.range(1, 100).get(params.limit);
if (limitErr) throw 'invalid limit param'; if (limitErr) throw 'invalid limit param';

View file

@ -5,7 +5,7 @@ import User, { ILocalUser } from '../../../../models/user';
/** /**
* Mark as read all notifications * Mark as read all notifications
*/ */
module.exports = (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Update documents // Update documents
await Notification.update({ await Notification.update({
notifieeId: user._id, notifieeId: user._id,

View file

@ -2,7 +2,7 @@ import $ from 'cafy'; import ID from '../../../../cafy-id';
import ReversiGame, { pack } from '../../../../models/reversi-game'; import ReversiGame, { pack } from '../../../../models/reversi-game';
import { ILocalUser } from '../../../../models/user'; import { ILocalUser } from '../../../../models/user';
module.exports = (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'my' parameter // Get 'my' parameter
const [my = false, myErr] = $.bool.optional.get(params.my); const [my = false, myErr] = $.bool.optional.get(params.my);
if (myErr) return rej('invalid my param'); if (myErr) return rej('invalid my param');

View file

@ -3,7 +3,7 @@ import ReversiGame, { pack } from '../../../../../models/reversi-game';
import Reversi from '../../../../../reversi/core'; import Reversi from '../../../../../reversi/core';
import { ILocalUser } from '../../../../../models/user'; import { ILocalUser } from '../../../../../models/user';
module.exports = (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'gameId' parameter // Get 'gameId' parameter
const [gameId, gameIdErr] = $.type(ID).get(params.gameId); const [gameId, gameIdErr] = $.type(ID).get(params.gameId);
if (gameIdErr) return rej('invalid gameId param'); if (gameIdErr) return rej('invalid gameId param');

View file

@ -1,7 +1,7 @@
import Matching, { pack as packMatching } from '../../../../models/reversi-matching'; import Matching, { pack as packMatching } from '../../../../models/reversi-matching';
import { ILocalUser } from '../../../../models/user'; import { ILocalUser } from '../../../../models/user';
module.exports = (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Find session // Find session
const invitations = await Matching.find({ const invitations = await Matching.find({
childId: user._id childId: user._id

View file

@ -5,7 +5,7 @@ import User, { ILocalUser } from '../../../../models/user';
import publishUserStream, { publishReversiStream } from '../../../../publishers/stream'; import publishUserStream, { publishReversiStream } from '../../../../publishers/stream';
import { eighteight } from '../../../../reversi/maps'; import { eighteight } from '../../../../reversi/maps';
module.exports = (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'userId' parameter // Get 'userId' parameter
const [childId, childIdErr] = $.type(ID).get(params.userId); const [childId, childIdErr] = $.type(ID).get(params.userId);
if (childIdErr) return rej('invalid userId param'); if (childIdErr) return rej('invalid userId param');

View file

@ -1,7 +1,7 @@
import Matching from '../../../../../models/reversi-matching'; import Matching from '../../../../../models/reversi-matching';
import { ILocalUser } from '../../../../../models/user'; import { ILocalUser } from '../../../../../models/user';
module.exports = (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
await Matching.remove({ await Matching.remove({
parentId: user._id parentId: user._id
}); });

View file

@ -3,7 +3,7 @@ import Meta from '../../../models/meta';
/** /**
* Get the misskey's statistics * Get the misskey's statistics
*/ */
module.exports = () => new Promise(async (res, rej) => { export default () => new Promise(async (res, rej) => {
const meta = await Meta.findOne(); const meta = await Meta.findOne();
res(meta.stats); res(meta.stats);

View file

@ -5,7 +5,7 @@ import { ILocalUser } from '../../../../models/user';
/** /**
* subscribe service worker * subscribe service worker
*/ */
module.exports = async (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default async (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'endpoint' parameter // Get 'endpoint' parameter
const [endpoint, endpointErr] = $.str.get(params.endpoint); const [endpoint, endpointErr] = $.str.get(params.endpoint);
if (endpointErr) return rej('invalid endpoint param'); if (endpointErr) return rej('invalid endpoint param');

View file

@ -5,7 +5,7 @@ import { validateUsername } from '../../../../models/user';
/** /**
* Check available username * Check available username
*/ */
module.exports = async (params: any) => new Promise(async (res, rej) => { export default async (params: any) => new Promise(async (res, rej) => {
// Get 'username' parameter // Get 'username' parameter
const [username, usernameError] = $.str.pipe(validateUsername).get(params.username); const [username, usernameError] = $.str.pipe(validateUsername).get(params.username);
if (usernameError) return rej('invalid username param'); if (usernameError) return rej('invalid username param');

View file

@ -4,7 +4,7 @@ import User, { pack, ILocalUser } from '../../../models/user';
/** /**
* Lists all users * Lists all users
*/ */
module.exports = (params: any, me: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, me: ILocalUser) => new Promise(async (res, rej) => {
// Get 'limit' parameter // Get 'limit' parameter
const [limit = 10, limitErr] = $.num.optional.range(1, 100).get(params.limit); const [limit = 10, limitErr] = $.num.optional.range(1, 100).get(params.limit);
if (limitErr) return rej('invalid limit param'); if (limitErr) return rej('invalid limit param');

View file

@ -7,7 +7,7 @@ import { getFriendIds } from '../../common/get-friends';
/** /**
* Get followers of a user * Get followers of a user
*/ */
module.exports = (params: any, me: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, me: ILocalUser) => new Promise(async (res, rej) => {
// Get 'userId' parameter // Get 'userId' parameter
const [userId, userIdErr] = $.type(ID).get(params.userId); const [userId, userIdErr] = $.type(ID).get(params.userId);
if (userIdErr) return rej('invalid userId param'); if (userIdErr) return rej('invalid userId param');

View file

@ -7,7 +7,7 @@ import { getFriendIds } from '../../common/get-friends';
/** /**
* Get following users of a user * Get following users of a user
*/ */
module.exports = (params: any, me: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, me: ILocalUser) => new Promise(async (res, rej) => {
// Get 'userId' parameter // Get 'userId' parameter
const [userId, userIdErr] = $.type(ID).get(params.userId); const [userId, userIdErr] = $.type(ID).get(params.userId);
if (userIdErr) return rej('invalid userId param'); if (userIdErr) return rej('invalid userId param');

View file

@ -2,7 +2,7 @@ import $ from 'cafy'; import ID from '../../../../cafy-id';
import Note from '../../../../models/note'; import Note from '../../../../models/note';
import User, { pack, ILocalUser } from '../../../../models/user'; import User, { pack, ILocalUser } from '../../../../models/user';
module.exports = (params: any, me: ILocalUser) => new Promise(async (res, rej) => { export default (params: any, me: ILocalUser) => new Promise(async (res, rej) => {
// Get 'userId' parameter // Get 'userId' parameter
const [userId, userIdErr] = $.type(ID).get(params.userId); const [userId, userIdErr] = $.type(ID).get(params.userId);
if (userIdErr) return rej('invalid userId param'); if (userIdErr) return rej('invalid userId param');

View file

@ -5,7 +5,7 @@ import { ILocalUser } from '../../../../../models/user';
/** /**
* Create a user list * Create a user list
*/ */
module.exports = async (params: any, user: ILocalUser) => new Promise(async (res, rej) => { export default async (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'title' parameter // Get 'title' parameter
const [title, titleErr] = $.str.range(1, 100).get(params.title); const [title, titleErr] = $.str.range(1, 100).get(params.title);
if (titleErr) return rej('invalid title param'); if (titleErr) return rej('invalid title param');

Some files were not shown because too many files have changed in this diff Show more