mirror of
https://github.com/h44z/wg-portal.git
synced 2025-09-15 15:21:14 +00:00
chore: use interfaces for all other services
This commit is contained in:
83
internal/app/api/v0/backend/user_service.go
Normal file
83
internal/app/api/v0/backend/user_service.go
Normal file
@@ -0,0 +1,83 @@
|
||||
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)
|
||||
}
|
Reference in New Issue
Block a user