190 lines
5.0 KiB
Go
190 lines
5.0 KiB
Go
package response
|
|
|
|
import (
|
|
"github.com/gin-gonic/gin"
|
|
"github.com/litmuschaos/litmus/chaoscenter/authentication/pkg/entities"
|
|
)
|
|
|
|
type Response struct {
|
|
Response string
|
|
}
|
|
|
|
type ApiTokenResponse struct {
|
|
UserID string
|
|
Name string
|
|
Token string
|
|
ExpiresAt int64
|
|
CreatedAt int64
|
|
}
|
|
|
|
type Role string
|
|
type UserResponse struct {
|
|
ID string `bson:"_id,omitempty" json:"userID"`
|
|
Username string `bson:"username,omitempty" json:"username"`
|
|
Password string `bson:"password,omitempty" json:"password,omitempty"`
|
|
Email string `bson:"email,omitempty" json:"email,omitempty"`
|
|
Name string `bson:"name,omitempty" json:"name,omitempty"`
|
|
Role Role `bson:"role,omitempty" json:"role"`
|
|
DeactivatedAt *int64 `bson:"deactivated_at,omitempty" json:"deactivatedAt,omitempty"`
|
|
}
|
|
|
|
type CapabilitiesResponse struct {
|
|
Dex struct {
|
|
Enabled bool `json:"enabled"`
|
|
} `json:"dex"`
|
|
}
|
|
|
|
type MessageResponse struct {
|
|
Message string `json:"message"`
|
|
}
|
|
|
|
type NewApiToken struct {
|
|
accessToken string
|
|
}
|
|
|
|
type LoginResponse struct {
|
|
accessToken string
|
|
projectID string
|
|
projectRole string
|
|
expiresIn string
|
|
}
|
|
|
|
// HTTPError example
|
|
|
|
func NewError(ctx *gin.Context, status int, err error) {
|
|
er := HTTPError{
|
|
Code: status,
|
|
Message: err.Error(),
|
|
}
|
|
ctx.JSON(status, er)
|
|
}
|
|
|
|
type HTTPError struct {
|
|
Code int `json:"code" example:"400"`
|
|
Message string `json:"message" example:"status bad request"`
|
|
}
|
|
|
|
type ErrServerError struct {
|
|
Code int `json:"code" example:"500"`
|
|
Message string `json:"message" example:"The authorization server encountered an unexpected condition that prevented it from fulfilling the request"`
|
|
}
|
|
type ErrInvalidCredentials struct {
|
|
Code int `json:"code" example:"401"`
|
|
Message string `json:"message" example:"Invalid Credentials"`
|
|
}
|
|
|
|
type ErrInvalidRequest struct {
|
|
Code int `json:"code" example:"400"`
|
|
Message string `json:"message" example:"The request is missing a required parameter, includes an invalid parameter value, includes a parameter more than once, or is otherwise malformed"`
|
|
}
|
|
|
|
type ErrOldPassword struct {
|
|
Code int `json:"code" example:"400"`
|
|
Message string `json:"message" example:"The old and new passwords can't be same"`
|
|
}
|
|
|
|
type ErrUnauthorized struct {
|
|
Code int `json:"code" example:"401"`
|
|
Message string `json:"message" example:"The user does not have requested authorization to access this resource"`
|
|
}
|
|
|
|
type ErrUserExists struct {
|
|
Code int `json:"code" example:"401"`
|
|
Message string `json:"message" example:"This username is already assigned to another user"`
|
|
}
|
|
|
|
type ErrUserNotFound struct {
|
|
Code int `json:"code" example:"400"`
|
|
Message string `json:"message" example:"user does not exist"`
|
|
}
|
|
|
|
type ErrUserDeactivated struct {
|
|
Code int `json:"code" example:"400"`
|
|
Message string `json:"message" example:"your account has been deactivated"`
|
|
}
|
|
|
|
type ErrStrictPasswordPolicyViolation struct {
|
|
Code int `json:"code" example:"401"`
|
|
Message string `json:"message" example:"Please ensure the password is atleast 8 characters and atmost 16 characters long and has atleast 1 digit, 1 lowercase alphabet, 1 uppercase alphabet and 1 special character"`
|
|
}
|
|
|
|
type ErrStrictUsernamePolicyViolation struct {
|
|
Code int `json:"code" example:"401"`
|
|
Message string `json:"message" example:"The username should be atleast 3 characters long and atmost 16 characters long."`
|
|
}
|
|
|
|
type ErrEmptyProjectName struct {
|
|
Code int `json:"code" example:"400"`
|
|
Message string `json:"message" example:"Project name can't be empty"`
|
|
}
|
|
|
|
type ErrInvalidRole struct {
|
|
Code int `json:"code" example:"400"`
|
|
Message string `json:"message" example:"Role is invalid"`
|
|
}
|
|
|
|
type ErrProjectNotFound struct {
|
|
Code int `json:"code" example:"400"`
|
|
Message string `json:"message" example:"This project does not exist"`
|
|
}
|
|
|
|
type ErrInvalidEmail struct {
|
|
Code int `json:"code" example:"400"`
|
|
Message string `json:"message" example:"Email address is invalid"`
|
|
}
|
|
|
|
type ErrProjectNotFoundstruct struct {
|
|
Code int `json:"code" example:"400"`
|
|
Message string `json:"message" example:"project does not exist"`
|
|
}
|
|
|
|
type ReadinessAPIStatus struct {
|
|
DataBase string `json:"database"`
|
|
Collections string `json:"collections"`
|
|
}
|
|
|
|
type APIStatus struct {
|
|
Status string `json:"status"`
|
|
}
|
|
|
|
type UserWithProject struct {
|
|
Data entities.UserWithProject `json:"data"`
|
|
}
|
|
|
|
type Project struct {
|
|
Data entities.Project `json:"data"`
|
|
}
|
|
|
|
type Projects struct {
|
|
Data []*entities.Project `json:"data"`
|
|
}
|
|
|
|
type ListProjectResponse struct {
|
|
Data entities.ListProjectResponse `json:"data"`
|
|
}
|
|
|
|
type ProjectStats struct {
|
|
Data []*entities.ProjectStats `json:"data"`
|
|
}
|
|
|
|
type Members struct {
|
|
Data []*entities.Member `json:"data"`
|
|
}
|
|
|
|
type Member struct {
|
|
Data entities.Member `json:"data"`
|
|
}
|
|
|
|
type ListInvitationResponse struct {
|
|
Data []entities.ListInvitationResponse `json:"data"`
|
|
}
|
|
|
|
type ProjectRole struct {
|
|
Role string `json:"role"`
|
|
}
|
|
|
|
type ProjectIDWithMessage struct {
|
|
Message string `json:"message"`
|
|
ProjectID string `json:"projectID"`
|
|
}
|