Skip to content

Commit

Permalink
Merge pull request #1438 from traPtitech/refactor/etag
Browse files Browse the repository at this point in the history
色々にETagを使う
  • Loading branch information
motoki317 authored May 1, 2022
2 parents 8412d34 + 9c5d093 commit 56372c3
Show file tree
Hide file tree
Showing 24 changed files with 226 additions and 336 deletions.
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ traQ: $(SOURCES) ## Build traQ binary
.PHONY: init
init: ## Download and install go mod dependencies
go mod download
go install github.com/google/wire/cmd/wire
go install github.com/golang/mock/mockgen
go install github.com/google/wire/cmd/wire@latest
go install github.com/golang/mock/mockgen@latest

.PHONY: genkey
genkey: ## Generate dev keys
Expand Down
4 changes: 2 additions & 2 deletions cmd/file.go
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ func filePruneCommand() *cobra.Command {
}

// Repository
repo, err := gorm.NewGormRepository(db, hub.New(), logger)
repo, _, err := gorm.NewGormRepository(db, hub.New(), logger, false)
if err != nil {
logger.Fatal("failed to initialize repository", zap.Error(err))
}
Expand Down Expand Up @@ -368,7 +368,7 @@ func genGroupImages() *cobra.Command {
}

// Repository
repo, err := gorm.NewGormRepository(db, hub.New(), logger)
repo, _, err := gorm.NewGormRepository(db, hub.New(), logger, false)
if err != nil {
logger.Fatal("failed to initialize repository", zap.Error(err))
}
Expand Down
10 changes: 1 addition & 9 deletions cmd/serve.go
Original file line number Diff line number Diff line change
Expand Up @@ -75,20 +75,12 @@ func serveCommand() *cobra.Command {

// Repository
logger.Info("setting up repository...")
repo, err := gorm.NewGormRepository(engine, hub, logger)
repo, init, err := gorm.NewGormRepository(engine, hub, logger, true)
if err != nil {
logger.Fatal("failed to initialize repository", zap.Error(err))
}
logger.Info("repository was set up")

// Repository Sync
logger.Info("syncing repository...")
init, err := repo.Sync()
if err != nil {
logger.Fatal("failed to sync repository", zap.Error(err))
}
logger.Info("repository was synced")

// JWT for QRCode
if priv := c.JWT.Keys.Private; priv != "" {
privRaw, err := ioutil.ReadFile(priv)
Expand Down
2 changes: 1 addition & 1 deletion cmd/stamp.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ func stampInstallEmojisCommand() *cobra.Command {
}

// Repository
repo, err := gorm.NewGormRepository(db, hub.New(), logger)
repo, _, err := gorm.NewGormRepository(db, hub.New(), logger, false)
if err != nil {
logger.Fatal("failed to initialize repository", zap.Error(err))
}
Expand Down
32 changes: 11 additions & 21 deletions repository/gorm/repository.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import (
"gorm.io/gorm"

"github.com/traPtitech/traQ/migration"
"github.com/traPtitech/traQ/model"
"github.com/traPtitech/traQ/repository"
)

Expand All @@ -18,28 +17,19 @@ type Repository struct {
stamps *stampRepository
}

// Sync implements Repository interface.
func (repo *Repository) Sync() (init bool, err error) {
if init, err = migration.Migrate(repo.db); err != nil {
return false, err
}

// スタンプをキャッシュ
var stamps []*model.Stamp
if err := repo.db.Find(&stamps).Error; err != nil {
return false, err
}
repo.stamps = makeStampRepository(stamps)

return
}

// NewGormRepository リポジトリ実装を初期化して生成します
func NewGormRepository(db *gorm.DB, hub *hub.Hub, logger *zap.Logger) (repository.Repository, error) {
repo := &Repository{
// NewGormRepository リポジトリ実装を初期化して生成します。
// スキーマが初期化された場合、init: true を返します。
func NewGormRepository(db *gorm.DB, hub *hub.Hub, logger *zap.Logger, doMigration bool) (repo repository.Repository, init bool, err error) {
repo = &Repository{
db: db,
hub: hub,
logger: logger.Named("repository"),
stamps: makeStampRepository(db),
}
return repo, nil
if doMigration {
if init, err = migration.Migrate(db); err != nil {
return nil, false, err
}
}
return
}
5 changes: 1 addition & 4 deletions repository/gorm/repository_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -78,13 +78,10 @@ func TestMain(m *testing.M) {
panic(err)
}

repo, err := NewGormRepository(engine, hub.New(), zap.NewNop())
repo, _, err := NewGormRepository(engine, hub.New(), zap.NewNop(), true)
if err != nil {
panic(err)
}
if _, err := repo.Sync(); err != nil {
panic(err)
}

repositories[key] = repo.(*Repository)
}
Expand Down
Loading

0 comments on commit 56372c3

Please sign in to comment.