Save team members function
This commit is contained in:
		
							parent
							
								
									2028b24e3c
								
							
						
					
					
						commit
						a37a7ce315
					
				@ -7,7 +7,7 @@ import (
 | 
			
		||||
	"time"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func SaveOrgMembers(org uint64, members []uint64) {
 | 
			
		||||
func SaveOrgMembers(orgID uint64, members []uint64) {
 | 
			
		||||
	defer measure("SaveOrgMembers", time.Now())
 | 
			
		||||
	tx := db.MustBegin()
 | 
			
		||||
 | 
			
		||||
@ -20,11 +20,11 @@ func SaveOrgMembers(org uint64, members []uint64) {
 | 
			
		||||
        where
 | 
			
		||||
            org_id = %d and
 | 
			
		||||
            user_id not in (%s)
 | 
			
		||||
    `, org, strings.Join(ids, ", ")))
 | 
			
		||||
    `, orgID, strings.Join(ids, ", ")))
 | 
			
		||||
 | 
			
		||||
	var values = []string{}
 | 
			
		||||
	for _, id := range members {
 | 
			
		||||
		values = append(values, fmt.Sprintf("(%d, %d)", org, id))
 | 
			
		||||
		values = append(values, fmt.Sprintf("(%d, %d)", orgID, id))
 | 
			
		||||
	}
 | 
			
		||||
	tx.MustExec(`
 | 
			
		||||
        insert into org_members (org_id, user_id)
 | 
			
		||||
@ -36,3 +36,34 @@ func SaveOrgMembers(org uint64, members []uint64) {
 | 
			
		||||
		panic(err)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func SaveTeamMembers(orgID, teamID uint64, members []uint64) {
 | 
			
		||||
	defer measure("SaveTeamMembers", time.Now())
 | 
			
		||||
	tx := db.MustBegin()
 | 
			
		||||
 | 
			
		||||
	var ids = []string{}
 | 
			
		||||
	for _, id := range members {
 | 
			
		||||
		ids = append(ids, strconv.FormatUint(id, 10))
 | 
			
		||||
	}
 | 
			
		||||
	tx.MustExec(fmt.Sprintf(`
 | 
			
		||||
        delete from team_members
 | 
			
		||||
        where
 | 
			
		||||
            org_id = %d and
 | 
			
		||||
            team_id = %d and
 | 
			
		||||
            user_id not in (%s)
 | 
			
		||||
    `, orgID, teamID, strings.Join(ids, ", ")))
 | 
			
		||||
 | 
			
		||||
	var values = []string{}
 | 
			
		||||
	for _, id := range members {
 | 
			
		||||
		values = append(values, fmt.Sprintf("(%d, %d, %d)", orgID, teamID, id))
 | 
			
		||||
	}
 | 
			
		||||
	tx.MustExec(`
 | 
			
		||||
        insert into team_members (org_id, team_id, user_id)
 | 
			
		||||
        values ` + strings.Join(values, ", ") + `
 | 
			
		||||
        on duplicate key update org_id = org_id
 | 
			
		||||
    `)
 | 
			
		||||
 | 
			
		||||
	if err := tx.Commit(); err != nil {
 | 
			
		||||
		panic(err)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user