controller

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: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AgentRequestController

type AgentRequestController struct {
	AgentRequestUsecase model.AgentRequestUsecase
	WorkspaceMonitor    map[string]string
}

func (*AgentRequestController) UpdateWorkspaceStatus

func (arc *AgentRequestController) UpdateWorkspaceStatus(c *gin.Context)

UpdateWorkspaceStatus @Summary Process the heartbeat message sent by a QuantumLab Agent @Description Update the workspace status according to the heartbeat message sent by a QuantumLab Agent. @Tags agent @Accept json @Produce json @Param request body model.AgentRequest true "agent request" @Success 200 {object} model.SuccessResponse @Failure 400 {object} model.ErrorResponse "Bad Request" @Router /agent [post]

type JobMonitorController

type JobMonitorController struct {
	JobMonitorUsecase model.JobMonitorUsecase
	Env               *bootstrap.Env
}

func (*JobMonitorController) GetJobList

func (jmc *JobMonitorController) GetJobList(c *gin.Context)

GetJobList @Summary Gets job list from IBMQ based on the user's saved token @Description Gets job list from IBMQ based on the logged-in user's saved token @Tags token management @Accept json @Produce json @Success 200 {object} [] @Failure 400 {object} model.ErrorResponse "Bad Request" @Failure 500 {object} model.ErrorResponse "Error: Failed to retrieve job lists" @Router /api/job/list [get]

type LoginController

type LoginController struct {
	LoginUsecase model.LoginUsecase
	Env          *bootstrap.Env
}

func (*LoginController) CheckUser

func (lc *LoginController) CheckUser(c *gin.Context)

CheckUser @Summary Gets user details based on the current token @Description Authenticates a token and retrieves associated user information @Tags auth @Accept json @Produce json @Success 200 {object} model.User @Failure 401 {object} model.ErrorResponse "Token is not authorized!" @Failure 401 {object} model.ErrorResponse "You are not authorized, there is no ID!" @Failure 401 {object} model.ErrorResponse "You are not authorized, could not find user from token!" @Failure 401 {object} model.ErrorResponse "You are not authorized, There is no token!" @Router /auth/currUser [get]

func (*LoginController) Login

func (lc *LoginController) Login(c *gin.Context)

Login @Summary Log a user in @Description Log a user in if the provided email and password are correct. @Tags auth @Accept json @Produce json @Param credential body model.LoginRequest true "login credential" @Success 200 {object} model.LoginResponse @Failure 400 {object} model.ErrorResponse "Bad Request (Invalid Email)" @Failure 401 {object} model.ErrorResponse "Incorrect Email or Password" @Failure 500 {object} model.ErrorResponse "Error Creating Access/Refresh Token" @Router /auth/login [post]

func (*LoginController) Logout

func (lc *LoginController) Logout(c *gin.Context)

Logout @Summary Removes the JWT token from cookies @Description Removes both access and refresh JWT Tokens from cookies @Tags auth @Accept json @Produce json @Success 200 {object} model.LoginResponse @Router /auth/logout [post]

type NewUserInitializerController

type NewUserInitializerController struct {
	UserInitUsecase model.NewUserInitUsecase
}

func (*NewUserInitializerController) CheckHasUser

func (uac *NewUserInitializerController) CheckHasUser(c *gin.Context)

@Summary Get if has user @Description Check if QL has users already. @Tags init @Accept json @Produce json @Success 200 {object} object{hasUser=bool} @Router /init [get]

func (*NewUserInitializerController) InitRootAdmin

func (uac *NewUserInitializerController) InitRootAdmin(c *gin.Context)

@Summary Initialize root admin @Description Create the first user as a Root Administrator. @Tags init @Accept json @Produce json @Success 201 {object} model.SuccessResponse Failure 400 {object} model.ErrorResponse "Bad Request" Failure 403 {object} model.ErrorResponse "Forbidden" @Router /init [post]

type OAuthController

type OAuthController struct {
	Server       *server.Server
	Env          *bootstrap.Env
	LoginUsecase model.LoginUsecase
}

func (*OAuthController) AuthorizeHandler

func (oac *OAuthController) AuthorizeHandler(w http.ResponseWriter, r *http.Request)

func (*OAuthController) GetUserDetails

func (oac *OAuthController) GetUserDetails(c *gin.Context)

func (*OAuthController) TokenHandler

func (oac *OAuthController) TokenHandler(w http.ResponseWriter, r *http.Request)

type RedirectController

type RedirectController struct {
	Env *bootstrap.Env
}

func (*RedirectController) RedirectSuperset

func (rc *RedirectController) RedirectSuperset(c *gin.Context)

type ResultController

type ResultController struct {
	ResultUsecase model.ResultUsecase
}

func (*ResultController) Create

func (controller *ResultController) Create(c *gin.Context)

type SettingController

type SettingController struct {
	UserUsecase model.UserUsecase
	Env         *bootstrap.Env
}

func (*SettingController) UpdateUser

func (uc *SettingController) UpdateUser(c *gin.Context)

@Summary Update user setting @Description Update user in setting. @Tags settings @Accept json @Produce json @Param workspace body model.User true "Updated user" @Success 200 {object} model.SuccessResponse @Failure 400 {object} model.ErrorResponse "Request Parse Error" @Failure 500 {object} model.ErrorResponse "Unexpected System Error" @Router /settings/users [put]

type TemplateController

type TemplateController struct {
	TemplateUsecase model.TemplateUsecase
	Env             *bootstrap.Env
}

func (*TemplateController) DeleteTemplate

func (tc *TemplateController) DeleteTemplate(c *gin.Context)

DeleteTemplate @Summary Delete template @Description Delete a workspace template. @Tags templates @Produce json @Param id path uint true "Template ID" @Success 200 {object} model.SuccessResponse @Failure 400 {object} model.ErrorResponse "Request Parse Error" @Failure 500 {object} model.ErrorResponse "Unexpected System Error" @Router /templates/{id} [delete]

func (*TemplateController) GetAllTemplates

func (tc *TemplateController) GetAllTemplates(c *gin.Context)

GetAllTemplates @Summary Get all authorised templates @Description Get all authorised templates. @Tags templates @Produce json @Success 200 {object} []model.Template @Failure 500 {object} model.ErrorResponse "Unexpected System Error" @Router /templates [get]

func (*TemplateController) GetPresetIconList

func (tc *TemplateController) GetPresetIconList(c *gin.Context)

GetPresetIconList @Summary Get template @Description Get the preset template icons. @Tags templates @Produce json @Success 200 @Failure 500 {object} model.ErrorResponse "Failed to retrieve file list" @Router /templates/icons [get]

func (*TemplateController) GetTemplateByID

func (tc *TemplateController) GetTemplateByID(c *gin.Context)

GetTemplateByID @summary get one template @Description get the template with its id @Tags templates @Produce json @Param id path uint true "Template ID" @Success 200 {object} model.Template @Failure 500 {object} model.ErrorResponse "Unexpected System Error" @Router /templates/{id} [get]

func (*TemplateController) PostOneTemplate

func (tc *TemplateController) PostOneTemplate(c *gin.Context)

PostOneTemplate @Summary Create new template @Description Create a new template. @Tags templates @Accept json @Produce json @Param template body model.Template true "Data needed for creating a workspace template" @Success 200 {object} model.SuccessResponse @Failure 400 {object} model.ErrorResponse "Request Parse Error" @Failure 500 {object} model.ErrorResponse "Unexpected System Error" @Router /templates [post]

func (*TemplateController) UpdateFile

func (tc *TemplateController) UpdateFile(c *gin.Context)

UploadFile @Summary Upload file and parse the parameters @Description Get the preset template icons. @Tags templates @Param multipart/form-data @Produce json

func (*TemplateController) UpdateOneTemplate

func (tc *TemplateController) UpdateOneTemplate(c *gin.Context)

UpdateOneTemplate @Summary Update template @Description Update an existing workspace template. @Tags templates @Accept json @Produce json @Param id path uint true "Template ID" @Param template body model.Template true "Updated template data" @Success 200 {object} model.SuccessResponse @Failure 400 {object} model.ErrorResponse "Invalid ID / Request Parse Error" @Failure 500 {object} model.ErrorResponse "Unexpected System Error" @Router /templates/{id} [put]

type UserAdminController

type UserAdminController struct {
	UserAdminUsecase model.UserAdminUsecase
	Env              *bootstrap.Env
}

func (*UserAdminController) GetAllRoles

func (uac *UserAdminController) GetAllRoles(c *gin.Context)

@Summary Get all roles @Description Get all roles @Tags user admin @Produce json @Success 200 {object} model.Role @Failure 500 {object} model.ErrorResponse "Unexpected System Error" @Router /admin/users/roles [get]

func (*UserAdminController) GetUserDetail

func (uac *UserAdminController) GetUserDetail(c *gin.Context)

@Summary Get user detail @Description Get detailed information of a user. @Tags user admin @Produce json @Param id path uint true "User ID" @Success 200 {object} model.User @Failure 400 {object} model.ErrorResponse "Bad Request" @Failure 500 {object} model.ErrorResponse "Unexpected System Error" @Router /admin/users/{id} [get]

func (*UserAdminController) GetUserList

func (uac *UserAdminController) GetUserList(c *gin.Context)

@Summary Get user list @Description Get all users to list in the table. @Tags user admin @Produce json @Success 200 {object} []model.UserListItem @Failure 500 {object} model.ErrorResponse "Unexpected System Error" @Router /admin/users [get]

func (*UserAdminController) InviteUsers

func (uac *UserAdminController) InviteUsers(c *gin.Context)

@Summary Invite and create users @Description Invite and create new users. @Tags user admin @Accept json @Produce json @Param emailList body []string true "List of user emails to send invitation" @Success 202 {object} model.SuccessResponse "Request Accepted" @Failure 400 {object} model.ErrorResponse "Bad Request" @Router /admin/users/invite [post]

func (*UserAdminController) SetAccountStatus

func (uac *UserAdminController) SetAccountStatus(c *gin.Context)

@Summary Update the account status of a user @Description Administrator updates desired users account status @Tags user admin @Accept json @Produce json @Param request body model.SetAccountStatusRequest true "Status Request" @Success 200 {object} model.SuccessResponse @Failure 400 {object} model.ErrorResponse "Bad Request" @Failure 403 {object} model.ErrorResponse "Forbidden" @Failure 500 {object} model.ErrorResponse "Unexpected System Error" @Router /admin/users/{id}/status [patch]

func (*UserAdminController) UpdateUser

func (uac *UserAdminController) UpdateUser(c *gin.Context)

@Summary Update user @Description Update a user. @Tags user admin @Accept json @Produce json @Param id path uint true "User ID" @Param user body model.User true "Updated user information" @Success 200 {object} model.SuccessResponse @Failure 400 {object} model.ErrorResponse "Bad Request" @Failure 500 {object} model.ErrorResponse "Unexpected System Error" @Router /admin/users/{id} [put]

type UserTokenController

type UserTokenController struct {
	UserTokenUsecase model.UserTokenUsecase
	Env              *bootstrap.Env
}

func (*UserTokenController) AddToken

func (utc *UserTokenController) AddToken(c *gin.Context)

AddToken @Summary Adds a new token with association to the user @Description Logged-in user adds a new token to their account @Tags token management @Accept json @Produce json @Param request body model.TokenRequest true "Token Request" @Success 200 {object} model.SuccessResponse "Successfully added token!" @Failure 400 {object} model.ErrorResponse "Bad Request (Invalid Format)" @Failure 400 {object} model.ErrorResponse "Bad Request (Could not find user)" @Failure 412 {object} model.ErrorResponse "Token for this service already exists!" @Failure 500 {object} model.ErrorResponse "Internal Error (Could not add token)" @Router /api/token/add [post]

func (*UserTokenController) EditToken

func (utc *UserTokenController) EditToken(c *gin.Context)

EditToken @Summary Adjusts value of the designated token @Description Adjusts the value of the token provided @Tags token management @Accept json @Produce json @Param request body model.TokenRequest true "Token Request" @Success 200 {object} model.SuccessResponse "Successfully modified token!" @Failure 400 {object} model.ErrorResponse "Bad Request (Invalid Format)" @Failure 400 {object} model.ErrorResponse "Bad Request (Could not find user)" @Failure 500 {object} model.ErrorResponse "Internal Error (Could not add token)" @Failure 500 {object} model.ErrorResponse "Internal Error (Failed to edit token)" @Router /api/token/add [patch]

func (*UserTokenController) GetUserTokens

func (utc *UserTokenController) GetUserTokens(c *gin.Context)

GetUserTokens @Summary Gets all tokens of a user @Description Retrieves all the tokens associated with the logged-in user @Tags token management @Accept json @Produce json @Success 200 {object} []model.Token @Failure 400 {object} model.ErrorResponse "Bad Request" @Failure 500 {object} model.ErrorResponse "Error: Failed to retrieve users tokens!" @Router /api/token/list [get]

func (*UserTokenController) RemoveToken

func (utc *UserTokenController) RemoveToken(c *gin.Context)

RemoveToken @Summary Removes the designated token from the database @Description Removes the designated token from the database @Tags token management @Accept json @Produce json @Param request body model.TokenDeleteRequest true "Token Request" @Success 200 {object} model.SuccessResponse "Successfully removed token!" @Failure 400 {object} model.ErrorResponse "Bad Request (Invalid Format)" @Failure 400 {object} model.ErrorResponse "Bad Request (Could not find user)" @Failure 500 {object} model.ErrorResponse "Internal Error (Could not find token)" @Failure 500 {object} model.ErrorResponse "Internal Error (Failed to delete token)" @Router /api/token/add [delete]

type WorkspaceController

type WorkspaceController struct {
	WorkspaceUsecase model.WorkspaceUsecase
	Env              *bootstrap.Env
}

func (*WorkspaceController) CreateWorkspace

func (wc *WorkspaceController) CreateWorkspace(c *gin.Context)

@Summary Create workspace @Description Create a workspace. @Tags workspaces @Accept json @Produce json @Param workspace body model.Workspace true "New workspace" @Success 201 {object} model.SuccessResponse @Failure 400 {object} model.ErrorResponse "Request Parse Error" @Failure 500 {object} model.ErrorResponse "Uexpected System Error" @Router /workspaces [post]

func (*WorkspaceController) DeleteWorkspace

func (wc *WorkspaceController) DeleteWorkspace(c *gin.Context)

@Summary Delete workspace @Description Delete a workspace by its ID. @Tags workspaces @Produce json @Param id path uint true "Workspace ID" @Success 200 {object} model.SuccessResponse @Failure 400 {object} model.ErrorResponse "Invalid ID" @Failure 500 {object} model.ErrorResponse "Unexpected System Error" @Router /workspaces/{id} [delete]

func (*WorkspaceController) GetWorkspace

func (wc *WorkspaceController) GetWorkspace(c *gin.Context)

@Summary Get workspace by ID @Description Get a workspace by its ID. @Tags workspaces @Produce json @Param id path uint true "Workspace ID" @Success 200 {object} model.Workspace @Failure 400 {object} model.ErrorResponse "Invalid ID" @Failure 500 {object} model.ErrorResponse "Unexpected System Error" @Router /workspaces/{id} [get]

func (*WorkspaceController) GetWorkspaceToolset

func (wc *WorkspaceController) GetWorkspaceToolset(c *gin.Context)

@Summary Get all toolsets associated with a workspace @Description Retrieve workspace toolsets by workspace id @Tags workspaces @Produce json @Param id path uint true "Workspace ID" @Success 200 {object} []model.Toolset @Failure 400 {object} model.ErrorResponse "Invalid workspace ID" @Failure 500 {object} model.ErrorResponse "Unexpected System Error" @Router /workspaces/{id}/toolset [get]

func (*WorkspaceController) GetWorkspacesByUser

func (wc *WorkspaceController) GetWorkspacesByUser(c *gin.Context)

@Summary Get all workspaces by user @Description Get all workspaces of a user. An empty array is returned if the user has no workspace. @Tags workspaces @Produce json @Param id path uint true "User ID" @Success 200 {object} []model.Workspace @Failure 400 {object} model.ErrorResponse "Invalid ID" @Failure 500 {object} model.ErrorResponse "Unexpected System Error" @Router /workspaces/users/{id} [get]

func (*WorkspaceController) UpdateWorkspace

func (wc *WorkspaceController) UpdateWorkspace(c *gin.Context)

@Summary Update workspace @Description Update specific fields of a workspace. @Tags workspaces @Accept json @Produce json @Param id path uint true "Workspace ID" @Param workspace body model.Workspace true "Updated workspace metadata" @Success 200 {object} model.SuccessResponse @Failure 400 {object} model.ErrorResponse "Invalid ID / Request Parse Error" @Failure 500 {object} model.ErrorResponse "Unexpected System Error" @Router /workspaces/{id} [patch]

Jump to

Keyboard shortcuts

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