forked from gitea/gitea
		
	Fix API Bug (fail on empty assignees) (#8873)
* keep sure if assigneeIDs == nil -> do nothing * fix #8872 * Revert "keep sure if assigneeIDs == nil -> do nothing" -> go handle it itself preaty well This reverts commit e72d94129c4666d5151f6131cb2f8c1de127d9d0. * clarity comparson Co-Authored-By: guillep2k <18600385+guillep2k@users.noreply.github.com> * simplify * Update models/issue_assignees.go Co-Authored-By: guillep2k <18600385+guillep2k@users.noreply.github.com> * Update issue_assignees.go * simplify more * add --if oneAssignee != ""-- again * Update models/issue_assignees.go Co-Authored-By: guillep2k <18600385+guillep2k@users.noreply.github.com> * CI.restart() * Update issue_assignees.go * add Test for GetUserIDsByNames * add Test for MakeIDsFromAPIAssigneesToAdd * fix test
This commit is contained in:
		
							parent
							
								
									daab245167
								
							
						
					
					
						commit
						31416a5f4e
					
				| @ -7,6 +7,8 @@ package models | ||||
| import ( | ||||
| 	"fmt" | ||||
| 
 | ||||
| 	"code.gitea.io/gitea/modules/util" | ||||
| 
 | ||||
| 	"xorm.io/xorm" | ||||
| ) | ||||
| 
 | ||||
| @ -171,25 +173,20 @@ func toggleUserAssignee(e *xorm.Session, issue *Issue, assigneeID int64) (remove | ||||
| // MakeIDsFromAPIAssigneesToAdd returns an array with all assignee IDs | ||||
| func MakeIDsFromAPIAssigneesToAdd(oneAssignee string, multipleAssignees []string) (assigneeIDs []int64, err error) { | ||||
| 
 | ||||
| 	var requestAssignees []string | ||||
| 
 | ||||
| 	// Keeping the old assigning method for compatibility reasons | ||||
| 	if oneAssignee != "" { | ||||
| 	if oneAssignee != "" && !util.IsStringInSlice(oneAssignee, multipleAssignees) { | ||||
| 		requestAssignees = append(requestAssignees, oneAssignee) | ||||
| 	} | ||||
| 
 | ||||
| 		// Prevent double adding assignees | ||||
| 		var isDouble bool | ||||
| 		for _, assignee := range multipleAssignees { | ||||
| 			if assignee == oneAssignee { | ||||
| 				isDouble = true | ||||
| 				break | ||||
| 			} | ||||
| 		} | ||||
| 
 | ||||
| 		if !isDouble { | ||||
| 			multipleAssignees = append(multipleAssignees, oneAssignee) | ||||
| 		} | ||||
| 	//Prevent empty assignees | ||||
| 	if len(multipleAssignees) > 0 && multipleAssignees[0] != "" { | ||||
| 		requestAssignees = append(requestAssignees, multipleAssignees...) | ||||
| 	} | ||||
| 
 | ||||
| 	// Get the IDs of all assignees | ||||
| 	assigneeIDs, err = GetUserIDsByNames(multipleAssignees, false) | ||||
| 	assigneeIDs, err = GetUserIDsByNames(requestAssignees, false) | ||||
| 
 | ||||
| 	return | ||||
| } | ||||
|  | ||||
| @ -59,3 +59,24 @@ func TestUpdateAssignee(t *testing.T) { | ||||
| 	assert.NoError(t, err) | ||||
| 	assert.False(t, isAssigned) | ||||
| } | ||||
| 
 | ||||
| func TestMakeIDsFromAPIAssigneesToAdd(t *testing.T) { | ||||
| 	IDs, err := MakeIDsFromAPIAssigneesToAdd("", []string{""}) | ||||
| 	assert.NoError(t, err) | ||||
| 	assert.Equal(t, []int64{}, IDs) | ||||
| 
 | ||||
| 	IDs, err = MakeIDsFromAPIAssigneesToAdd("", []string{"none_existing_user"}) | ||||
| 	assert.Error(t, err) | ||||
| 
 | ||||
| 	IDs, err = MakeIDsFromAPIAssigneesToAdd("user1", []string{"user1"}) | ||||
| 	assert.NoError(t, err) | ||||
| 	assert.Equal(t, []int64{1}, IDs) | ||||
| 
 | ||||
| 	IDs, err = MakeIDsFromAPIAssigneesToAdd("user2", []string{""}) | ||||
| 	assert.NoError(t, err) | ||||
| 	assert.Equal(t, []int64{2}, IDs) | ||||
| 
 | ||||
| 	IDs, err = MakeIDsFromAPIAssigneesToAdd("", []string{"user1", "user2"}) | ||||
| 	assert.NoError(t, err) | ||||
| 	assert.Equal(t, []int64{1, 2}, IDs) | ||||
| } | ||||
|  | ||||
| @ -373,3 +373,16 @@ func TestCreateUser_Issue5882(t *testing.T) { | ||||
| 		assert.NoError(t, DeleteUser(v.user)) | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| func TestGetUserIDsByNames(t *testing.T) { | ||||
| 
 | ||||
| 	//ignore non existing | ||||
| 	IDs, err := GetUserIDsByNames([]string{"user1", "user2", "none_existing_user"}, true) | ||||
| 	assert.NoError(t, err) | ||||
| 	assert.Equal(t, []int64{1, 2}, IDs) | ||||
| 
 | ||||
| 	//ignore non existing | ||||
| 	IDs, err = GetUserIDsByNames([]string{"user1", "do_not_exist"}, false) | ||||
| 	assert.Error(t, err) | ||||
| 	assert.Equal(t, []int64(nil), IDs) | ||||
| } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 6543
						6543