mirror of
https://github.com/SamyRai/tercul-backend.git
synced 2025-12-27 05:11:34 +00:00
This commit addresses several high-priority tasks from the TASKS.md file, including: - **Fix Background Job Panic:** Replaced `log.Fatalf` with `log.Printf` in the `asynq` server to prevent crashes. - **Refactor API Server Setup:** Consolidated the GraphQL Playground and Prometheus metrics endpoints into the main API server. - **Implement `DeleteUser` Mutation:** Implemented the `DeleteUser` resolver. - **Implement `CreateContribution` Mutation:** Implemented the `CreateContribution` resolver and its required application service. Additionally, this commit includes a major refactoring of the configuration management system to fix a broken build. The global `config.Cfg` variable has been removed and replaced with a dependency injection approach, where the configuration object is passed to all components that require it. This change has been applied across the entire codebase, including the test suite, to ensure a stable and testable application.
60 lines
2.0 KiB
Go
60 lines
2.0 KiB
Go
package sql
|
|
|
|
import (
|
|
"tercul/internal/app/analytics"
|
|
"tercul/internal/domain"
|
|
"tercul/internal/domain/auth"
|
|
"tercul/internal/domain/localization"
|
|
"tercul/internal/domain/work"
|
|
"tercul/internal/platform/config"
|
|
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
type Repositories struct {
|
|
Work work.WorkRepository
|
|
User domain.UserRepository
|
|
Author domain.AuthorRepository
|
|
Translation domain.TranslationRepository
|
|
Comment domain.CommentRepository
|
|
Like domain.LikeRepository
|
|
Bookmark domain.BookmarkRepository
|
|
Collection domain.CollectionRepository
|
|
Tag domain.TagRepository
|
|
Category domain.CategoryRepository
|
|
Book domain.BookRepository
|
|
Publisher domain.PublisherRepository
|
|
Source domain.SourceRepository
|
|
Copyright domain.CopyrightRepository
|
|
Monetization domain.MonetizationRepository
|
|
Contribution domain.ContributionRepository
|
|
Analytics analytics.Repository
|
|
Auth auth.AuthRepository
|
|
Localization localization.LocalizationRepository
|
|
}
|
|
|
|
// NewRepositories creates a new Repositories container
|
|
func NewRepositories(db *gorm.DB, cfg *config.Config) *Repositories {
|
|
return &Repositories{
|
|
Work: NewWorkRepository(db, cfg),
|
|
User: NewUserRepository(db, cfg),
|
|
Author: NewAuthorRepository(db, cfg),
|
|
Translation: NewTranslationRepository(db, cfg),
|
|
Comment: NewCommentRepository(db, cfg),
|
|
Like: NewLikeRepository(db, cfg),
|
|
Bookmark: NewBookmarkRepository(db, cfg),
|
|
Collection: NewCollectionRepository(db, cfg),
|
|
Tag: NewTagRepository(db, cfg),
|
|
Category: NewCategoryRepository(db, cfg),
|
|
Book: NewBookRepository(db, cfg),
|
|
Publisher: NewPublisherRepository(db, cfg),
|
|
Source: NewSourceRepository(db, cfg),
|
|
Copyright: NewCopyrightRepository(db, cfg),
|
|
Monetization: NewMonetizationRepository(db, cfg),
|
|
Contribution: NewContributionRepository(db, cfg),
|
|
Analytics: NewAnalyticsRepository(db, cfg),
|
|
Auth: NewAuthRepository(db, cfg),
|
|
Localization: NewLocalizationRepository(db, cfg),
|
|
}
|
|
}
|