Browse Source

more account stuff

Torkel Ödegaard 11 years ago
parent
commit
015c929bd7
4 changed files with 39 additions and 4 deletions
  1. 18 2
      pkg/api/api_account.go
  2. 18 0
      pkg/api/api_dtos.go
  3. 0 1
      pkg/api/api_register.go
  4. 3 1
      pkg/models/account.go

+ 18 - 2
pkg/api/api_account.go

@@ -5,11 +5,27 @@ import "github.com/gin-gonic/gin"
 func init() {
 	addRoutes(func(self *HttpServer) {
 		self.addRoute("POST", "/api/account/collaborators/add", self.addCollaborator)
+		self.addRoute("GET", "/api/account/", self.getAccount)
 	})
 }
 
-type addCollaboratorDto struct {
-	Email string `json:"email" binding:"required"`
+func (self *HttpServer) getAccount(c *gin.Context, auth *authContext) {
+	var account = auth.userAccount
+
+	model := accountInfoDto{
+		Login:       account.Login,
+		Email:       account.Email,
+		AccountName: account.AccountName,
+	}
+
+	for _, collaborator := range account.Collaborators {
+		model.Collaborators = append(model.Collaborators, &collaboratorInfoDto{
+			AccountId: collaborator.AccountId,
+			Role:      collaborator.Role,
+		})
+	}
+
+	c.JSON(200, model)
 }
 
 func (self *HttpServer) addCollaborator(c *gin.Context, auth *authContext) {

+ 18 - 0
pkg/api/api_dtos.go

@@ -0,0 +1,18 @@
+package api
+
+type accountInfoDto struct {
+	Login         string                 `json:"login"`
+	Email         string                 `json:"email"`
+	AccountName   string                 `json:"accountName"`
+	Collaborators []*collaboratorInfoDto `json:"collaborators"`
+}
+
+type collaboratorInfoDto struct {
+	AccountId int    `json:"accountId"`
+	Email     string `json:"email"`
+	Role      string `json:"role"`
+}
+
+type addCollaboratorDto struct {
+	Email string `json:"email" binding:"required"`
+}

+ 0 - 1
pkg/api/api_register.go

@@ -28,7 +28,6 @@ func (self *HttpServer) registerUserPost(c *gin.Context) {
 	}
 
 	account := models.Account{
-		UserName: registerModel.Email,
 		Login:    registerModel.Email,
 		Email:    registerModel.Email,
 		Password: registerModel.Password,

+ 3 - 1
pkg/models/account.go

@@ -14,15 +14,17 @@ type CollaboratorLink struct {
 
 type Account struct {
 	Id              int `gorethink:"id"`
-	UserName        string
+	Version         int
 	Login           string
 	Email           string
+	AccountName     string
 	Password        string
 	NextDashboardId int
 	UsingAccountId  int
 	Collaborators   []CollaboratorLink
 	CreatedOn       time.Time
 	ModifiedOn      time.Time
+	LastLoginOn     time.Time
 }
 
 func (account *Account) AddCollaborator(accountId int) error {