mirror of
				https://github.com/NodeBB/NodeBB.git
				synced 2025-10-31 11:05:54 +01:00 
			
		
		
		
	refactor: get rid of bind calls
This commit is contained in:
		
							
								
								
									
										28
									
								
								src/flags.js
									
									
									
									
									
								
							
							
						
						
									
										28
									
								
								src/flags.js
									
									
									
									
									
								
							| @@ -318,43 +318,43 @@ Flags.create = async function (type, id, uid, reason, timestamp) { | ||||
| 	const batched = []; | ||||
|  | ||||
| 	batched.push( | ||||
| 		db.setObject.bind(db, 'flag:' + flagId, { | ||||
| 		db.setObject('flag:' + flagId, { | ||||
| 			flagId: flagId, | ||||
| 			type: type, | ||||
| 			targetId: id, | ||||
| 			datetime: timestamp, | ||||
| 		}), | ||||
| 		Flags.addReport.bind(Flags, flagId, uid, reason, timestamp), | ||||
| 		db.sortedSetAdd.bind(db, 'flags:datetime', timestamp, flagId), // by time, the default | ||||
| 		db.sortedSetAdd.bind(db, 'flags:byType:' + type, timestamp, flagId),	// by flag type | ||||
| 		db.sortedSetAdd.bind(db, 'flags:hash', flagId, [type, id, uid].join(':')), // save zset for duplicate checking | ||||
| 		db.sortedSetIncrBy.bind(db, 'flags:byTarget', 1, [type, id].join(':')),	// by flag target (score is count) | ||||
| 		analytics.increment.bind(analytics, 'flags') // some fancy analytics | ||||
| 		Flags.addReport(flagId, uid, reason, timestamp), | ||||
| 		db.sortedSetAdd('flags:datetime', timestamp, flagId), // by time, the default | ||||
| 		db.sortedSetAdd('flags:byType:' + type, timestamp, flagId),	// by flag type | ||||
| 		db.sortedSetAdd('flags:hash', flagId, [type, id, uid].join(':')), // save zset for duplicate checking | ||||
| 		db.sortedSetIncrBy('flags:byTarget', 1, [type, id].join(':')),	// by flag target (score is count) | ||||
| 		analytics.increment('flags') // some fancy analytics | ||||
| 	); | ||||
|  | ||||
| 	if (targetUid) { | ||||
| 		batched.push(db.sortedSetAdd.bind(db, 'flags:byTargetUid:' + targetUid, timestamp, flagId)); // by target uid | ||||
| 		batched.push(db.sortedSetAdd('flags:byTargetUid:' + targetUid, timestamp, flagId)); // by target uid | ||||
| 	} | ||||
|  | ||||
| 	if (targetCid) { | ||||
| 		batched.push(db.sortedSetAdd.bind(db, 'flags:byCid:' + targetCid, timestamp, flagId)); // by target cid | ||||
| 		batched.push(db.sortedSetAdd('flags:byCid:' + targetCid, timestamp, flagId)); // by target cid | ||||
| 	} | ||||
|  | ||||
| 	if (type === 'post') { | ||||
| 		batched.push( | ||||
| 			db.sortedSetAdd.bind(db, 'flags:byPid:' + id, timestamp, flagId),	// by target pid | ||||
| 			posts.setPostField.bind(posts, id, 'flagId', flagId) | ||||
| 			db.sortedSetAdd('flags:byPid:' + id, timestamp, flagId),	// by target pid | ||||
| 			posts.setPostField(id, 'flagId', flagId) | ||||
| 		); | ||||
|  | ||||
| 		if (targetUid) { | ||||
| 			batched.push(user.incrementUserFlagsBy.bind(user, targetUid, 1)); | ||||
| 			batched.push(user.incrementUserFlagsBy(targetUid, 1)); | ||||
| 		} | ||||
| 	} else if (type === 'user') { | ||||
| 		batched.push(user.setUserField.bind(user, id, 'flagId', flagId)); | ||||
| 		batched.push(user.setUserField(id, 'flagId', flagId)); | ||||
| 	} | ||||
|  | ||||
| 	// Run all the database calls in one single batched call... | ||||
| 	await Promise.all(batched.map(async method => await method())); | ||||
| 	await Promise.all(batched); | ||||
|  | ||||
| 	if (doHistoryAppend) { | ||||
| 		Flags.update(flagId, uid, { state: 'open' }); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user