wip
This commit is contained in:
		| @@ -1,69 +0,0 @@ | ||||
| import User, { isLocalUser, pack as packUser } from '../../models/user'; | ||||
| import Following from '../../models/following'; | ||||
| import FollowingLog from '../../models/following-log'; | ||||
| import FollowedLog from '../../models/followed-log'; | ||||
| import event from '../../publishers/stream'; | ||||
| import notify from '../../publishers/notify'; | ||||
| import context from '../../remote/activitypub/renderer/context'; | ||||
| import render from '../../remote/activitypub/renderer/follow'; | ||||
| import request from '../../remote/request'; | ||||
|  | ||||
| export default ({ data }) => Following.findOne({ _id: data.following }).then(({ followerId, followeeId }) => { | ||||
| 	const promisedFollower = User.findOne({ _id: followerId }); | ||||
| 	const promisedFollowee = User.findOne({ _id: followeeId }); | ||||
|  | ||||
| 	return Promise.all([ | ||||
| 		// Increment following count | ||||
| 		User.update(followerId, { | ||||
| 			$inc: { | ||||
| 				followingCount: 1 | ||||
| 			} | ||||
| 		}), | ||||
|  | ||||
| 		promisedFollower.then(({ followingCount }) => FollowingLog.insert({ | ||||
| 			createdAt: data.following.createdAt, | ||||
| 			userId: followerId, | ||||
| 			count: followingCount + 1 | ||||
| 		})), | ||||
|  | ||||
| 		// Increment followers count | ||||
| 		User.update({ _id: followeeId }, { | ||||
| 			$inc: { | ||||
| 				followersCount: 1 | ||||
| 			} | ||||
| 		}), | ||||
|  | ||||
| 		promisedFollowee.then(({ followersCount }) => FollowedLog.insert({ | ||||
| 			createdAt: data.following.createdAt, | ||||
| 			userId: followerId, | ||||
| 			count: followersCount + 1 | ||||
| 		})), | ||||
|  | ||||
| 		// Notify | ||||
| 		promisedFollowee.then(followee => followee.host === null ? | ||||
| 			notify(followeeId, followerId, 'follow') : null), | ||||
|  | ||||
| 		// Publish follow event | ||||
| 		Promise.all([promisedFollower, promisedFollowee]).then(([follower, followee]) => { | ||||
| 			let followerEvent; | ||||
| 			let followeeEvent; | ||||
|  | ||||
| 			if (isLocalUser(follower)) { | ||||
| 				followerEvent = packUser(followee, follower) | ||||
| 					.then(packed => event(follower._id, 'follow', packed)); | ||||
| 			} | ||||
|  | ||||
| 			if (isLocalUser(followee)) { | ||||
| 				followeeEvent = packUser(follower, followee) | ||||
| 					.then(packed => event(followee._id, 'followed', packed)); | ||||
| 			} else if (isLocalUser(follower)) { | ||||
| 				const rendered = render(follower, followee); | ||||
| 				rendered['@context'] = context; | ||||
|  | ||||
| 				followeeEvent = request(follower, followee.account.inbox, rendered); | ||||
| 			} | ||||
|  | ||||
| 			return Promise.all([followerEvent, followeeEvent]); | ||||
| 		}) | ||||
| 	]); | ||||
| }); | ||||
		Reference in New Issue
	
	Block a user
	 syuilo
					syuilo