mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Default datasource and event system test
This commit is contained in:
parent
f99e1ba441
commit
d562dcd90c
@ -64,12 +64,13 @@ func AddDataSource(c *middleware.Context) {
|
||||
|
||||
cmd.AccountId = c.Account.Id
|
||||
|
||||
err := bus.Dispatch(&cmd)
|
||||
if err != nil {
|
||||
if err := bus.Dispatch(&cmd); err != nil {
|
||||
c.JsonApiErr(500, "Failed to add datasource", err)
|
||||
return
|
||||
}
|
||||
|
||||
//bus.Publish(&m.DataSourceCreatedEvent{Account: c.GetAccountId(), })
|
||||
|
||||
c.JsonOK("Datasource added")
|
||||
}
|
||||
|
||||
|
@ -6,49 +6,31 @@ import (
|
||||
)
|
||||
|
||||
// Typed errors
|
||||
|
||||
var (
|
||||
ErrAccountNotFound = errors.New("Account not found")
|
||||
)
|
||||
|
||||
type Account struct {
|
||||
Id int64
|
||||
Login string `xorm:"UNIQUE NOT NULL"`
|
||||
Email string `xorm:"UNIQUE NOT NULL"`
|
||||
Name string
|
||||
FullName string
|
||||
Password string
|
||||
IsAdmin bool
|
||||
Rands string `xorm:"VARCHAR(10)"`
|
||||
Salt string `xorm:"VARCHAR(10)"`
|
||||
Company string
|
||||
NextDashboardId int
|
||||
UsingAccountId int64
|
||||
Id int64
|
||||
Login string `xorm:"UNIQUE NOT NULL"`
|
||||
Email string `xorm:"UNIQUE NOT NULL"`
|
||||
Name string
|
||||
FullName string
|
||||
Password string
|
||||
IsAdmin bool
|
||||
Salt string `xorm:"VARCHAR(10)"`
|
||||
Company string
|
||||
NextDashboardId int
|
||||
UsingAccountId int64
|
||||
DefaultDataSourceId int64
|
||||
|
||||
Created time.Time
|
||||
Updated time.Time
|
||||
}
|
||||
|
||||
// api projection
|
||||
type OtherAccountDTO struct {
|
||||
Id int64 `json:"id"`
|
||||
Email string `json:"email"`
|
||||
Role string `json:"role"`
|
||||
IsUsing bool `json:"isUsing"`
|
||||
}
|
||||
|
||||
// api projection model
|
||||
type CollaboratorDTO struct {
|
||||
AccountId int64 `json:"accountId"`
|
||||
Email string `json:"email"`
|
||||
Role string `json:"role"`
|
||||
}
|
||||
|
||||
// api view projection
|
||||
type AccountDTO struct {
|
||||
Email string `json:"email"`
|
||||
Name string `json:"name"`
|
||||
Collaborators []*CollaboratorDTO `json:"collaborators"`
|
||||
}
|
||||
// ---------------------
|
||||
// COMMANDS
|
||||
|
||||
type CreateAccountCommand struct {
|
||||
Email string `json:"email" binding:"required"`
|
||||
@ -66,13 +48,19 @@ type SetUsingAccountCommand struct {
|
||||
UsingAccountId int64
|
||||
}
|
||||
|
||||
// returns a view projection
|
||||
type SetDefaultDataSourceCommand struct {
|
||||
AccountId int64
|
||||
DataSourceId int64
|
||||
}
|
||||
|
||||
// ----------------------
|
||||
// QUERIES
|
||||
|
||||
type GetAccountInfoQuery struct {
|
||||
Id int64
|
||||
Result AccountDTO
|
||||
}
|
||||
|
||||
// returns a view projection
|
||||
type GetOtherAccountsQuery struct {
|
||||
AccountId int64
|
||||
Result []*OtherAccountDTO
|
||||
@ -87,3 +75,25 @@ type GetAccountByLoginQuery struct {
|
||||
Login string
|
||||
Result *Account
|
||||
}
|
||||
|
||||
// ------------------------
|
||||
// DTO & Projections
|
||||
|
||||
type OtherAccountDTO struct {
|
||||
Id int64 `json:"id"`
|
||||
Email string `json:"email"`
|
||||
Role string `json:"role"`
|
||||
IsUsing bool `json:"isUsing"`
|
||||
}
|
||||
|
||||
type CollaboratorDTO struct {
|
||||
AccountId int64 `json:"accountId"`
|
||||
Email string `json:"email"`
|
||||
Role string `json:"role"`
|
||||
}
|
||||
|
||||
type AccountDTO struct {
|
||||
Email string `json:"email"`
|
||||
Name string `json:"name"`
|
||||
Collaborators []*CollaboratorDTO `json:"collaborators"`
|
||||
}
|
||||
|
@ -25,55 +25,6 @@ type Dashboard struct {
|
||||
Data map[string]interface{}
|
||||
}
|
||||
|
||||
type SearchResult struct {
|
||||
Dashboards []*DashboardSearchHit `json:"dashboards"`
|
||||
Tags []*DashboardTagCloudItem `json:"tags"`
|
||||
TagsOnly bool `json:"tagsOnly"`
|
||||
}
|
||||
|
||||
type DashboardSearchHit struct {
|
||||
Title string `json:"title"`
|
||||
Slug string `json:"slug"`
|
||||
Tags []string `json:"tags"`
|
||||
}
|
||||
|
||||
type DashboardTagCloudItem struct {
|
||||
Term string `json:"term"`
|
||||
Count int `json:"count"`
|
||||
}
|
||||
|
||||
type SearchDashboardsQuery struct {
|
||||
Title string
|
||||
Tag string
|
||||
AccountId int64
|
||||
|
||||
Result []*DashboardSearchHit
|
||||
}
|
||||
|
||||
type GetDashboardTagsQuery struct {
|
||||
AccountId int64
|
||||
Result []*DashboardTagCloudItem
|
||||
}
|
||||
|
||||
type SaveDashboardCommand struct {
|
||||
Dashboard map[string]interface{} `json:"dashboard"`
|
||||
AccountId int64 `json:"-"`
|
||||
|
||||
Result *Dashboard
|
||||
}
|
||||
|
||||
type DeleteDashboardCommand struct {
|
||||
Slug string
|
||||
AccountId int64
|
||||
}
|
||||
|
||||
type GetDashboardQuery struct {
|
||||
Slug string
|
||||
AccountId int64
|
||||
|
||||
Result *Dashboard
|
||||
}
|
||||
|
||||
func NewDashboard(title string) *Dashboard {
|
||||
dash := &Dashboard{}
|
||||
dash.Data = make(map[string]interface{})
|
||||
@ -121,3 +72,30 @@ func (dash *Dashboard) UpdateSlug() {
|
||||
re2 := regexp.MustCompile("\\s")
|
||||
dash.Slug = re2.ReplaceAllString(re.ReplaceAllString(title, ""), "-")
|
||||
}
|
||||
|
||||
//
|
||||
// COMMANDS
|
||||
//
|
||||
|
||||
type SaveDashboardCommand struct {
|
||||
Dashboard map[string]interface{} `json:"dashboard"`
|
||||
AccountId int64 `json:"-"`
|
||||
|
||||
Result *Dashboard
|
||||
}
|
||||
|
||||
type DeleteDashboardCommand struct {
|
||||
Slug string
|
||||
AccountId int64
|
||||
}
|
||||
|
||||
//
|
||||
// QUERIES
|
||||
//
|
||||
|
||||
type GetDashboardQuery struct {
|
||||
Slug string
|
||||
AccountId int64
|
||||
|
||||
Result *Dashboard
|
||||
}
|
||||
|
@ -38,16 +38,8 @@ type DataSource struct {
|
||||
Updated time.Time
|
||||
}
|
||||
|
||||
type GetDataSourcesQuery struct {
|
||||
AccountId int64
|
||||
Result []*DataSource
|
||||
}
|
||||
|
||||
type GetDataSourceByIdQuery struct {
|
||||
Id int64
|
||||
AccountId int64
|
||||
Result DataSource
|
||||
}
|
||||
// ----------------------
|
||||
// COMMANDS
|
||||
|
||||
type AddDataSourceCommand struct {
|
||||
AccountId int64
|
||||
@ -58,6 +50,8 @@ type AddDataSourceCommand struct {
|
||||
Password string
|
||||
Database string
|
||||
User string
|
||||
|
||||
Result *DataSource
|
||||
}
|
||||
|
||||
type UpdateDataSourceCommand struct {
|
||||
@ -76,3 +70,22 @@ type DeleteDataSourceCommand struct {
|
||||
Id int64
|
||||
AccountId int64
|
||||
}
|
||||
|
||||
// ---------------------
|
||||
// QUERIES
|
||||
|
||||
type GetDataSourcesQuery struct {
|
||||
AccountId int64
|
||||
Result []*DataSource
|
||||
}
|
||||
|
||||
type GetDataSourceByIdQuery struct {
|
||||
Id int64
|
||||
AccountId int64
|
||||
Result DataSource
|
||||
}
|
||||
|
||||
// ---------------------
|
||||
// EVENTS
|
||||
type DataSourceCreatedEvent struct {
|
||||
}
|
||||
|
31
pkg/models/search.go
Normal file
31
pkg/models/search.go
Normal file
@ -0,0 +1,31 @@
|
||||
package models
|
||||
|
||||
type SearchResult struct {
|
||||
Dashboards []*DashboardSearchHit `json:"dashboards"`
|
||||
Tags []*DashboardTagCloudItem `json:"tags"`
|
||||
TagsOnly bool `json:"tagsOnly"`
|
||||
}
|
||||
|
||||
type DashboardSearchHit struct {
|
||||
Title string `json:"title"`
|
||||
Slug string `json:"slug"`
|
||||
Tags []string `json:"tags"`
|
||||
}
|
||||
|
||||
type DashboardTagCloudItem struct {
|
||||
Term string `json:"term"`
|
||||
Count int `json:"count"`
|
||||
}
|
||||
|
||||
type SearchDashboardsQuery struct {
|
||||
Title string
|
||||
Tag string
|
||||
AccountId int64
|
||||
|
||||
Result []*DashboardSearchHit
|
||||
}
|
||||
|
||||
type GetDashboardTagsQuery struct {
|
||||
AccountId int64
|
||||
Result []*DashboardTagCloudItem
|
||||
}
|
9
pkg/services/account/handlers.go
Normal file
9
pkg/services/account/handlers.go
Normal file
@ -0,0 +1,9 @@
|
||||
package account
|
||||
|
||||
import (
|
||||
"github.com/torkelo/grafana-pro/pkg/bus"
|
||||
)
|
||||
|
||||
func InitAccountService() {
|
||||
bus.ListenTo()
|
||||
}
|
@ -60,7 +60,8 @@ func AddDataSource(cmd *m.AddDataSourceCommand) error {
|
||||
Updated: time.Now(),
|
||||
}
|
||||
|
||||
_, err = sess.Insert(ds)
|
||||
_, err = sess.Insert(&ds)
|
||||
cmd.Result = &ds
|
||||
|
||||
return err
|
||||
})
|
||||
|
Loading…
Reference in New Issue
Block a user