SuperCoder/internal/app/services.go

42 lines
902 B
Go
Raw Normal View History

2025-03-23 19:19:08 +01:00
package app
import (
"context"
"database/sql"
2025-03-27 22:35:48 +01:00
"github.com/kujtimiihoxha/termai/internal/config"
2025-03-23 19:19:08 +01:00
"github.com/kujtimiihoxha/termai/internal/db"
"github.com/kujtimiihoxha/termai/internal/logging"
2025-03-23 22:25:31 +01:00
"github.com/kujtimiihoxha/termai/internal/message"
2025-03-25 13:04:36 +01:00
"github.com/kujtimiihoxha/termai/internal/permission"
2025-03-23 19:19:08 +01:00
"github.com/kujtimiihoxha/termai/internal/session"
)
type App struct {
Context context.Context
2025-03-25 13:04:36 +01:00
Sessions session.Service
Messages message.Service
Permissions permission.Service
2025-03-23 19:19:08 +01:00
Logger logging.Interface
}
func New(ctx context.Context, conn *sql.DB) *App {
q := db.New(conn)
log := logging.NewLogger(logging.Options{
2025-03-27 22:35:48 +01:00
Level: config.Get().Log.Level,
2025-03-23 19:19:08 +01:00
})
2025-03-23 22:25:31 +01:00
sessions := session.NewService(ctx, q)
messages := message.NewService(ctx, q)
2025-03-23 19:19:08 +01:00
return &App{
2025-03-25 13:04:36 +01:00
Context: ctx,
Sessions: sessions,
Messages: messages,
Permissions: permission.Default,
Logger: log,
2025-03-23 19:19:08 +01:00
}
}
2025-03-27 22:35:48 +01:00