mirror of https://github.com/h44z/wg-portal.git
				
				
				
			
		
			
				
	
	
		
			84 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			84 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Go
		
	
	
	
| package backend
 | |
| 
 | |
| import (
 | |
| 	"context"
 | |
| 
 | |
| 	"github.com/h44z/wg-portal/internal/config"
 | |
| 	"github.com/h44z/wg-portal/internal/domain"
 | |
| )
 | |
| 
 | |
| // region dependencies
 | |
| 
 | |
| type UserServiceUserManager interface {
 | |
| 	GetUser(ctx context.Context, id domain.UserIdentifier) (*domain.User, error)
 | |
| 	GetAllUsers(ctx context.Context) ([]domain.User, error)
 | |
| 	CreateUser(ctx context.Context, user *domain.User) (*domain.User, error)
 | |
| 	UpdateUser(ctx context.Context, user *domain.User) (*domain.User, error)
 | |
| 	DeleteUser(ctx context.Context, id domain.UserIdentifier) error
 | |
| 	ActivateApi(ctx context.Context, id domain.UserIdentifier) (*domain.User, error)
 | |
| 	DeactivateApi(ctx context.Context, id domain.UserIdentifier) (*domain.User, error)
 | |
| }
 | |
| 
 | |
| type UserServiceWireGuardManager interface {
 | |
| 	GetUserPeers(ctx context.Context, id domain.UserIdentifier) ([]domain.Peer, error)
 | |
| 	GetUserInterfaces(ctx context.Context, _ domain.UserIdentifier) ([]domain.Interface, error)
 | |
| 	GetUserPeerStats(ctx context.Context, id domain.UserIdentifier) ([]domain.PeerStatus, error)
 | |
| }
 | |
| 
 | |
| // endregion dependencies
 | |
| 
 | |
| type UserService struct {
 | |
| 	cfg *config.Config
 | |
| 
 | |
| 	users UserServiceUserManager
 | |
| 	wg    UserServiceWireGuardManager
 | |
| }
 | |
| 
 | |
| func NewUserService(cfg *config.Config, users UserServiceUserManager, wg UserServiceWireGuardManager) *UserService {
 | |
| 	return &UserService{
 | |
| 		cfg:   cfg,
 | |
| 		users: users,
 | |
| 		wg:    wg,
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func (u UserService) GetUser(ctx context.Context, id domain.UserIdentifier) (*domain.User, error) {
 | |
| 	return u.users.GetUser(ctx, id)
 | |
| }
 | |
| 
 | |
| func (u UserService) GetAllUsers(ctx context.Context) ([]domain.User, error) {
 | |
| 	return u.users.GetAllUsers(ctx)
 | |
| }
 | |
| 
 | |
| func (u UserService) UpdateUser(ctx context.Context, user *domain.User) (*domain.User, error) {
 | |
| 	return u.users.UpdateUser(ctx, user)
 | |
| }
 | |
| 
 | |
| func (u UserService) CreateUser(ctx context.Context, user *domain.User) (*domain.User, error) {
 | |
| 	return u.users.CreateUser(ctx, user)
 | |
| }
 | |
| 
 | |
| func (u UserService) DeleteUser(ctx context.Context, id domain.UserIdentifier) error {
 | |
| 	return u.users.DeleteUser(ctx, id)
 | |
| }
 | |
| 
 | |
| func (u UserService) ActivateApi(ctx context.Context, id domain.UserIdentifier) (*domain.User, error) {
 | |
| 	return u.users.ActivateApi(ctx, id)
 | |
| }
 | |
| 
 | |
| func (u UserService) DeactivateApi(ctx context.Context, id domain.UserIdentifier) (*domain.User, error) {
 | |
| 	return u.users.DeactivateApi(ctx, id)
 | |
| }
 | |
| 
 | |
| func (u UserService) GetUserPeers(ctx context.Context, id domain.UserIdentifier) ([]domain.Peer, error) {
 | |
| 	return u.wg.GetUserPeers(ctx, id)
 | |
| }
 | |
| 
 | |
| func (u UserService) GetUserPeerStats(ctx context.Context, id domain.UserIdentifier) ([]domain.PeerStatus, error) {
 | |
| 	return u.wg.GetUserPeerStats(ctx, id)
 | |
| }
 | |
| 
 | |
| func (u UserService) GetUserInterfaces(ctx context.Context, id domain.UserIdentifier) ([]domain.Interface, error) {
 | |
| 	return u.wg.GetUserInterfaces(ctx, id)
 | |
| }
 |