95 lines
3.1 KiB
Go
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)
|
|
}
|