controller

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Nov 1, 2025 License: MIT Imports: 12 Imported by: 0

Documentation

Overview

Package controller provides HTTP handlers for the Locky API.

This package contains controllers for handling HTTP requests across different access levels:

  • Public controllers: No authentication required
  • Internal controllers: Authentication required, standard operations
  • Private controllers: Admin authentication required

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CommonControllerForInternal

type CommonControllerForInternal interface {
}

func NewCommonControllerForInternal

func NewCommonControllerForInternal(commonRepository repository.CommonRepository) CommonControllerForInternal

type CommonControllerForPrivate

type CommonControllerForPrivate interface {
}

func NewCommonControllerForPrivate

func NewCommonControllerForPrivate(commonRepository repository.CommonRepository) CommonControllerForPrivate

type CommonControllerForPublic

type CommonControllerForPublic interface {
	ValidateToken(c *gin.Context)
	GetUserInfo(c *gin.Context)
	Login(c *gin.Context)
	RefreshToken(c *gin.Context)
	Logout(c *gin.Context)
}

CommonControllerForPublic provides public authentication endpoints.

This interface handles authentication operations that don't require prior authentication, following OpenStack Keystone design patterns.

Available endpoints:

  • ValidateToken: Validates JWT tokens and returns user information
  • GetUserInfo: Returns user information from authenticated context
  • Login: Handles user login and JWT token issuance
  • RefreshToken: Refreshes JWT tokens using refresh tokens
  • Logout: Handles user logout (token invalidation)

func NewCommonControllerForPublic

func NewCommonControllerForPublic(userRepository repository.UserRepository, commonRepository repository.CommonRepository) CommonControllerForPublic

NewCommonControllerForPublic creates a new instance of CommonControllerForPublic.

This constructor function initializes a new CommonControllerForPublic with the required repository dependencies for handling authentication operations.

Parameters:

  • userRepository: Repository for user data operations
  • commonRepository: Repository for common operations including JWT token management

Returns:

  • CommonControllerForPublic: Configured controller instance ready for use

type GroupControllerForInternal

type GroupControllerForInternal interface {
	GetGroups(c *gin.Context)
	CreateGroup(c *gin.Context)
	UpdateGroup(c *gin.Context)
	DeleteGroup(c *gin.Context)
	CountGroups(c *gin.Context)
}

GroupControllerForInternal provides authenticated group operations for internal scope.

Exposes CRUD endpoints requiring a valid bearer token:

  • GetGroups: List groups (GET /v1/internal/groups)
  • CreateGroup: Create group (POST /v1/internal/groups)
  • UpdateGroup: Update group (PUT /v1/internal/groups/{id})
  • DeleteGroup: Delete group (DELETE /v1/internal/groups/{id})

func NewGroupControllerForInternal

func NewGroupControllerForInternal(groupRepository repository.GroupRepository, commonRepository repository.CommonRepository) GroupControllerForInternal

NewGroupControllerForInternal creates a new internal group controller.

Parameters:

  • groupRepository: Group data repository
  • commonRepository: Common services repository

Returns:

  • GroupControllerForInternal: Configured internal controller instance

type GroupControllerForPrivate

type GroupControllerForPrivate interface {
	GetGroups(c *gin.Context)
	CreateGroup(c *gin.Context)
	UpdateGroup(c *gin.Context)
	DeleteGroup(c *gin.Context)
	CountGroups(c *gin.Context)
}

func NewGroupControllerForPrivate

func NewGroupControllerForPrivate(groupRepository repository.GroupRepository, commonRepository repository.CommonRepository) GroupControllerForPrivate

type MemberControllerForInternal

type MemberControllerForInternal interface {
	GetMembers(c *gin.Context)
	CreateMember(c *gin.Context)
	UpdateMember(c *gin.Context)
	DeleteMember(c *gin.Context)
	CountMembers(c *gin.Context)
}

MemberControllerForInternal provides authenticated member operations for internal scope.

Exposes CRUD endpoints requiring a valid bearer token:

  • GetMembers: List members (GET /v1/internal/members)
  • CreateMember: Create member (POST /v1/internal/members)
  • UpdateMember: Update member (PUT /v1/internal/members/{id})
  • DeleteMember: Delete member (DELETE /v1/internal/members/{id})

func NewMemberControllerForInternal

func NewMemberControllerForInternal(memberRepository repository.MemberRepository, commonRepository repository.CommonRepository) MemberControllerForInternal

NewMemberControllerForInternal creates a new internal member controller.

Parameters:

  • memberRepository: Member data repository
  • commonRepository: Common services repository

Returns:

  • MemberControllerForInternal: Configured internal controller instance

type MemberControllerForPrivate

type MemberControllerForPrivate interface {
	GetMembers(c *gin.Context)
	CreateMember(c *gin.Context)
	UpdateMember(c *gin.Context)
	DeleteMember(c *gin.Context)
	CountMembers(c *gin.Context)
}

func NewMemberControllerForPrivate

func NewMemberControllerForPrivate(memberRepository repository.MemberRepository, commonRepository repository.CommonRepository) MemberControllerForPrivate

type RoleControllerForInternal

type RoleControllerForInternal interface {
	ListRoles(c *gin.Context)
}

RoleControllerForInternal: internal (read-only) role operations ListRoles also returns single details when specified with ?id= GetRole is deprecated as it's integrated into query-based approach

type RoleControllerForPrivate

type RoleControllerForPrivate interface {
	ListRoles(c *gin.Context)
	CreateRole(c *gin.Context)
	UpdateRole(c *gin.Context)
	DeleteRole(c *gin.Context)
}

RoleControllerForPrivate: administrative full CRUD (single retrieval via GET /roles?id=xxx)

type UserControllerForInternal

type UserControllerForInternal interface {
	GetUsers(c *gin.Context)
	UpdateUser(c *gin.Context)
	DeleteUser(c *gin.Context)
	CreateUser(c *gin.Context)
	CountUsers(c *gin.Context) // Added: count
}

UserControllerForInternal provides authenticated (non-admin) user operations.

This interface exposes standard user operations requiring authentication:

  • GetUsers: List users
  • UpdateUser: Update user
  • DeleteUser: Delete user
  • CreateUser: Create user

func NewUserControllerForInternal

func NewUserControllerForInternal(userRepository repository.UserRepository, commonRepository repository.CommonRepository) UserControllerForInternal

NewUserControllerForInternal creates a new internal user controller.

Parameters:

  • userRepository: User data repository
  • commonRepository: Common services repository (e.g., auth)

Returns:

  • UserControllerForInternal: Configured internal controller instance

type UserControllerForPrivate

type UserControllerForPrivate interface {
	GetUsers(c *gin.Context)
	CreateUser(c *gin.Context)
	UpdateUser(c *gin.Context)
	DeleteUser(c *gin.Context)
	CountUsers(c *gin.Context)
}

UserControllerForPrivate provides admin-only user management endpoints.

This interface exposes administrative operations that require private (admin) permissions:

  • GetUsers: List all users
  • CreateUser: Create a user
  • UpdateUser: Update a user
  • DeleteUser: Delete a user

func NewUserControllerForPrivate

func NewUserControllerForPrivate(userRepository repository.UserRepository, commonRepository repository.CommonRepository) UserControllerForPrivate

NewUserControllerForPrivate creates a new private (admin) user controller.

Parameters:

  • userRepository: User data repository
  • commonRepository: Common services repository (e.g., auth)

Returns:

  • UserControllerForPrivate: Configured private controller instance

type UserControllerForPublic

type UserControllerForPublic interface {
	CreateUser(c *gin.Context)
	GetUsers(c *gin.Context)
}

UserControllerForPublic provides public user management endpoints.

This interface handles user operations that don't require prior authentication, primarily user registration functionality.

Available endpoints:

  • CreateUser: Handles new user registration
  • GetUsers: Retrieves user list (public access)

func NewUserControllerForPublic

func NewUserControllerForPublic(userRepository repository.UserRepository, commonRepository repository.CommonRepository) UserControllerForPublic

Jump to

Keyboard shortcuts

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