Update data sources now work, #8

This commit is contained in:
Torkel Ödegaard
2014-12-17 17:32:22 +01:00
parent adf4e72cf8
commit ce947d4793
7 changed files with 131 additions and 19 deletions
+3 -1
View File
@@ -28,7 +28,9 @@ func Register(m *macaron.Macaron) {
// datasources
m.Get("/admin/datasources/", auth, Index)
m.Get("/api/admin/datasources/list", auth, GetDataSources)
m.Post("/api/admin/datasources/add", auth, AddDataSource)
m.Put("/api/admin/datasources", auth, AddDataSource)
m.Post("/api/admin/datasources", auth, UpdateDataSource)
m.Delete("/api/admin/datasources/:id", auth, DeleteDataSource)
// user register
m.Get("/register/*_", Index)
+42 -4
View File
@@ -16,9 +16,9 @@ func GetDataSources(c *middleware.Context) {
return
}
result := make([]*dtos.DataSource, len(query.Resp))
for _, ds := range query.Resp {
result = append(result, &dtos.DataSource{
result := make([]*dtos.DataSource, len(query.Result))
for i, ds := range query.Result {
result[i] = &dtos.DataSource{
Id: ds.Id,
AccountId: ds.AccountId,
Name: ds.Name,
@@ -28,12 +28,31 @@ func GetDataSources(c *middleware.Context) {
Password: ds.Password,
User: ds.User,
BasicAuth: ds.BasicAuth,
})
}
}
c.JSON(200, result)
}
func DeleteDataSource(c *middleware.Context) {
id := c.ParamsInt64(":id")
if id <= 0 {
c.JsonApiErr(400, "Missing valid datasource id", nil)
return
}
cmd := &m.DeleteDataSourceCommand{Id: id, AccountId: c.UserAccount.Id}
err := bus.Dispatch(cmd)
if err != nil {
c.JsonApiErr(500, "Failed to delete datasource", err)
return
}
c.JsonOK("Data source deleted")
}
func AddDataSource(c *middleware.Context) {
cmd := m.AddDataSourceCommand{}
@@ -52,3 +71,22 @@ func AddDataSource(c *middleware.Context) {
c.JsonOK("Datasource added")
}
func UpdateDataSource(c *middleware.Context) {
cmd := m.UpdateDataSourceCommand{}
if !c.JsonBody(&cmd) {
c.JsonApiErr(400, "Validation failed", nil)
return
}
cmd.AccountId = c.Account.Id
err := bus.Dispatch(&cmd)
if err != nil {
c.JsonApiErr(500, "Failed to update datasource", err)
return
}
c.JsonOK("Datasource updated")
}
+2 -3
View File
@@ -39,9 +39,8 @@ type Collaborator struct {
}
type DataSource struct {
Id int64 `json:"id"`
AccountId int64 `json:"accountId"`
Id int64 `json:"id"`
AccountId int64 `json:"accountId"`
Name string `json:"name"`
Type models.DsType `json:"type"`
Access models.DsAccess `json:"access"`