3
0
mirror of https://github.com/grafana/grafana.git synced 2025-02-25 18:55:37 -06:00

Nested Folders: Refactor query for getting folders ()

Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
This commit is contained in:
Tania 2023-11-17 04:09:30 -08:00 committed by GitHub
parent 2976f0ebe6
commit a9208f623a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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