| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- package api
- import (
- "github.com/torkelo/grafana-pro/pkg/bus"
- "github.com/torkelo/grafana-pro/pkg/middleware"
- m "github.com/torkelo/grafana-pro/pkg/models"
- "github.com/torkelo/grafana-pro/pkg/utils"
- )
- func GetAccount(c *middleware.Context) {
- query := m.GetAccountInfoQuery{Id: c.UserAccount.Id}
- err := bus.Dispatch(&query)
- if err != nil {
- c.JsonApiErr(500, "Failed to fetch collaboratos", err)
- return
- }
- c.JSON(200, query.Result)
- }
- func AddCollaborator(c *middleware.Context) {
- var cmd m.AddCollaboratorCommand
- if !c.JsonBody(&cmd) {
- c.JsonApiErr(400, "Invalid request", nil)
- return
- }
- accountToAdd, err := m.GetAccountByLogin(cmd.Email)
- if err != nil {
- c.JsonApiErr(404, "Collaborator not found", nil)
- return
- }
- if accountToAdd.Id == c.UserAccount.Id {
- c.JsonApiErr(400, "Cannot add yourself as collaborator", nil)
- return
- }
- cmd.AccountId = accountToAdd.Id
- cmd.ForAccountId = c.UserAccount.Id
- cmd.Role = m.ROLE_READ_WRITE
- err = bus.Dispatch(&cmd)
- if err != nil {
- c.JsonApiErr(500, "Could not add collaborator", err)
- return
- }
- c.JsonOK("Collaborator added")
- }
- func GetOtherAccounts(c *middleware.Context) {
- query := m.GetOtherAccountsQuery{AccountId: c.UserAccount.Id}
- err := bus.Dispatch(&query)
- if err != nil {
- c.JSON(500, utils.DynMap{"message": err.Error()})
- return
- }
- result := append(query.Result, &m.OtherAccountDTO{
- Id: c.UserAccount.Id,
- Role: "owner",
- Email: c.UserAccount.Email,
- })
- for _, ac := range result {
- if ac.Id == c.UserAccount.UsingAccountId {
- ac.IsUsing = true
- break
- }
- }
- c.JSON(200, result)
- }
- func SetUsingAccount(c *middleware.Context) {
- // usingAccountId := c.ParamsInt64(":id")
- //
- // account := c.UserAccount
- // otherAccounts, err := m.GetOtherAccountsFor(c.UserAccount.Id)
- //
- // if err != nil {
- // c.JSON(500, utils.DynMap{"message": err.Error()})
- // return
- // }
- //
- // // validate that the account id in the list
- // valid := false
- // for _, other := range otherAccounts {
- // if other.Id == usingAccountId {
- // valid = true
- // }
- // }
- //
- // if !valid {
- // c.Status(401)
- // return
- // }
- //
- // account.UsingAccountId = usingAccountId
- // err = m.SaveAccount(account)
- // if err != nil {
- // c.JSON(500, utils.DynMap{"message": err.Error()})
- // return
- // }
- //
- // c.Status(204)
- }
|