| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- package api
- import (
- "github.com/torkelo/grafana-pro/pkg/middleware"
- "github.com/torkelo/grafana-pro/pkg/models"
- "github.com/torkelo/grafana-pro/pkg/routes/dtos"
- "github.com/torkelo/grafana-pro/pkg/utils"
- )
- func GetAccount(c *middleware.Context) {
- model := dtos.AccountInfo{
- Name: c.UserAccount.Name,
- Email: c.UserAccount.Email,
- }
- collaborators, err := models.GetCollaboratorsForAccount(c.UserAccount.Id)
- if err != nil {
- c.JsonApiErr(500, "Failed to fetch collaboratos", err)
- return
- }
- for _, collaborator := range collaborators {
- model.Collaborators = append(model.Collaborators, &dtos.Collaborator{
- AccountId: collaborator.AccountId,
- Role: collaborator.Role,
- Email: collaborator.Email,
- })
- }
- c.JSON(200, model)
- }
- func AddCollaborator(c *middleware.Context) {
- var model dtos.AddCollaboratorCommand
- if !c.JsonBody(&model) {
- c.JsonApiErr(400, "Invalid request", nil)
- return
- }
- accountToAdd, err := models.GetAccountByLogin(model.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
- }
- var collaborator = models.NewCollaborator(accountToAdd.Id, c.UserAccount.Id, models.ROLE_READ_WRITE)
- err = models.AddCollaborator(collaborator)
- if err != nil {
- c.JsonApiErr(500, "Could not add collaborator", err)
- return
- }
- c.Status(204)
- }
- func GetOtherAccounts(c *middleware.Context) {
- otherAccounts, err := models.GetOtherAccountsFor(c.UserAccount.Id)
- if err != nil {
- c.JSON(500, utils.DynMap{"message": err.Error()})
- return
- }
- var result []*dtos.OtherAccount
- result = append(result, &dtos.OtherAccount{
- Id: c.UserAccount.Id,
- Role: "owner",
- IsUsing: c.UserAccount.Id == c.UserAccount.UsingAccountId,
- Name: c.UserAccount.Email,
- })
- for _, other := range otherAccounts {
- result = append(result, &dtos.OtherAccount{
- Id: other.Id,
- Role: other.Role,
- Name: other.Email,
- IsUsing: other.Id == c.UserAccount.UsingAccountId,
- })
- }
- c.JSON(200, result)
- }
- // func SetUsingAccount(c *middleware.Context) {
- // idString := c.Params.ByName("id")
- // id, _ := strconv.Atoi(idString)
- //
- // account := auth.userAccount
- // otherAccount, err := self.store.GetAccount(id)
- // if err != nil {
- // c.JSON(500, gin.H{"message": err.Error()})
- // return
- // }
- //
- // if otherAccount.Id != account.Id && !otherAccount.HasCollaborator(account.Id) {
- // c.Abort(401)
- // return
- // }
- //
- // account.UsingAccountId = otherAccount.Id
- // err = self.store.UpdateAccount(account)
- // if err != nil {
- // c.JSON(500, gin.H{"message": err.Error()})
- // return
- // }
- //
- // c.Abort(204)
- // }
|