| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- 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"
- )
- func GetAccount(c *middleware.Context) {
- query := m.GetAccountInfoQuery{Id: c.AccountId}
- err := bus.Dispatch(&query)
- if err != nil {
- c.JsonApiErr(500, "Failed to fetch collaboratos", err)
- return
- }
- c.JSON(200, query.Result)
- }
- func UpdateAccount(c *middleware.Context, cmd m.UpdateAccountCommand) {
- cmd.AccountId = c.AccountId
- if err := bus.Dispatch(&cmd); err != nil {
- c.JsonApiErr(400, "Failed to update account", nil)
- return
- }
- c.JsonOK("Account updated")
- }
- func GetOtherAccounts(c *middleware.Context) {
- query := m.GetOtherAccountsQuery{AccountId: c.AccountId}
- err := bus.Dispatch(&query)
- if err != nil {
- c.JsonApiErr(500, "Failed to get other accounts", err)
- return
- }
- result := append(query.Result, &m.OtherAccountDTO{
- AccountId: c.AccountId,
- Role: m.ROLE_OWNER,
- Email: c.UserEmail,
- })
- for _, ac := range result {
- if ac.AccountId == c.UsingAccountId {
- ac.IsUsing = true
- break
- }
- }
- c.JSON(200, result)
- }
- func validateUsingAccount(accountId int64, otherId int64) bool {
- if accountId == otherId {
- return true
- }
- query := m.GetOtherAccountsQuery{AccountId: accountId}
- err := bus.Dispatch(&query)
- if err != nil {
- return false
- }
- // validate that the account id in the list
- valid := false
- for _, other := range query.Result {
- if other.AccountId == otherId {
- valid = true
- }
- }
- return valid
- }
- func SetUsingAccount(c *middleware.Context) {
- usingAccountId := c.ParamsInt64(":id")
- if !validateUsingAccount(c.AccountId, usingAccountId) {
- c.JsonApiErr(401, "Not a valid account", nil)
- return
- }
- cmd := m.SetUsingAccountCommand{
- AccountId: c.AccountId,
- UsingAccountId: usingAccountId,
- }
- err := bus.Dispatch(&cmd)
- if err != nil {
- c.JsonApiErr(500, "Failed to update account", err)
- return
- }
- c.JsonOK("Active account changed")
- }
|