Skip to content

Commit 5c30fd0

Browse files
authored
Merge pull request #135 from yokowu/fix-extension-download
fix: 修复插件下载失败
2 parents d323028 + 17417f3 commit 5c30fd0

File tree

5 files changed

+23
-17
lines changed

5 files changed

+23
-17
lines changed

backend/cmd/server/main.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ func main() {
4545
panic(err)
4646
}
4747

48+
s.euse.SyncLatest()
49+
4850
svc := service.NewService(service.WithPprof())
4951
svc.Add(s)
5052
if err := svc.Run(); err != nil {

backend/cmd/server/wire.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ type Server struct {
3535
version *version.VersionInfo
3636
report *report.Reporter
3737
reportuse domain.ReportUsecase
38+
euse domain.ExtensionUsecase
3839
}
3940

4041
func newServer() (*Server, error) {

backend/cmd/server/wire_gen.go

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

backend/domain/extension.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010

1111
type ExtensionUsecase interface {
1212
Latest(ctx context.Context) (*Extension, error)
13+
SyncLatest()
1314
GetByVersion(ctx context.Context, version string) (*Extension, error)
1415
}
1516

backend/internal/extension/usecase/extension.go

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,10 @@ import (
1919
)
2020

2121
type ExtensionUsecase struct {
22-
logger *slog.Logger
23-
repo domain.ExtensionRepo
24-
config *config.Config
25-
version string
26-
mu sync.Mutex
22+
logger *slog.Logger
23+
repo domain.ExtensionRepo
24+
config *config.Config
25+
mu sync.Mutex
2726
}
2827

2928
func NewExtensionUsecase(
@@ -37,7 +36,6 @@ func NewExtensionUsecase(
3736
mu: sync.Mutex{},
3837
logger: logger,
3938
}
40-
e.syncLatest()
4139
return e
4240
}
4341

@@ -61,21 +59,24 @@ func (e *ExtensionUsecase) Latest(ctx context.Context) (*domain.Extension, error
6159
return cvt.From(ee, &domain.Extension{}), nil
6260
}
6361

64-
func (e *ExtensionUsecase) syncLatest() {
65-
latest, err := e.repo.Latest(context.Background())
66-
if err == nil {
67-
e.version = latest.Version
68-
}
69-
70-
logger := e.logger.With("fn", "syncLatest")
71-
logger.With("version", e.version).Debug("开始同步插件版本信息")
72-
62+
func (e *ExtensionUsecase) SyncLatest() {
7363
e.innerSync()
7464
}
7565

7666
func (e *ExtensionUsecase) innerSync() {
7767
v := strings.ReplaceAll(version.Version, "v", "")
78-
if v == e.version {
68+
logger := e.logger.With("fn", "syncLatest").With("current", v)
69+
latest, err := e.repo.Latest(context.Background())
70+
if err != nil {
71+
if strings.Contains(err.Error(), "extension not found") {
72+
latest = &db.Extension{}
73+
} else {
74+
logger.With("error", err).Error("获取最新插件版本失败")
75+
return
76+
}
77+
}
78+
79+
if v == latest.Version {
7980
return
8081
}
8182

@@ -120,5 +121,4 @@ func (e *ExtensionUsecase) download(version string) {
120121
os.Remove(filename)
121122
return
122123
}
123-
e.version = version
124124
}

0 commit comments

Comments
 (0)