mirror of
https://github.com/grafana/grafana.git
synced 2024-11-26 19:00:54 -06:00
982939111b
* Rename Id to ID for annotation models * Add xorm tags * Rename Id to ID for API key models * Add xorm tags
102 lines
2.3 KiB
Go
102 lines
2.3 KiB
Go
package annotationstest
|
|
|
|
import (
|
|
"context"
|
|
"sync"
|
|
|
|
"github.com/grafana/grafana/pkg/services/annotations"
|
|
)
|
|
|
|
type fakeAnnotationsRepo struct {
|
|
mtx sync.Mutex
|
|
annotations map[int64]annotations.Item
|
|
}
|
|
|
|
func NewFakeAnnotationsRepo() *fakeAnnotationsRepo {
|
|
return &fakeAnnotationsRepo{
|
|
annotations: map[int64]annotations.Item{},
|
|
}
|
|
}
|
|
|
|
func (repo *fakeAnnotationsRepo) Delete(_ context.Context, params *annotations.DeleteParams) error {
|
|
repo.mtx.Lock()
|
|
defer repo.mtx.Unlock()
|
|
|
|
if params.ID != 0 {
|
|
delete(repo.annotations, params.ID)
|
|
} else {
|
|
for _, v := range repo.annotations {
|
|
if params.DashboardID == v.DashboardID && params.PanelID == v.PanelID {
|
|
delete(repo.annotations, v.ID)
|
|
}
|
|
}
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func (repo *fakeAnnotationsRepo) Save(ctx context.Context, item *annotations.Item) error {
|
|
repo.mtx.Lock()
|
|
defer repo.mtx.Unlock()
|
|
|
|
if item.ID == 0 {
|
|
item.ID = int64(len(repo.annotations) + 1)
|
|
}
|
|
repo.annotations[item.ID] = *item
|
|
|
|
return nil
|
|
}
|
|
|
|
func (repo *fakeAnnotationsRepo) SaveMany(ctx context.Context, items []annotations.Item) error {
|
|
repo.mtx.Lock()
|
|
defer repo.mtx.Unlock()
|
|
|
|
for _, i := range items {
|
|
if i.ID == 0 {
|
|
i.ID = int64(len(repo.annotations) + 1)
|
|
}
|
|
repo.annotations[i.ID] = i
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func (repo *fakeAnnotationsRepo) Update(_ context.Context, item *annotations.Item) error {
|
|
return nil
|
|
}
|
|
|
|
func (repo *fakeAnnotationsRepo) Find(_ context.Context, query *annotations.ItemQuery) ([]*annotations.ItemDTO, error) {
|
|
repo.mtx.Lock()
|
|
defer repo.mtx.Unlock()
|
|
|
|
if annotation, has := repo.annotations[query.AnnotationID]; has {
|
|
return []*annotations.ItemDTO{{ID: annotation.ID, DashboardID: annotation.DashboardID}}, nil
|
|
}
|
|
annotations := []*annotations.ItemDTO{{ID: 1, DashboardID: 0}}
|
|
return annotations, nil
|
|
}
|
|
|
|
func (repo *fakeAnnotationsRepo) FindTags(_ context.Context, query *annotations.TagsQuery) (annotations.FindTagsResult, error) {
|
|
result := annotations.FindTagsResult{
|
|
Tags: []*annotations.TagsDTO{},
|
|
}
|
|
return result, nil
|
|
}
|
|
|
|
func (repo *fakeAnnotationsRepo) Len() int {
|
|
repo.mtx.Lock()
|
|
defer repo.mtx.Unlock()
|
|
|
|
return len(repo.annotations)
|
|
}
|
|
|
|
func (repo *fakeAnnotationsRepo) Items() map[int64]annotations.Item {
|
|
repo.mtx.Lock()
|
|
defer repo.mtx.Unlock()
|
|
ret := make(map[int64]annotations.Item)
|
|
for k, v := range repo.annotations {
|
|
ret[k] = v
|
|
}
|
|
return ret
|
|
}
|