2024-12-04 19:46:11 -04:00

95 lines
3.1 KiB
Go

package api
import (
"context"
"log/slog"
"git.maximotejeda.com/maximo/tgb-user/internal/adapters/db"
"git.maximotejeda.com/maximo/tgb-user/internal/application/core/domain"
"git.maximotejeda.com/maximo/tgb-user/internal/ports"
)
type Application struct {
db ports.DBPort
log *slog.Logger
}
func NewApplication(db ports.DBPort) *Application {
log := slog.Default()
log = log.With("adapter", "application")
return &Application{
db: db,
log: log,
}
}
// todo Export differents Methods to map to grpc contracts
func (a Application) Create(ctx context.Context, user *domain.User) (bool, error) {
ok, err := a.db.Create(ctx, user)
return ok, err
}
func (a Application) Get(ctx context.Context, tgb_id int64) (*domain.User, error) {
user, err := a.db.Get(ctx, tgb_id)
return user, err
}
func (a Application) Edit(ctx context.Context, user *domain.User) (bool, error) {
ok, err := a.db.Edit(ctx, user)
if err != nil {
return false, err
}
return ok, err
}
func (a Application) Delete(ctx context.Context, id int64) (bool, error) {
ok, err := a.db.Delete(ctx, id)
return ok, err
}
func (a Application) AddBot(ctx context.Context, tgb_id int64, botname string) (bool, error) {
ok, err := a.db.AddBot(ctx, tgb_id, botname)
return ok, err
}
func (a Application) DeleteBot(ctx context.Context, tgb_id int64, botname string) (bool, error) {
ok, err := a.db.DeleteBot(ctx, tgb_id, botname)
return ok, err
}
func (a Application) GetBots(ctx context.Context, tgb_id int64) ([]*domain.Bot, error) {
return a.db.GetBots(ctx, tgb_id)
}
func (a Application) GetAllBotsUsers(ctx context.Context, bot_name string) ([]*domain.User, error) {
return a.db.GetAllBotUsers(ctx, bot_name)
}
func (a Application) GetAllBots(ctx context.Context) ([]*domain.Bot, error) {
return a.db.GetAllBots(ctx)
}
func (a Application) CreateBot(ctx context.Context, botName string) (bool, error) {
return a.db.CreateBot(ctx, botName)
}
func (a Application) CreateAccessRequest(ctx context.Context, tgbID int64, botName string) (bool, error) {
return a.db.CreateAccessRequest(ctx, tgbID, botName)
}
func (a Application) GrantAccess(ctx context.Context, tgbID int64, botName string) (bool, error) {
return a.db.GrantAccess(ctx, tgbID, botName)
}
func (a Application) BanUser(ctx context.Context, tgbID, until int64, botName string) (bool, error) {
return a.db.BanUser(ctx, tgbID, until, botName)
}
func (a Application) UnBanUser(ctx context.Context, tgbID int64, botName string) (bool, error) {
return a.db.UnBanUser(ctx, tgbID, botName)
}
func (a Application) GetAllAccessRequest(ctx context.Context, botName string) ([]*db.BotAccessRequest, error) {
return a.db.GetAllAccessRequest(ctx, botName)
}
func (a Application) GetAllBannedUsers(ctx context.Context, botName string) ([]*db.BotBannedAccess, error) {
return a.db.GetAllBannedUsers(ctx, botName)
}
func (a Application) GetAccessRequest(ctx context.Context, tgbID int64) ([]*db.BotAccessRequest, error) {
return a.db.GetAccessRequest(ctx, tgbID)
}
func (a Application) GetBannedBot(ctx context.Context, tgbID int64) ([]*db.BotBannedAccess, error) {
return a.db.GetBannedBot(ctx, tgbID)
}