model

package
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 15, 2023 License: MIT Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AgentRequest

type AgentRequest struct {
	WorkspaceID     string `json:"workspaceID"`
	WorkspaceOwner  string `json:"workspaceOwner"`
	QuantumlabToken string `json:"quantumlabToken"`
	WorkspaceStatus string `json:"workspaceStatus"`
	Msg             string `json:"msg"`
}

type AgentRequestUsecase

type AgentRequestUsecase interface {
	GetQuantumlabTokenByUUID(uuid string) (string, error)
}

type CreateTableRequest

type CreateTableRequest struct {
	TableName      string
	ColumnCount    int
	RowCount       int
	ColumnName     []string
	ColumnDatatype map[string]string
	ColumnData     map[string][]interface{}
}

type CreateWorkspaceRequest

type CreateWorkspaceRequest struct {
	Workspace Workspace `json:"workspace"`
	UserID    uint      `json:"userId"`
}

type ErrorResponse

type ErrorResponse struct {
	Message string `json:"message"`
}

type InitRequest

type InitRequest struct {
	Email    string `json:"email" binding:"required,email"`
	Password string `json:"password" binding:"required"`
}

type JobMonitorRepository

type JobMonitorRepository interface {
	GetUserIBMToken(uid uint) (Token, error)
}

type JobMonitorUsecase

type JobMonitorUsecase interface {
	GetUserIBMToken(userID uint) (Token, error)
}

type JwtCustomClaims

type JwtCustomClaims struct {
	Email       string `json:"email"`
	UserID      uint   `json:"userID"`
	AccessLevel uint   `json:"accessLevel"`
	RoleIDs     []uint `json:"roleIDs"`
	jwt.RegisteredClaims
}

type JwtCustomRefreshClaims

type JwtCustomRefreshClaims struct {
	Email       string `json:"email"`
	UserID      uint   `json:"userID"`
	AccessLevel uint   `json:"accessLevel"`
	RoleIDs     []uint `json:"roleIDs"`
	jwt.RegisteredClaims
}

type LoginRequest

type LoginRequest struct {
	Email    string `form:"email" binding:"required,email"`
	Password string `form:"password" binding:"required"`
}

type LoginResponse

type LoginResponse struct {
	Status string `json:"status"`
}

type LoginUsecase

type LoginUsecase interface {
	FindUser(email string) (*User, error)
	GetCurrentUser(id uint) (*User, error)
	CreateAccessToken(user *User, secret string, expiry int) (accessToken string, err error)
	CreateRefreshToken(user *User, secret string, expiry int) (refreshToken string, err error)
	GetRoleIDs(uid uint) ([]uint, error)
}

type NewUserInitUsecase

type NewUserInitUsecase interface {
	CreateRootAdmin(request *InitRequest) error
	GetUserCount() (int64, error)
}

type RefreshTokenRequest

type RefreshTokenRequest struct {
	RefreshToken string `form:"refreshToken" binding:"required"`
}

type RefreshTokenResponse

type RefreshTokenResponse struct {
	AccessToken  string `json:"accessToken"`
	RefreshToken string `json:"refreshToken"`
}

type RefreshTokenUsecase

type RefreshTokenUsecase interface {
	FindUser(id string) (*User, error)
	CreateAccessToken(user *User, secret string, expiry int) (accessToken string, err error)
	CreateRefreshToken(user *User, secret string, expiry int) (refreshToken string, err error)
	ExtractClaimsFromToken(requestToken string, secret string) (*JwtCustomClaims, error)
}

type ResultRepository

type ResultRepository interface {
	Create(table *CreateTableRequest, token string) error
	CheckToken(token string) (bool, error)
}

type ResultUsecase

type ResultUsecase interface {
	Create(table *CreateTableRequest, token string) error
	CheckToken(token string) (bool, error)
}

type Role

type Role struct {
	// declare ID as pointer to let gorm preload the record with id = 0
	// GORM SUCKS!!
	ID   *uint  `json:"id"`
	Name string `json:"name"`
}

type RoleRepository

type RoleRepository interface {
	GetAll() ([]Role, error)
	GetByName(name string) (*Role, error)
	InitRoles() error
}

type SetAccountStatusRequest

type SetAccountStatusRequest struct {
	AccountStatus bool `json:"accountStatus"`
}

type SignupRequest

type SignupRequest struct {
	Email    string `json:"email"`
	Password string `json:"password"`
}

type SignupUsecase

type SignupUsecase interface {
	Create(user *User) error
}

type SuccessResponse

type SuccessResponse struct {
	Message string `json:"message"`
}

type Template

type Template struct {
	ID          uint   `json:"id"`
	Parameters  string `json:"parameters"`
	AccessLevel uint   `json:"accessLevel"`
	Filename    string `json:"filename"`
	Icon        string `json:"icon"` // A Base64-encoded string
	TfFile      []byte `gorm:"type:bytea" json:"tffile"`
}

type TemplateRepository

type TemplateRepository interface {
	Create(template *Template) error
	GetAll(accessLevel string) ([]Template, error)
	GetByID(id uint) (Template, error)
	Update(template *Template, id uint) error
	Delete(id uint) error
	UploadFile(id uint, file []byte) error
}

type TemplateUsecase

type TemplateUsecase interface {
	Create(template *Template) error
	GetAll(accessLevel string) ([]Template, error)
	GetByID(id uint) (Template, error)
	Update(template *Template, id uint) error
	Delete(id uint) error
	UploadFile(id uint, file []byte) error
}

type Token

type Token struct {
	ID     uint   `json:"id"`
	UserID uint   `json:"userId"`
	Name   string `json:"name"`
	Value  string `json:"value"`
}

type TokenDeleteRequest

type TokenDeleteRequest struct {
	Name string `json:"name"`
}

type TokenRequest

type TokenRequest struct {
	Name  string `json:"name"`
	Value string `json:"value"`
}

type Toolset

type Toolset struct {
	ID         uint   `json:"id"`
	Name       string `json:"name"`
	Icon       string `json:"icon"`
	Type       string `json:"type"`
	AccessType string `json:"accessType"`
	AccessID   string `json:"accessId"`
}

type User

type User struct {
	ID              uint        `json:"id"`
	UUID            string      `json:"uuid"`
	Email           string      `json:"email"`
	Password        string      `json:"password"`
	LastName        string      `json:"lastName"`
	FirstName       string      `json:"firstName"`
	AccountStatus   bool        `json:"accountStatus"`
	AccessLevel     uint        `json:"accessLevel"`
	QuantumlabToken string      `json:"quantumlabToken"`
	Avatar          string      `json:"avatar"`
	Roles           []Role      `json:"roles" gorm:"many2many:user_roles;"`
	Workspaces      []Workspace `json:"workspaces" gorm:"many2many:user_workspaces;"`
}

type UserAdminUsecase

type UserAdminUsecase interface {
	InviteUsers(
		emailList []string,
		host string,
		port int,
		from string,
		secret string,
	) error
	GetRoleIDs(userID uint) ([]uint, error)
	GetUserList() ([]UserListItem, error)
	GetUserDetail(id uint) (*User, error)
	GetAllRoles() ([]Role, error)
	UpdateUser(user *User) error
	SetAccountStatus(id uint, accountStatus bool) error
}

type UserListItem

type UserListItem struct {
	ID            uint   `json:"id"`
	UUID          string `json:"uuid"`
	Email         string `json:"email"`
	LastName      string `json:"lastName"`
	FirstName     string `json:"firstName"`
	AccountStatus bool   `json:"accountStatus"`
	Roles         []Role `json:"roles" gorm:"many2many:user_roles;joinForeignKey:user_id"`
	AccessLevel   uint   `json:"accessLevel"`
}

for the list item that contains less user information

type UserRepository

type UserRepository interface {
	Create(user *User) error
	CreateBatch(users []User) error
	GetByEmail(email string) (*User, error)
	GetQuantumlabTokenByUUID(uuid string) (string, error)
	GetRoleIDs(uid uint) ([]uint, error)
	GetRegisteredEmails(emailList []string) ([]string, error)
	GetByID(id uint) (*User, error)
	GetAll() ([]UserListItem, error)
	Update(user *User) error
	UpdateSelf(user *User) error
	GetCount() (int64, error)
	SetAccountStatus(id uint, accountStatus bool) error
}

type UserTokenRepository

type UserTokenRepository interface {
	GetUserTokens(uid uint) ([]Token, error)
	AddToken(request Token) error
	CheckRequest(name string, uid uint) []Token
	EditToken(request TokenRequest, uid uint) error
	RemoveToken(tokenID uint) error
}

type UserTokenUsecase

type UserTokenUsecase interface {
	GetUserTokens(userID uint) ([]Token, error)
	AddToken(request TokenRequest, userID uint) error
	CheckRequest(name string, uid uint) []Token
	EditToken(request TokenRequest, uid uint) error
	RemoveToken(tokenID uint) error
}

type UserUsecase

type UserUsecase interface {
	UpdateUser(user *User) error
}

type UserWorkspace

type UserWorkspace struct {
	UserID      uint `json:"userId"`
	WorkspaceID uint `json:"workspaceId"`
}

type Workspace

type Workspace struct {
	ID           uint      `json:"id"`
	UUID         string    `json:"uuid"`
	Name         string    `json:"name"`
	Type         string    `json:"type"`
	State        string    `json:"state"`
	Description  string    `json:"description"`
	Tags         string    `json:"tags"`
	Parameters   string    `json:"parameters"`
	CreatedAt    time.Time `json:"createdAt"`
	UpdatedAt    time.Time `json:"updatedAt"`
	LastAccessed time.Time `json:"lastAccessed"`
	TemplateID   uint      `json:"templateId"`
	Template     Template  `json:"template"`
	Users        []User    `json:"users" gorm:"many2many:user_workspaces;"`
}

type WorkspaceRepository

type WorkspaceRepository interface {
	Create(workspace *Workspace, userID uint) error
	GetOwnerIDs(id uint) ([]uint, error)
	GetAllByUser(userID uint) ([]Workspace, error)
	GetByID(id uint) (*Workspace, error)
	Update(workspace *Workspace) error
	Delete(id uint) error
	GetWorkspaceToolset(id uint) ([]Toolset, error)
}

type WorkspaceUsecase

type WorkspaceUsecase interface {
	CreateWorkspace(workspace *Workspace, userID uint) error
	CheckWorkspaceAccess(workspaceID uint, userID uint) (bool, error)
	GetWorkspacesByUser(userID uint) ([]Workspace, error)
	GetWorkspace(id uint) (*Workspace, error)
	UpdateWorkspace(workspace *Workspace) error
	DeleteWorkspace(id uint) error
	GetWorkspaceToolset(id uint) ([]Toolset, error)
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL