mirror of
				https://codeberg.org/yeentown/barkey.git
				synced 2025-11-04 07:24:13 +00:00 
			
		
		
		
	wip
This commit is contained in:
		
							parent
							
								
									7602e8f938
								
							
						
					
					
						commit
						e14ea1fe61
					
				
					 1 changed files with 48 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -0,0 +1,48 @@
 | 
			
		|||
import $ from 'cafy'; import ID from '../../../../../cafy-id';
 | 
			
		||||
import UserList from '../../../../../models/user-list';
 | 
			
		||||
import User from '../../../../../models/user';
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Add a user to a user list
 | 
			
		||||
 */
 | 
			
		||||
module.exports = async (params, me) => new Promise(async (res, rej) => {
 | 
			
		||||
	// Get 'listId' parameter
 | 
			
		||||
	const [listId, listIdErr] = $(params.listId).type(ID).$;
 | 
			
		||||
	if (listIdErr) return rej('invalid listId param');
 | 
			
		||||
 | 
			
		||||
	// Fetch the list
 | 
			
		||||
	const userList = await UserList.findOne({
 | 
			
		||||
		_id: listId,
 | 
			
		||||
		userId: me._id,
 | 
			
		||||
	});
 | 
			
		||||
 | 
			
		||||
	if (userList == null) {
 | 
			
		||||
		return rej('list not found');
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Get 'userId' parameter
 | 
			
		||||
	const [userId, userIdErr] = $(params.userId).type(ID).$;
 | 
			
		||||
	if (userIdErr) return rej('invalid userId param');
 | 
			
		||||
 | 
			
		||||
	// Fetch the user
 | 
			
		||||
	const user = await User.findOne({
 | 
			
		||||
		_id: userId
 | 
			
		||||
	});
 | 
			
		||||
 | 
			
		||||
	if (user == null) {
 | 
			
		||||
		return rej('user not found');
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (userList.userIds.map(id => id.toHexString()).includes(user._id.toHexString())) {
 | 
			
		||||
		return rej('the user already added');
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Push the user
 | 
			
		||||
	await UserList.update({ _id: userList._id }, {
 | 
			
		||||
		$push: {
 | 
			
		||||
			userIds: user._id
 | 
			
		||||
		}
 | 
			
		||||
	});
 | 
			
		||||
 | 
			
		||||
	res();
 | 
			
		||||
});
 | 
			
		||||
		Loading…
	
	Add table
		
		Reference in a new issue