mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Nested Folders: Refactor query for getting folders (#78286)
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
This commit is contained in:
parent
2976f0ebe6
commit
a9208f623a
@ -100,23 +100,21 @@ func (d *DashboardFolderStoreImpl) GetFolders(ctx context.Context, orgID int64,
|
||||
b := strings.Builder{}
|
||||
args := make([]any, 0, len(uids)+1)
|
||||
|
||||
b.WriteString("SELECT * FROM dashboard WHERE org_id=? ")
|
||||
b.WriteString("SELECT * FROM dashboard WHERE org_id=?")
|
||||
args = append(args, orgID)
|
||||
for i, uid := range uids {
|
||||
if i == 0 {
|
||||
b.WriteString(" AND (")
|
||||
}
|
||||
|
||||
if i > 0 {
|
||||
b.WriteString(" OR ")
|
||||
}
|
||||
b.WriteString(" uid=? ")
|
||||
args = append(args, uid)
|
||||
|
||||
if i == len(uids)-1 {
|
||||
b.WriteString(")")
|
||||
}
|
||||
if len(uids) == 1 {
|
||||
b.WriteString(" AND uid=?")
|
||||
}
|
||||
|
||||
if len(uids) > 1 {
|
||||
b.WriteString(" AND uid IN (" + strings.Repeat("?, ", len(uids)-1) + "?)")
|
||||
}
|
||||
|
||||
for _, uid := range uids {
|
||||
args = append(args, uid)
|
||||
}
|
||||
|
||||
return sess.SQL(b.String(), args...).Find(&folders)
|
||||
}); err != nil {
|
||||
return nil, err
|
||||
|
Loading…
Reference in New Issue
Block a user