summaryrefslogtreecommitdiff
path: root/src/api/endpoints/aggregation/users/following.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/api/endpoints/aggregation/users/following.ts')
-rw-r--r--src/api/endpoints/aggregation/users/following.ts73
1 files changed, 0 insertions, 73 deletions
diff --git a/src/api/endpoints/aggregation/users/following.ts b/src/api/endpoints/aggregation/users/following.ts
deleted file mode 100644
index 92da7e6921..0000000000
--- a/src/api/endpoints/aggregation/users/following.ts
+++ /dev/null
@@ -1,73 +0,0 @@
-/**
- * Module dependencies
- */
-import $ from 'cafy';
-import User from '../../../models/user';
-import Following from '../../../models/following';
-
-/**
- * Aggregate following of a user
- *
- * @param {any} params
- * @return {Promise<any>}
- */
-module.exports = (params) => new Promise(async (res, rej) => {
- // Get 'user_id' parameter
- const [userId, userIdErr] = $(params.user_id).id().$;
- if (userIdErr) return rej('invalid user_id param');
-
- // Lookup user
- const user = await User.findOne({
- _id: userId
- }, {
- fields: {
- _id: true
- }
- });
-
- if (user === null) {
- return rej('user not found');
- }
-
- const startTime = new Date(new Date().setMonth(new Date().getMonth() - 1));
-
- const following = await Following
- .find({
- follower_id: user._id,
- $or: [
- { deleted_at: { $exists: false } },
- { deleted_at: { $gt: startTime } }
- ]
- }, {
- _id: false,
- follower_id: false,
- followee_id: false
- }, {
- sort: { created_at: -1 }
- });
-
- const graph = [];
-
- for (let i = 0; i < 30; i++) {
- let day = new Date(new Date().setDate(new Date().getDate() - i));
- day = new Date(day.setMilliseconds(999));
- day = new Date(day.setSeconds(59));
- day = new Date(day.setMinutes(59));
- day = new Date(day.setHours(23));
-
- const count = following.filter(f =>
- f.created_at < day && (f.deleted_at == null || f.deleted_at > day)
- ).length;
-
- graph.push({
- date: {
- year: day.getFullYear(),
- month: day.getMonth() + 1, // In JavaScript, month is zero-based.
- day: day.getDate()
- },
- count: count
- });
- }
-
- res(graph);
-});