This commit is contained in:
syuilo 2018-02-04 14:52:33 +09:00
parent 2cb0511dba
commit bcd65d290d
23 changed files with 48 additions and 43 deletions

View File

@ -35,10 +35,13 @@ module.exports = (params) => new Promise(async (res, rej) => {
{ deleted_at: { $gt: startTime } } { deleted_at: { $gt: startTime } }
] ]
}, { }, {
_id: false, sort: {
post_id: false _id: -1
}, { },
sort: { created_at: -1 } fields: {
_id: false,
post_id: false
}
}); });
const graph = []; const graph = [];

View File

@ -17,11 +17,14 @@ module.exports = params => new Promise(async (res, rej) => {
const users = await User const users = await User
.find({}, { .find({}, {
_id: false, sort: {
created_at: true, _id: -1
deleted_at: true },
}, { fields: {
sort: { created_at: -1 } _id: false,
created_at: true,
deleted_at: true
}
}); });
const graph = []; const graph = [];

View File

@ -3,8 +3,7 @@
*/ */
import rndstr from 'rndstr'; import rndstr from 'rndstr';
import $ from 'cafy'; import $ from 'cafy';
import App from '../../models/app'; import App, { isValidNameId, pack } from '../../models/app';
import { isValidNameId }, { pack } from '../../models/app';
/** /**
* @swagger * @swagger

View File

@ -2,7 +2,7 @@
* Module dependencies * Module dependencies
*/ */
import $ from 'cafy'; import $ from 'cafy';
import { default as Channel, IChannel }, { pack } from '../../models/channel'; import Channel, { IChannel, pack } from '../../models/channel';
/** /**
* Show a channel * Show a channel

View File

@ -2,7 +2,7 @@
* Module dependencies * Module dependencies
*/ */
import $ from 'cafy'; import $ from 'cafy';
import { validateFileName }, { pack } from '../../../models/drive-file'; import { validateFileName, pack } from '../../../models/drive-file';
import create from '../../../common/add-file-to-drive'; import create from '../../../common/add-file-to-drive';
/** /**

View File

@ -3,8 +3,7 @@
*/ */
import $ from 'cafy'; import $ from 'cafy';
import DriveFolder from '../../../models/drive-folder'; import DriveFolder from '../../../models/drive-folder';
import DriveFile from '../../../models/drive-file'; import DriveFile, { validateFileName, pack } from '../../../models/drive-file';
import { validateFileName }, { pack } from '../../../models/drive-file';
import { publishDriveStream } from '../../../event'; import { publishDriveStream } from '../../../event';
/** /**

View File

@ -3,7 +3,7 @@
*/ */
import * as URL from 'url'; import * as URL from 'url';
import $ from 'cafy'; import $ from 'cafy';
import { validateFileName }, { pack } from '../../../models/drive-file'; import { validateFileName, pack } from '../../../models/drive-file';
import create from '../../../common/add-file-to-drive'; import create from '../../../common/add-file-to-drive';
import * as debug from 'debug'; import * as debug from 'debug';
import * as tmp from 'tmp'; import * as tmp from 'tmp';

View File

@ -2,8 +2,7 @@
* Module dependencies * Module dependencies
*/ */
import $ from 'cafy'; import $ from 'cafy';
import DriveFolder from '../../../models/drive-folder'; import DriveFolder, { isValidFolderName, pack } from '../../../models/drive-folder';
import { isValidFolderName }, { pack } from '../../../models/drive-folder';
import { publishDriveStream } from '../../../event'; import { publishDriveStream } from '../../../event';
/** /**

View File

@ -2,8 +2,7 @@
* Module dependencies * Module dependencies
*/ */
import $ from 'cafy'; import $ from 'cafy';
import DriveFolder from '../../../models/drive-folder'; import DriveFolder, { isValidFolderName, pack } from '../../../models/drive-folder';
import { isValidFolderName }, { pack } from '../../../models/drive-folder';
import { publishDriveStream } from '../../../event'; import { publishDriveStream } from '../../../event';
/** /**

View File

@ -2,11 +2,10 @@
* Module dependencies * Module dependencies
*/ */
import $ from 'cafy'; import $ from 'cafy';
import User from '../../models/user'; import User, { pack as packUser } from '../../models/user';
import Following from '../../models/following'; import Following from '../../models/following';
import notify from '../../common/notify'; import notify from '../../common/notify';
import event from '../../event'; import event from '../../event';
import serializeUser from '../../serializers/user';
/** /**
* Follow a user * Follow a user
@ -77,8 +76,8 @@ module.exports = (params, user) => new Promise(async (res, rej) => {
}); });
// Publish follow event // Publish follow event
event(follower._id, 'follow', await serializeUser(followee, follower)); event(follower._id, 'follow', await packUser(followee, follower));
event(followee._id, 'followed', await serializeUser(follower, followee)); event(followee._id, 'followed', await packUser(follower, followee));
// Notify // Notify
notify(followee._id, follower._id, 'follow'); notify(followee._id, follower._id, 'follow');

View File

@ -2,10 +2,9 @@
* Module dependencies * Module dependencies
*/ */
import $ from 'cafy'; import $ from 'cafy';
import User from '../../models/user'; import User, { pack as packUser } from '../../models/user';
import Following from '../../models/following'; import Following from '../../models/following';
import event from '../../event'; import event from '../../event';
import serializeUser from '../../serializers/user';
/** /**
* Unfollow a user * Unfollow a user
@ -78,5 +77,5 @@ module.exports = (params, user) => new Promise(async (res, rej) => {
}); });
// Publish follow event // Publish follow event
event(follower._id, 'unfollow', await serializeUser(followee, follower)); event(follower._id, 'unfollow', await packUser(followee, follower));
}); });

View File

@ -2,8 +2,7 @@
* Module dependencies * Module dependencies
*/ */
import $ from 'cafy'; import $ from 'cafy';
import User from '../../models/user'; import User, { isValidName, isValidDescription, isValidLocation, isValidBirthday, pack } from '../../models/user';
import { isValidName, isValidDescription, isValidLocation, isValidBirthday }, { pack } from '../../models/user';
import event from '../../event'; import event from '../../event';
import config from '../../../conf'; import config from '../../../conf';

View File

@ -3,13 +3,12 @@
*/ */
import $ from 'cafy'; import $ from 'cafy';
import Reaction from '../../../models/post-reaction'; import Reaction from '../../../models/post-reaction';
import Post from '../../../models/post'; import Post, { pack as packPost } from '../../../models/post';
import { pack as packUser } from '../../../models/user';
import Watching from '../../../models/post-watching'; import Watching from '../../../models/post-watching';
import notify from '../../../common/notify'; import notify from '../../../common/notify';
import watch from '../../../common/watch-post'; import watch from '../../../common/watch-post';
import { publishPostStream, pushSw } from '../../../event'; import { publishPostStream, pushSw } from '../../../event';
import serializePost from '../../../serializers/post';
import serializeUser from '../../../serializers/user';
/** /**
* React to a post * React to a post
@ -90,8 +89,8 @@ module.exports = (params, user) => new Promise(async (res, rej) => {
}); });
pushSw(post.user_id, 'reaction', { pushSw(post.user_id, 'reaction', {
user: await serializeUser(user, post.user_id), user: await packUser(user, post.user_id),
post: await serializePost(post, post.user_id), post: await packPost(post, post.user_id),
reaction: reaction reaction: reaction
}); });

View File

@ -2,8 +2,8 @@
* Module dependencies * Module dependencies
*/ */
import $ from 'cafy'; import $ from 'cafy';
import Post from '../../models/post'; import Post, { pack } from '../../models/post';
import User, { pack } from '../../models/user'; import User from '../../models/user';
/** /**
* Get posts of a user * Get posts of a user

View File

@ -51,7 +51,7 @@ async function byNative(res, rej, me, query, offset, max) {
// Serialize // Serialize
res(await Promise.all(users.map(async user => res(await Promise.all(users.map(async user =>
await serialize(user, me, { detail: true })))); await pack(user, me, { detail: true }))));
} }
// Search by Elasticsearch // Search by Elasticsearch

View File

@ -14,6 +14,7 @@ export type IApp = {
_id: mongo.ObjectID; _id: mongo.ObjectID;
created_at: Date; created_at: Date;
user_id: mongo.ObjectID; user_id: mongo.ObjectID;
secret: string;
}; };
export function isValidNameId(nameId: string): boolean { export function isValidNameId(nameId: string): boolean {

View File

@ -23,6 +23,7 @@ export type IDriveFile = {
uploadDate: Date; uploadDate: Date;
md5: string; md5: string;
filename: string; filename: string;
contentType: string;
metadata: { metadata: {
properties: any; properties: any;
user_id: mongodb.ObjectID; user_id: mongodb.ObjectID;

View File

@ -9,6 +9,9 @@ export default PostReaction;
export interface IPostReaction { export interface IPostReaction {
_id: mongo.ObjectID; _id: mongo.ObjectID;
created_at: Date;
deleted_at: Date;
reaction: string;
} }
/** /**

View File

@ -25,10 +25,12 @@ export type IPost = {
media_ids: mongo.ObjectID[]; media_ids: mongo.ObjectID[];
reply_id: mongo.ObjectID; reply_id: mongo.ObjectID;
repost_id: mongo.ObjectID; repost_id: mongo.ObjectID;
poll: {}; // todo poll: any; // todo
text: string; text: string;
user_id: mongo.ObjectID; user_id: mongo.ObjectID;
app_id: mongo.ObjectID; app_id: mongo.ObjectID;
category: string;
is_category_verified: boolean;
}; };
/** /**

View File

@ -42,6 +42,7 @@ export function isValidBirthday(birthday: string): boolean {
export type IUser = { export type IUser = {
_id: mongo.ObjectID; _id: mongo.ObjectID;
created_at: Date; created_at: Date;
deleted_at: Date;
email: string; email: string;
followers_count: number; followers_count: number;
following_count: number; following_count: number;

View File

@ -2,8 +2,7 @@ import * as uuid from 'uuid';
import * as express from 'express'; import * as express from 'express';
import * as bcrypt from 'bcryptjs'; import * as bcrypt from 'bcryptjs';
import recaptcha = require('recaptcha-promise'); import recaptcha = require('recaptcha-promise');
import { default as User, IUser } from '../models/user'; import User, { IUser, validateUsername, validatePassword, pack } from '../models/user';
import { validateUsername, validatePassword }, { pack } from '../models/user';
import generateUserToken from '../common/generate-native-user-token'; import generateUserToken from '../common/generate-native-user-token';
import config from '../../conf'; import config from '../../conf';

View File

@ -163,7 +163,7 @@ module.exports = (app: express.Application) => {
res.send(`Twitter: @${result.screenName} を、Misskey: @${user.username} に接続しました!`); res.send(`Twitter: @${result.screenName} を、Misskey: @${user.username} に接続しました!`);
// Publish i updated event // Publish i updated event
event(user._id, 'i_updated', await serialize(user, user, { event(user._id, 'i_updated', await pack(user, user, {
detail: true, detail: true,
includeSecrets: true includeSecrets: true
})); }));

View File

@ -4,7 +4,7 @@ import * as debug from 'debug';
import User from '../models/user'; import User from '../models/user';
import Mute from '../models/mute'; import Mute from '../models/mute';
import serializePost from '../serializers/post'; import { pack as packPost } from '../models/post';
import readNotification from '../common/read-notification'; import readNotification from '../common/read-notification';
const log = debug('misskey'); const log = debug('misskey');
@ -49,7 +49,7 @@ export default async function(request: websocket.request, connection: websocket.
case 'post-stream': case 'post-stream':
const postId = channel.split(':')[2]; const postId = channel.split(':')[2];
log(`RECEIVED: ${postId} ${data} by @${user.username}`); log(`RECEIVED: ${postId} ${data} by @${user.username}`);
const post = await serializePost(postId, user, { const post = await packPost(postId, user, {
detail: true detail: true
}); });
connection.send(JSON.stringify({ connection.send(JSON.stringify({