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
		Add a link
		
	
		Reference in a new issue