litmus/litmus-portal/authentication/controller/user/user.go

80 lines
1.6 KiB
Go

package user
import (
"net/http"
"github.com/gin-gonic/gin"
log "github.com/golang/glog"
"github.com/litmuschaos/litmus/litmus-portal/authentication/controller"
"github.com/litmuschaos/litmus/litmus-portal/authentication/pkg/models"
)
// User is a type to be accepted as input
type User models.UserCredentials
// New creates a new User
func New() *User {
return &User{}
}
// Login lets a user login into the litmus-portal
func (user *User) Login(c *gin.Context) {
err := c.BindJSON(user)
if err != nil {
log.Error(err)
c.JSON(http.StatusNotAcceptable, gin.H{
"message": "Unable to parse JSON",
})
return
}
userModel := models.UserCredentials(*user)
controller.Server.HandleAuthenticateRequest(c, &userModel)
return
}
// Logout lets a user login into the litmus-portal
func (user *User) Logout(c *gin.Context) {
controller.Server.LogoutRequest(c)
return
}
// UpdateUserDetails updates a user details
func (user *User) UpdateUserDetails(c *gin.Context) {
err := c.BindJSON(user)
if err != nil {
log.Error(err)
c.JSON(http.StatusNotAcceptable, gin.H{
"message": "Unable to parse JSON",
})
return
}
userModel := models.UserCredentials(*user)
controller.Server.UpdateUserDetailsRequest(c, &userModel)
return
}
//Create ...
func (user *User) Create(c *gin.Context) {
err := c.BindJSON(user)
if err != nil {
log.Error(err)
c.JSON(http.StatusNotAcceptable, gin.H{
"message": "Unable to parse JSON",
})
return
}
userModel := models.UserCredentials(*user)
controller.Server.CreateRequest(c, &userModel)
return
}
//GetAllUsers ...
func (user *User) GetAllUsers(c *gin.Context) {
controller.Server.GetUsersRequest(c)
return
}