From 1bf8cbeb29af5f0d40487118749f64203ae1b901 Mon Sep 17 00:00:00 2001 From: syuilo Date: Sun, 21 Oct 2018 14:15:02 +0900 Subject: [PATCH] Clean up --- src/models/followed-log.ts | 40 ------------ src/models/following-log.ts | 40 ------------ src/models/user.ts | 12 ---- .../endpoints/aggregation/users/followers.ts | 61 ------------------- .../endpoints/aggregation/users/following.ts | 61 ------------------- src/services/following/create.ts | 15 +---- src/services/following/delete.ts | 13 ---- src/services/following/requests/accept.ts | 16 +---- 8 files changed, 2 insertions(+), 256 deletions(-) delete mode 100644 src/models/followed-log.ts delete mode 100644 src/models/following-log.ts delete mode 100644 src/server/api/endpoints/aggregation/users/followers.ts delete mode 100644 src/server/api/endpoints/aggregation/users/following.ts diff --git a/src/models/followed-log.ts b/src/models/followed-log.ts deleted file mode 100644 index 0c8c15f11..000000000 --- a/src/models/followed-log.ts +++ /dev/null @@ -1,40 +0,0 @@ -import * as mongo from 'mongodb'; -import db from '../db/mongodb'; -import isObjectId from '../misc/is-objectid'; - -const FollowedLog = db.get('followedLogs'); -export default FollowedLog; - -export type IFollowedLog = { - _id: mongo.ObjectID; - createdAt: Date; - userId: mongo.ObjectID; - count: number; -}; - -/** - * FollowedLogを物理削除します - */ -export async function deleteFollowedLog(followedLog: string | mongo.ObjectID | IFollowedLog) { - let f: IFollowedLog; - - // Populate - if (isObjectId(followedLog)) { - f = await FollowedLog.findOne({ - _id: followedLog - }); - } else if (typeof followedLog === 'string') { - f = await FollowedLog.findOne({ - _id: new mongo.ObjectID(followedLog) - }); - } else { - f = followedLog as IFollowedLog; - } - - if (f == null) return; - - // このFollowedLogを削除 - await FollowedLog.remove({ - _id: f._id - }); -} diff --git a/src/models/following-log.ts b/src/models/following-log.ts deleted file mode 100644 index d2efb45b3..000000000 --- a/src/models/following-log.ts +++ /dev/null @@ -1,40 +0,0 @@ -import * as mongo from 'mongodb'; -import db from '../db/mongodb'; -import isObjectId from '../misc/is-objectid'; - -const FollowingLog = db.get('followingLogs'); -export default FollowingLog; - -export type IFollowingLog = { - _id: mongo.ObjectID; - createdAt: Date; - userId: mongo.ObjectID; - count: number; -}; - -/** - * FollowingLogを物理削除します - */ -export async function deleteFollowingLog(followingLog: string | mongo.ObjectID | IFollowingLog) { - let f: IFollowingLog; - - // Populate - if (isObjectId(followingLog)) { - f = await FollowingLog.findOne({ - _id: followingLog - }); - } else if (typeof followingLog === 'string') { - f = await FollowingLog.findOne({ - _id: new mongo.ObjectID(followingLog) - }); - } else { - f = followingLog as IFollowingLog; - } - - if (f == null) return; - - // このFollowingLogを削除 - await FollowingLog.remove({ - _id: f._id - }); -} diff --git a/src/models/user.ts b/src/models/user.ts index f2afe00d1..25c4a9eb0 100644 --- a/src/models/user.ts +++ b/src/models/user.ts @@ -18,8 +18,6 @@ import MessagingHistory, { deleteMessagingHistory } from './messaging-history'; import DriveFile, { deleteDriveFile } from './drive-file'; import DriveFolder, { deleteDriveFolder } from './drive-folder'; import PollVote, { deletePollVote } from './poll-vote'; -import FollowingLog, { deleteFollowingLog } from './following-log'; -import FollowedLog, { deleteFollowedLog } from './followed-log'; import SwSubscription, { deleteSwSubscription } from './sw-subscription'; import Notification, { deleteNotification } from './notification'; import UserList, { deleteUserList } from './user-list'; @@ -277,16 +275,6 @@ export async function deleteUser(user: string | mongo.ObjectID | IUser) { await FollowRequest.find({ followeeId: u._id }) ).map(x => deleteFollowRequest(x))); - // このユーザーのFollowingLogをすべて削除 - await Promise.all(( - await FollowingLog.find({ userId: u._id }) - ).map(x => deleteFollowingLog(x))); - - // このユーザーのFollowedLogをすべて削除 - await Promise.all(( - await FollowedLog.find({ userId: u._id }) - ).map(x => deleteFollowedLog(x))); - // このユーザーのSwSubscriptionをすべて削除 await Promise.all(( await SwSubscription.find({ userId: u._id }) diff --git a/src/server/api/endpoints/aggregation/users/followers.ts b/src/server/api/endpoints/aggregation/users/followers.ts deleted file mode 100644 index 94eb83feb..000000000 --- a/src/server/api/endpoints/aggregation/users/followers.ts +++ /dev/null @@ -1,61 +0,0 @@ -/** - * Module dependencies - */ -import $ from 'cafy'; import ID from '../../../../../misc/cafy-id'; -import User from '../../../../../models/user'; -import FollowedLog from '../../../../../models/followed-log'; - -/** - * Aggregate followers of a user - */ -export default (params: any) => new Promise(async (res, rej) => { - // Get 'userId' parameter - const [userId, userIdErr] = $.type(ID).get(params.userId); - if (userIdErr) return rej('invalid userId param'); - - // Lookup user - const user = await User.findOne({ - _id: userId - }, { - fields: { - _id: true - } - }); - - if (user === null) { - return rej('user not found'); - } - - const today = new Date(); - const graph = []; - - today.setMinutes(0); - today.setSeconds(0); - today.setMilliseconds(0); - - let cursorDate = new Date(today.getTime()); - let cursorTime = cursorDate.setDate(new Date(today.getTime()).getDate() + 1); - - for (let i = 0; i < 30; i++) { - graph.push(FollowedLog.findOne({ - createdAt: { $lt: new Date(cursorTime / 1000) }, - userId: user._id - }, { - sort: { createdAt: -1 }, - }).then(log => { - cursorDate = new Date(today.getTime()); - cursorTime = cursorDate.setDate(today.getDate() - i); - - return { - date: { - year: cursorDate.getFullYear(), - month: cursorDate.getMonth() + 1, // In JavaScript, month is zero-based. - day: cursorDate.getDate() - }, - count: log ? log.count : 0 - }; - })); - } - - res(await Promise.all(graph)); -}); diff --git a/src/server/api/endpoints/aggregation/users/following.ts b/src/server/api/endpoints/aggregation/users/following.ts deleted file mode 100644 index d2e4d256f..000000000 --- a/src/server/api/endpoints/aggregation/users/following.ts +++ /dev/null @@ -1,61 +0,0 @@ -/** - * Module dependencies - */ -import $ from 'cafy'; import ID from '../../../../../misc/cafy-id'; -import User from '../../../../../models/user'; -import FollowingLog from '../../../../../models/following-log'; - -/** - * Aggregate following of a user - */ -export default (params: any) => new Promise(async (res, rej) => { - // Get 'userId' parameter - const [userId, userIdErr] = $.type(ID).get(params.userId); - if (userIdErr) return rej('invalid userId param'); - - // Lookup user - const user = await User.findOne({ - _id: userId - }, { - fields: { - _id: true - } - }); - - if (user === null) { - return rej('user not found'); - } - - const today = new Date(); - const graph = []; - - today.setMinutes(0); - today.setSeconds(0); - today.setMilliseconds(0); - - let cursorDate = new Date(today.getTime()); - let cursorTime = cursorDate.setDate(new Date(today.getTime()).getDate() + 1); - - for (let i = 0; i < 30; i++) { - graph.push(FollowingLog.findOne({ - createdAt: { $lt: new Date(cursorTime / 1000) }, - userId: user._id - }, { - sort: { createdAt: -1 }, - }).then(log => { - cursorDate = new Date(today.getTime()); - cursorTime = cursorDate.setDate(today.getDate() - i); - - return { - date: { - year: cursorDate.getFullYear(), - month: cursorDate.getMonth() + 1, // In JavaScript, month is zero-based. - day: cursorDate.getDate() - }, - count: log ? log.count : 0 - }; - })); - } - - res(await Promise.all(graph)); -}); diff --git a/src/services/following/create.ts b/src/services/following/create.ts index 1768083d1..c0d0b9215 100644 --- a/src/services/following/create.ts +++ b/src/services/following/create.ts @@ -1,7 +1,5 @@ import User, { isLocalUser, isRemoteUser, pack as packUser, IUser } from '../../models/user'; import Following from '../../models/following'; -import FollowingLog from '../../models/following-log'; -import FollowedLog from '../../models/followed-log'; import { publishMainStream } from '../../stream'; import notify from '../../notify'; import pack from '../../remote/activitypub/renderer'; @@ -20,7 +18,7 @@ export default async function(follower: IUser, followee: IUser, requestId?: stri return; } - const following = await Following.insert({ + await Following.insert({ createdAt: new Date(), followerId: follower._id, followeeId: followee._id, @@ -44,12 +42,6 @@ export default async function(follower: IUser, followee: IUser, requestId?: stri followingCount: 1 } }); - - FollowingLog.insert({ - createdAt: following.createdAt, - userId: follower._id, - count: follower.followingCount + 1 - }); //#endregion //#region Increment followers count @@ -58,11 +50,6 @@ export default async function(follower: IUser, followee: IUser, requestId?: stri followersCount: 1 } }); - FollowedLog.insert({ - createdAt: following.createdAt, - userId: followee._id, - count: followee.followersCount + 1 - }); //#endregion // Publish follow event diff --git a/src/services/following/delete.ts b/src/services/following/delete.ts index 2a67acbf0..3fb0e50b1 100644 --- a/src/services/following/delete.ts +++ b/src/services/following/delete.ts @@ -1,7 +1,5 @@ import User, { isLocalUser, isRemoteUser, pack as packUser, IUser } from '../../models/user'; import Following from '../../models/following'; -import FollowingLog from '../../models/following-log'; -import FollowedLog from '../../models/followed-log'; import { publishMainStream } from '../../stream'; import pack from '../../remote/activitypub/renderer'; import renderFollow from '../../remote/activitypub/renderer/follow'; @@ -29,12 +27,6 @@ export default async function(follower: IUser, followee: IUser) { followingCount: -1 } }); - - FollowingLog.insert({ - createdAt: following.createdAt, - userId: follower._id, - count: follower.followingCount - 1 - }); //#endregion //#region Decrement followers count @@ -43,11 +35,6 @@ export default async function(follower: IUser, followee: IUser) { followersCount: -1 } }); - FollowedLog.insert({ - createdAt: following.createdAt, - userId: followee._id, - count: followee.followersCount - 1 - }); //#endregion // Publish unfollow event diff --git a/src/services/following/requests/accept.ts b/src/services/following/requests/accept.ts index 2a32db6a4..1f07df29d 100644 --- a/src/services/following/requests/accept.ts +++ b/src/services/following/requests/accept.ts @@ -5,12 +5,10 @@ import renderFollow from '../../../remote/activitypub/renderer/follow'; import renderAccept from '../../../remote/activitypub/renderer/accept'; import { deliver } from '../../../queue'; import Following from '../../../models/following'; -import FollowingLog from '../../../models/following-log'; -import FollowedLog from '../../../models/followed-log'; import { publishMainStream } from '../../../stream'; export default async function(followee: IUser, follower: IUser) { - const following = await Following.insert({ + await Following.insert({ createdAt: new Date(), followerId: follower._id, followeeId: followee._id, @@ -49,12 +47,6 @@ export default async function(followee: IUser, follower: IUser) { followingCount: 1 } }); - - FollowingLog.insert({ - createdAt: following.createdAt, - userId: follower._id, - count: follower.followingCount + 1 - }); //#endregion //#region Increment followers count @@ -63,12 +55,6 @@ export default async function(followee: IUser, follower: IUser) { followersCount: 1 } }); - - FollowedLog.insert({ - createdAt: following.createdAt, - userId: followee._id, - count: followee.followersCount + 1 - }); //#endregion await User.update({ _id: followee._id }, {